x86 程序集输入一组整数
x86 Assembly Input a set of Integers
下面的代码要求用户输入整数,然后代码会将同一组整数返回给用户。
include irvine32.inc
.data
input dword ?
prompt1 byte "Input your numbers: ",0
.code
mWriteNum Macro input
push ecx
push eax
mov eax, offset input
call writedec
pop eax
push ecx
endM
mReadInput MACRO input
push ecx
push eax
mov eax, offset input
mov ecx, sizeof input
call Readint
mov input, eax
pop eax
pop ecx
endM
main proc
call clrscr
mov edx, offset prompt1
call writeString
mReadInput input
call crlf
mWriteNum input
exit
main ENDP
end main
然而,结果是这样的:
Input your numbers: 123
4210688
我在这里做什么?请帮忙。谢谢
如您在 the documentation for WriteDec
中所见,您应该在 eax
中提供要打印的值,而不是要打印的值的地址。
下面的代码要求用户输入整数,然后代码会将同一组整数返回给用户。
include irvine32.inc
.data
input dword ?
prompt1 byte "Input your numbers: ",0
.code
mWriteNum Macro input
push ecx
push eax
mov eax, offset input
call writedec
pop eax
push ecx
endM
mReadInput MACRO input
push ecx
push eax
mov eax, offset input
mov ecx, sizeof input
call Readint
mov input, eax
pop eax
pop ecx
endM
main proc
call clrscr
mov edx, offset prompt1
call writeString
mReadInput input
call crlf
mWriteNum input
exit
main ENDP
end main
然而,结果是这样的:
Input your numbers: 123
4210688
我在这里做什么?请帮忙。谢谢
如您在 the documentation for WriteDec
中所见,您应该在 eax
中提供要打印的值,而不是要打印的值的地址。