Documente Academic
Documente Profesional
Documente Cultură
4
�������������������
Cuvinte cheie
�������������������
asamblor,
compilator,
mnemonica,
directiva SEGMENT,
directiva ASSUME,
directivele DB, DW, DD,
instructiunea MOV,
instructiunea INT,
operatorul OFFSET
1. Introducere
��������������
2. Hello, world!
����������������
;������������������������������������������������������������������������
; Cod sursa asamblare pentru afisarea sirului "Hello, world!"
Orice program are unul sau mai multe segmente de date care contin
datele necesare prelucrarii in executie, precum si unul sau mai multe
segmente de cod. Segmentele se definesc folosind directiva SEGMENT, conform
sintaxei:
code1 segment
assume cs:code1, ds:data1
...
data1 segment
...
data1 ends
...
code1 ends
4. Instructiuni
������������
In continuare vom descrie pe scurt instructiunile folosite in
programul nostru:
Instructiunea MOV
MOV destinatie,sursa
INT tip-intrerupere
Observatie: Afisarea caracterului "linie noua" se face prin ASCII 0dh urmat de
ASCII 0ah.
O alta functie sistem utilizata de noi este functia 4ch care termina
un program si preda controlul procesului parinte (cel din care s-a apelat
programul curent). Pentru apelul functiei se folosesc registrii:
AH incarcat cu 4ch si
AL incarcat cu codul de retur (valoare pozitionata de aceasta functie
care poate fi folosita de procesul parinte la revenire).
5. Adresarea operanzilor
���������������������
a) Adresarea imediata
mov ax, 5
mov ax, 41h
in care operanzii sursa sunt valori imediate.
b) Adresarea la registri
Exemple:
mov ax, 0b800h ;operandul destinatie este un registru
mov ds, ax ;ambii operanzi sunt operanzi registri
inc bx ;unicul oerand al instructiunii este un registru
cmp ah,'A' ;operandul destinatie este registru
tasm hello.asm
iar fisierul generat (in cazul in care nu apar erori) este "hello.obj".
Comanda TASM pune la dispozitie mai multe optiuni dintre care amintim
citeva:
Asadar:
tlink /v hello.obj
td hello.exe
EXERCITII
var1 DW ?
var2 DD ?
HelloMessage DB 'Hello world!',13,10,'$'
cifra DB ?
cifra DB ?