装配:将某些内容打印到屏幕(到命令行)的最佳方式是啥
Posted
技术标签:
【中文标题】装配:将某些内容打印到屏幕(到命令行)的最佳方式是啥【英文标题】:Assembly: What is the best way to print something to screen (to command line)装配:将某些内容打印到屏幕(到命令行)的最佳方式是什么 【发布时间】:2013-04-03 00:02:09 【问题描述】:我一直在做一些研究,但我发现越来越多的方法可以做我想做的事,而我一个都不理解。
我需要将什么代码汇编成 .exe 以将5
返回到命令行?
我想要一个在调用时打印 5
的 exe。
研究:
printf "5", 0
它需要链接2个库,我想保持简单。
move ebx, 5 ; or move ax, 5
ret
为什么会打印 5
?这会加载一个带有值5
的寄存器并返回。没有别的了。
谁能解释一下这些返回5
的方式之间的区别?
什么最适合非常简单的 Windows EXE 可执行文件?
我无法得到 *** 中已提出的问题的答案。
注意,我使用:Win 7、WinAsam、MASM
谢谢!
【问题讨论】:
Printing a character to standard output in Assembly x86 的可能重复项 【参考方案1】:为什么不使用 printf?在 Windows 上,它是 MS C 运行时的一部分,现在是 Windows 的一部分。
使用 Windows API,您将使用:
GetStdHandle
以及以下之一:
WriteConsole
WriteConsoleOutput
WriteConsoleOutputAttribute
WriteConsoleOutputCharacter
WriteFile
一切都取决于你想怎么做。
mov
ing 一些东西到一个寄存器不会打印任何东西,你必须告诉操作系统来打印它。
如果你发现一些你不理解的东西,做一些研究,阅读文档,代码 cmets,玩弄代码改变的东西,看看它是如何工作的。
【讨论】:
以上是关于装配:将某些内容打印到屏幕(到命令行)的最佳方式是啥的主要内容,如果未能解决你的问题,请参考以下文章