如果组装条件不起作用

时间:2015-03-31 21:58:28

标签: if-statement assembly

大家好我有这个代码,使用汇编程序FASM(FlatAssembler)进行汇编

;REQUEST THE VALUE (1 OR 2)
mov ah, 3Fh
mov bx, 0
mov cx, 1
mov dx, valor
int 21h

;THE NOT WORKING IF
cmp [size], '2'
jmp small
cmp [size], '1'
jmp e

;ONE OF THE LABELS TO WHERE THE IF MUST JUMP
small:
        mov cx, 10
        mov dx, 9
.....


;OTHER LABEL
e:
mov ah, 07h
int 21h

程序没有跳转到已尝试cmp [size]的标签,2并减去48得到小数值但没有运气

任何帮助?

1 个答案:

答案 0 :(得分:0)

而不是仅仅在cmp [size]之后调用jump,' 2'你应该使用je

cmp [size], '2'
je small
cmp [size], '1'
je e

处理器使用flags跟踪最后一次操作。在cmp的情况下,它从第二个值中减去第一个值。然后检查零标志以查找这两个值是否为[size]和&#39 ; 2'是否平等。

相关问题