キーストロークを待機し、押されたキーを返すマクロ。マクロには、ASCII コードとキーボード スキャン コードのパラメーターを含める必要があります。
次のコードがありますが、2 つのエラーが発生します。エラーは下にあり、その下に私のソースコードがあります。
エラー:
エラー A2006: 未定義の syV
エラー MSB3721: コマンド "ml.exe /c /nologo /Zi /Fo"Debug\ch10_01.obj" /Fl"zprob1.lst" /I "c:\Irvine" /W3 /errorReport:prompt /Ta".. ..\ASM Solutions\ch10\ch10_01.asm"" はコード 1 で終了しました
ソースコード:
INCLUDE Irvine16.inc
ASSUME DS:_DATA
mReadkey MACRO ascii, scan
mov ah,10h ; BIOS keyboard input function
int 16h
mov scan,ah
mov ascii,al
ENDM
.data
ascii BYTE ?
scan BYTE ?
str1 BYTE "ASCII code: ",0
str2 BYTE "Scan code: ",0
.code
main PROC
mov ax,@data
mov ds,ax
; Wait for a key; when the macro returns, the two arguments
; contain the ASCII code and scan code of the key.
mReadkey ascii, scan
; Display the values.
mov edx,OFFSET str1
call WriteString
movzx eax,ascii
call WriteHex
call Crlf
mov edx,OFFSET str2
call WriteString
movzx eax,scan
call WriteHex
call Crlf
exit
main ENDP
END main