Documente Academic
Documente Profesional
Documente Cultură
A. Hardware
Hardware se referă la componentele fizice ale unui sistem de calcul. Acestea sunt părțile
tangibile ale computerului, spre deosebire de software, care este partea intangibilă.
Exemple:
● Periferice de Intrare: Acestea sunt dispozitive prin intermediul cărora interacționăm
cu computerul. Exemple: tastatura (pentru introducerea textului), mouse-ul (pentru
interacțiunea grafică)
● Periferice de Ieșire: Sunt dispozitive care prezintă rezultatele procesării
computerului. Monitorul afișează interfața grafică și informațiile, în timp ce o
imprimantă transformă documentele digitale în format fizic.
● Unitatea de Procesare Centrală (CPU): Creierul computerului, CPU-ul este
responsabil pentru executarea instrucțiunilor programelor și procesarea datelor.
● Memoria:
○ RAM (Memoria cu Acces Aleator): Este memoria temporară a computerului,
utilizată pentru stocarea datelor în timpul rulării programelor.
○ Memoria de Stocare: Exemple includ hard disk-ul și unitățile SSD, unde
datele sunt stocate permanent.
B. Software
Software reprezintă totalitatea programelor și sistemelor de operare care rulează pe
hardware și îi instruiesc cum să efectueze anumite sarcini. Este partea "intangibilă" a unui
sistem de calcul.
Tipuri de Software:
● Sisteme de Operare: Sistemul de operare (ex. Windows, Linux, macOS) este un
software fundamental care gestionează resursele hardware și oferă o interfață între
hardware și alte tipuri de software.
● Aplicații Software: Acestea sunt programele utilizate pentru efectuarea unor sarcini
specifice. Exemple: procesorul de text pentru redactarea documentelor, browserele
web pentru navigarea pe internet, programe de editare grafică, jocuri etc.
A. Introducere în Procesoare
.model small
.stack 100h
.data
mesaj db 'Hello world!',13,10,'$'
.code
start:
mov ax, @data
mov ds, ax
DOSSEG
DOSSEG este directiva ce face ca segmentele dintr-un program să fie grupate conform
convenţiilor Microsoft de adresare a segmentelor.
.MODEL
.STACK
De exemplu, .STACK 200H defineşte o stivă de 512 octeţi.
.DATA
Directiva .DATA marchează începutul segmentului de date, adică locul în care vom plasa
variabilele de memorie. Reprezentativ aici este faptul că trebuie încărcat în mod explicit
registrul de segment DS cu valoarea "@data" înaintea accesării locaţiilor de memorie în
segmentul definit de .DATA. Având în vedere că un registru de segment poate fi încărcat fie
dintr-un registru general fie dintr-o locaţie de memorie dar nu poate fi încărcat direct cu o
constantă, registrul de segment DS este încărcat în general printr-o secvenţă de 2
instrucţiuni:
mov ax, @data
mov ds, ax
*(se poate folosi şi alt registru general în locul lui AX)
.CODE
Directiva .CODE marchează începutul segmentului de cod.
F. Registrii
De uz general
Regiștrii de segment
Registrul indicator de stare
Registrul pointer de instrucțiune
De segment
mov ah, 1
; Setează registrul AH (partea superioară a registrului AX) la valoarea 1
; AH este acum 1
inc ah
; Incrementează valoarea din AH cu 1
; Aceasta mărește valoarea din AH de la 1 la 2
mov al, ah
; Transferă valoarea actuală din AH în AL (partea inferioară a registrului AX)
; AL primește valoarea 2, care este valoarea curentă din AH
Impartire
mov ax, 15 ; Încarcă numărul de împărțit (15) în AX
mov bl, 4 ; Încarcă divizorul (4) în BL
div bl ; Împarte AX la BL
; După diviziune, AL conține rezultatul, iar AH restul
BX
- poate stoca adrese
- face referire la DS
mov bx, 3
; Setează registrul BX la valoarea 3
; BX este un registru general care poate fi folosit pentru adresare sau alte
scopuri
mov ah, [bx]
; Transferă valoarea din memoria la adresa indicată de BX în partea superioară
a registrului AX (AH)
; [bx] reprezintă conținutul memoriei la adresa specificată de valoarea din
BX, în acest caz adresa 3
; Această instrucțiune presupune că la adresa de memorie 3 există o valoare
validă
CX
- se ocupa cu numararea (contor)
mov cx, 3
; Setează registrul CX la valoarea 3
; CX este adesea folosit ca un contor în bucle, aici inițializându-l pentru 3
iterații
eticheta:
mov ah, 09h
; Setează funcția sistemului DOS pentru a afișa un șir de caractere
; AH = 09h este codul pentru funcția "Write String" a întreruperii 21h
int 21h
; Apelează întreruperea 21h a sistemului DOS
; Această întrerupere va procesa cererea în funcție de valoarea în AH,
; în acest caz, va afișa șirul de caractere indicat de DX (setat anterior)
LOOP eticheta
; Buclează înapoi la eticheta "eticheta"
; LOOP decrementează registrul CX și sare la eticheta dacă CX nu este 0
DX
- transfer de date intrare/iesire
- cand are loc o inmultire sau o impartire. dupa impartire restul impartirii se va afla in
DX, iar catul se va afla in AX (daca se imparte un numar pe 32 pe biti, la un numar
pe 16 biti)
int 21h
; Apelează întreruperea 21h a sistemului DOS
; Acest apel de sistem va afișa șirul de caractere stocat la adresa indicată
de DX
Impartire
mov dx, 12h ; Plasați partea superioară a numărului de împărțit în DX
mov ax, 34h ; Plasați partea inferioară a numărului de împărțit în AX
mov bx, 4h ; Încărcați divizorul în BX
div bx ; Împărțiți DX:AX la BX. Rezultatul în AX, restul în DX