我是新來的彙編語言,而我是編寫一個程序,測試AL中的ASCII值是範圍「0 - 9」,我想我犯了一些邏輯錯誤。測試AL中作爲範圍爲「0 - 9」的數字的ASCII值[Assembly X86]
另外,我必須通過設置/清除Z標誌返回true/false。我知道如何設置/清除進位標誌,但我沒有設置/清零標誌。
我試圖尋找幫助,但我完全失去了這個東西。這是我迄今爲止所做的。
Include Irvine32.inc
.data
Array1 BYTE 0,1,2,3,'4',11,7,8,9,10
buff BYTE 10 dup(?)
.code
main PROC
Call Clrscr
Mov esi, Offset Array1
Mov edi, Offset buff
Mov ecx, LengthOf Array1
L1:
Mov AL,[ESI]
Call ASCII_Test
JNC No
Mov [EDI],AL
INC EDI
No:
INC ESI
Loop L1
Call CRLF
Mov edx, Offset buff
Call WriteString
Call CRLF
Exit
Main ENDP
ASCII_Test PROC
CMP AL,'0'
JB No
CMP AL,'9'
JA No
STC
RET
No:
CLC
RET
ASCII_Test ENDP
END main
請告訴我我犯了什麼錯誤,以便我可以糾正它們。謝謝。
測試,看是否在AL值是十六進制30和六角39. [鏈接](HTTP之間://www.asciitable.com/) – jeff