2015-03-31 64 views
-1

嗨家伙我有这样的代码,使用汇编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得到十进制值,但没有运气

任何帮助吗?

+1

那里有很多问题。首先,'jmp'是无条件的,它总是跳转。其次,“尺寸”没有定义。第三,你可能想指定它是一个“字节”。 – Jester 2015-03-31 22:05:26

+0

通过改变jmp到je得到它的工作...该变量是错误的不是规模,而是勇气。谢谢 – 2015-03-31 22:08:31

回答

0

而不是仅仅打完电话后CMP【尺寸】跳,“2”,你应该使用乙脑

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

处理器跟踪使用CMP的flags.In情况下,最后运行的时间减去第一个值从第二个。然后它检查零标志以查找在这种情况下[size]和'2'的两个值是否相等。