cmp语句中的问题?

时间:2013-10-06 11:58:10

标签: assembly nasm

我正在使用NASM。我认为在我的cmp语句中存在一些问题,它是数组的第一个索引和一个键之间的简单比较,两个都是相同的所以它应该打印Y,但它是打印N.如何修复它?

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;

1 个答案:

答案 0 :(得分: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