我有这段代码:
.386
.model flat, stdcall
option casemap :none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\masm32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\masm32.lib
.data
num dd ?
.code
start:
mov eax, 1
mov ebx, 1
add eax, ebx
push eax
pop num
sub num, 0
invoke StdOut, addr num
invoke ExitProcess, 0
end start
它应该做的是做1 + 1然后在控制台上显示结果。 当我运行它时,它显示2的ASCII字符(第二个ASCII字符),而不是数字2.我不知道如何让它显示数字2,而不是第二个ASCII字符。 我该怎么做?
提前致谢,
Progrmr
答案 0 :(得分:1)
您可以将变量声明为字符串:
.data
num DB '2',0 ; maps "2" and a null-symbol to num
此外,您可以为您的号码添加48(这将给出正确的ASCII码)(或减去从字符串中获取整数)。