0

我正在使用 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;
4

1 回答 1

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
于 2013-10-06T12:19:48.030 回答