MASM StdOut 整数值而不是 ASCII 表示
我正在 MASM 中编写我的第一个汇编程序,并尝试使用 StdOut
打印出一个数字。这是我的代码(片段):
.data
Su dword 0
.code
start:
mov Su, 65
invoke StdOut, addr Su
invoke ExitProcess, 0
end start
问题是,它不是打印 65
,而是打印 ASCII 表示 A
。如何让它打印出整数值?
I'm writing on of my first assembly programs in MASM, and am trying to print out a number using StdOut
. Here is my code (snippet):
.data
Su dword 0
.code
start:
mov Su, 65
invoke StdOut, addr Su
invoke ExitProcess, 0
end start
The problem is, instead of printing out 65
, it prints out the ASCII representation A
. How can I make it print out an integral value?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
StdOut
采用字符串参数,因此您需要将双字转换为十进制字符串。这并不难手工完成,或者你可以寻找一个库函数来完成。讨论位于 http://www.masm32.com/board/index.php? topic=16316.0 会建议使用dwtoa
、itoa
或crt_itoa
之一,具体取决于您要链接的库 和。 (请注意,该链接正在讨论 ascii->integer,因此它使用 atoi 和 atodw。)StdOut
takes a string argument, so you'll need to convert the dword to a decimal string. This is not hard to do by hand, or you can look for a library function to do it. The discussion at http://www.masm32.com/board/index.php?topic=16316.0 would suggest one ofdwtoa
,itoa
, orcrt_itoa
, depending on what libraries you're linking with. (Note that the link is talking about ascii->integer, so it uses atoi and atodw.)