2013-10-06 62 views
0

我正在使用NASM。我認爲在我的cmp語句中存在一些問題,它是數組的第一個索引和一個鍵之間的簡單比較,兩者都是相同的,所以它應該打印Y,但它是打印N.如何解決它?cmp聲明中的問題?

jmp start 
array: dw 1,2,3,4,5 
key: dw 1 
start: 

cmp [array],word key 
jne not_found 
jmp found 

found: 
mov dx , 'Y';print Y if key is found 
jmp end 

not_found: 
mov dx , 'N';print N if key is not found 

end: 
mov ah , 2h ; 
int 21h ; 
mov ah , 0x4c 
int 0x21 ; synonymous to return 0; 
+0

你數組的第一個元素比較key'的'地址。 – zch

+0

如何比較數組的第一個元素和鍵? – Taimour

回答

1

我怎麼能比較的關鍵字數組的第一個元素?

; put the value of key in the ax register 
mov ax,[key] 
; compare the first value in array against ax (i.e. the key) 
cmp [array],ax 

順便說一句,而不是

mov ah , 0x4c 
int 0x21 ; synonymous to return 0; 

您可以使用:

int 0x20 ; terminate program with errorlevel=0 
+0

移動斧頭鑰匙的價值並沒有解決問題。它仍在印刷N. – Taimour

+0

適合我的作品。我得到Y作爲輸出。你是否確定改變'cmp'? – Michael

+0

是的,我改變了cmp,但仍然得到N. – Taimour