Ajouter 2 numéros en langage d'assemblage et d'imprimer le résultat
besoin d'aide, comment faire pour additionner deux nombres, puis imprimer le résultat voici mon code
.MODEL SMALL
.STACK 200H
.DATA
NUM1 DB 12
NUM2 DB 3
VAL DB ?
MSG1 DB "The sum is : $"
.CODE
BEGIN PROC
MOV AX, @DATA
MOV DS, AX
MOV AL, NUM1
ADD AL, NUM2
MOV VAL, AL
LEA DX, MSG1
MOV AH, 9
INT 21H
MOV AH, 2
MOV DL, VAL
INT 21H
MOV AX, 4C00H
INT 21H
BEGIN ENDP
END BEGIN
J'ai obtenu un résultat qui dit
The sum is 0
Quelle est l'erreur dans mon code?
de l'assemblée de la langue?
Vous le voyez, il est masm, n'est-ce pas ?
Pas pour moi de dire.
Vous le voyez, il est masm, n'est-ce pas ?
Pas pour moi de dire.
OriginalL'auteur user3640979 | 2014-05-15
Vous devez vous connecter pour publier un commentaire.
En divisant la valeur en permanence par 10, vous aurez le seul chiffre dans le reste - mais dans le mauvais ordre (du dernier au premier). Pour l'imprimer dans le "bon de commande" (la première à la dernière), vous pouvez l'inverser par
PUSH
ing etPOP
ing (mot-clé: LIFO = last in first out):OriginalL'auteur rkhb
Vous ne pouvez pas le faire comme cela, Vous ne verrez pas le numéro, Vous devez obtenir le code ascii du caractère montrent une représentation hexvalue s les chiffres, qui représentent Votre résultat. Très de base notions de base. Permettez-moi de chercher un lien.
Ici, il est:
Comment faire pour convertir à partir de 4 bits en hexadécimal ASCII de 7 bits?
tutorialspoint.com/assembly_programming/assembly_numbers.htm
OriginalL'auteur icbytes