Professional Documents
Culture Documents
;EMU8086 a une disposition de segments par défaut. Il faut un programme de plus de 64Ko de code
ou de données pour devoir manipuler les segments..
;Directives segment permettent de nommer des segments. On met les directives pour réserver de
l'espace mémoire
dw 256 dup(0)
; base:
Pile ends
Extra SEGMENT ; On met les directives pour déclarer les variables (les chaînes de
Caractères).
Extra ENDS
Donnee segment
var2 dd F7A2h ;var2 est un double word (double mot) initialisé à F7A2
Tab DB 18H, 15H, 13H ; définit un tableau de 3 cases (3 octet) qui démarre à partir de
l'adresse TAB.
; De manière générale:
1
; DD : 2 words (32 bits) (Declare Double)
; DF,DP : 6 bytes
; DT : 10 bytes
;- décimal: 1, 2, 3, 123, 45
;- binaire : 1b,0b,1010b,111101b
Donnee ends
;Pour le 8086, l’entête du programme dit quelle valeur doit avoir CS:IP.
LeCode segment
Debut: ; Etiquette
assume CS:LeCode ,DS:Donnee, SS:Pile; La directive assume aide l’assembleur. Elle fait le
;La directive ASSUME permet d'indiquer à l'assembleur quel est le segment de données et
;mov es, ax
2
; mov sp, base ; copier l'adresse de la base de la pile dans SP
int 21h
mov bx,var1
mov ah,02h
int 21h
add var0,2
mov dl,var0
mov ah,02
int 21h
neg var0
mov dl,var0
mov ah,02
int 21h
mov ax,0FAE8h
mul var0
mov dl,al
mov ah,02
int 21h
3
mov ah,09
int 21h
int 21h
mov bx,var1
add bl,al
mov dl,bl
mov ah,02h
int 21h
mov al,0ah
int 21h
fin: ;Etiquette
; int 21h
; ou bien
int 20h
; ret
LeCode ends
end Debut