2015-03-31 66 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'的兩個值是否相等。