x86程序集 - 如何显示整数2,而不是第二个ASCII字符

时间:2012-04-16 10:11:24

标签: assembly x86 masm masm32

我有这段代码:

.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

1 个答案:

答案 0 :(得分:1)

您可以将变量声明为字符串:

.data
num DB '2',0 ; maps "2" and a null-symbol to num

此外,您可以为您的号码添加48(这将给出正确的ASCII码)(或减去从字符串中获取整数)。