
Big toto
Je n'arrive pas à afficher le résultat de l'addition malgré les remarques de Nemesis. Merci de trouver le ou les erreurs commises.
;-----------------------------------------------;
; Pour Compiler: tasm32 tlink ;
;-----------------------------------------------;
; SEGMENT DE DATA-------------------------------
data16 segment public ; déclaration du segment de data
titre db 10,10
db " **********************************************",10,13
db " * *",10,13
db " * OPERATION SIMPLE *",10,13
db " * ADDITION DE 2 NOMBRES *",10,13
db " * *",10,13
db " **********************************************",10,10,13,'$'
message_A db 10,13," Soit A = ",'$'; une variable
message_B db 10,13," Soit B = ",'$'; une variable
message_AB db 10,10,13," A + B = ",'$'; le résultat de l'addition
Valeur_A db "3$"
Valeur_B db "2$"
data16 ends
; SEGMENT DE CODE----------------------------
code16 segment public ; déclaration du segment de code
assume cs:code16, ds:data16, ss:stack16
start16:
; Adapte le segment de data: ds
mov ax, data16 ; ax = data16
mov ds, ax ; ds = ax
; Saisie de l'identifiant et du passe
debut:
mov dx, offset titre ; offset de titre
mov ah, 09h ; Afficher un texte à l'écran
int 21h ; Interruption DOS
; Affiche la valeur de A
mov dx, offset message_A
int 21h ; Interruption DOS
mov dx,offset Valeur_A
int 21h ; Interruption DOS
; Affiche la valeur de B
mov dx, offset message_B
int 21h ; Interruption DOS
mov dx, offset Valeur_B
int 21h ; Interruption DOS
; Calcule A + B
add dx, offset valeur_A ; Ajoute dans Valeur_B la Valeur_A
push dx ; Empile (Valeur A+B)
; Affiche le résultat de A + B
mov dx, offset message_AB
int 21h ; Interruption DOS
pop dx ; Dépile (Valeur A+B)
int 21h ; Interruption DOS
; Quitte le programme
mov al, 00h ; pas de problèmes
mov ah, 4ch ; quitter le programme
int 21h ; Interruption DOS
code16 ends ; fin de text
; SEGMENT DE STACK----------------------------
stack16 segment stack
db 200h dup (?)
stack16 ends
end start16 ; fin du programme
; débute à 'start16'