J'essayais de comprendre pourquoi mon code ne fonctionne pas.Pourquoi ce code ne saute-t-il jamais sur l'étiquette nommée true?
J'ai besoin de mettre en œuvre cette cmp dans une plus grande version de ce code comme menu principal demandant des options de procéder à certaines actions mais lorsque l'on compare al, '1'
ne reconnaît pas je
et il saute directement à jne
.
Je sais que c'est probablement l'erreur lors de la comparaison, mais quelle est la bonne façon de le faire?
.model small
.stack 100h
.data
wm db 0ah, 0dh, "Welcome! please select one of the following options: $"
op1 db 0ah, 0dh, "Please submit 1 to true and 2 to false: $"
op1_1 db 0ah, 0dh, "its true!!! $"
op1_2 db 0ah, 0dh, "its false!!!! $"
.code
main PROC
mov ax,@data
mov ds, ax
mov dx, offset wm
mov ah, 09h
int 21h
mov dx, offset op1
mov ah, 09h
int 21h
mov ah, 0ah
int 21h
cmp al, '1'
je true
jne false
success:
mov ah,4ch ; function: DOS Exit Program
mov al, 0 ; specify return code 0
int 21h ; adios amigo!
true:
mov dx, offset op1_1
mov ah, 09h
int 21h
jmp success
false:
mov dx, offset op1_2
mov ah, 09h
int 21h
jmp success
main ENDP
END main
Veuillez préférer mettre vos questions en évidence en leur posant de bonnes questions, plutôt que de les marquer avec des symboles. –
Ajouté en gras à la question afin que vous puissiez séparer la question du code. Je mets le code comme référence de ce que je fais mais j'ai d'abord spécifié ce que j'essayais d'accomplir –
Vous devriez mettre tout votre code dans un bloc de code. Je ne sais pas asm donc je ne peux pas être sûr que je le fais correctement. –