作者jimmy5566 (56好棒)
看板ASM
標題[問題] 條件迴圈指令的疑問
時間Mon May 10 11:42:56 2010
.data
array SWORD 0,0,1,0,10,30,0,4
sentinel SWORD 0h
str1 BYTE"Nonzero data not found!",0Dh,0Ah,0
str2 BYTE"Nonzero data found!",0Dh,0Ah,0
.code
main PROC
mov esi,OFFSET array
mov ecx,LENGTHOF array
L1:
cmp WORD PTR [esi],0
pushfd
add esi,TYPE array
popfd
loopz L1
jz quit
sub esi,TYPE array
quit:
cmp WORD PTR[esi],0h
jz L2
mov edx,OFFSET str2
jmp L3
L2:
mov edx,OFFSET str1
L3:
call WriteString
exit
main ENDP
END main
以上的執行結果會出現Nonzero data found!
如果希望能顯示出陣列"第一個不為0的整數是1"
那要在這段程式中加上什麼程式碼呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.143.26.146
→ eentut:你整個判斷式結構很怪 看你的code只是要找array裡面有沒非0 05/10 13:38
→ eentut:這樣只要一個cmp而已 後面那cmp是多餘的 05/10 13:39