IF 条件装配不工作

IF Condition on Assembly not working

大家好,我有这段代码,使用汇编程序 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 以获得十进制值但没有成功的标签

有什么帮助吗?

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

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

处理器使用 cmp 的 flags.In 情况跟踪最后一个操作它从 second.Then 中减去第一个值它检查零标志以查找在这种情况下这两个值是否 [ size]和'2'是否相等。