IF条件对大会工作不
问题描述:
嗨家伙我有这样的代码,使用汇编FASM(FlatAssembler)IF条件对大会工作不
;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
程序不跳转到标签组件已经tryed的CMP [大小] 2减去48得到十进制值,但没有运气
任何帮助吗?
答
而不是仅仅打完电话后CMP【尺寸】跳,“2”,你应该使用乙脑
cmp [size], '2'
je small
cmp [size], '1'
je e
处理器跟踪使用CMP的flags.In情况下,最后运行的时间减去第一个值从第二个。然后它检查零标志以查找在这种情况下[size]和'2'的两个值是否相等。
那里有很多问题。首先,'jmp'是无条件的,它总是跳转。其次,“尺寸”没有定义。第三,你可能想指定它是一个“字节”。 – Jester 2015-03-31 22:05:26
通过改变jmp到je得到它的工作...该变量是错误的不是规模,而是勇气。谢谢 – 2015-03-31 22:08:31