1

我一直在做一些研究,但我只找到越来越多的方法来做我想做的事,而且我一个都不理解。

我需要将哪些代码汇编成 .exe 才能返回5命令行?

我想要一个 exe,在调用时打印5.

研究:

printf "5", 0

它需要与 2 个库链接,我想保持简单。

move ebx, 5 ; or move ax, 5
ret

为什么会这样打印5?这会加载一个带有值的寄存器5并返回。没有其他的。

有人可以解释一下这些返回方式之间的区别5吗?

对于非常简单的 Windows EXE 可执行文件,什么最适合?

我无法得到 StackOverflow 中已经提出的问题的答案。

注意,我使用:Win 7、WinAsam、MASM

谢谢!

4

1 回答 1

2

为什么不使用 printf?在 Windows 上,它是 MS C 运行时的一部分,现在是 Windows 的一部分。

使用 Windows API,您将使用:

GetStdHandle

以及以下之一:

WriteConsole

WriteConsoleOutput

WriteConsoleOutputAttribute

WriteConsoleOutputCharacter

WriteFile

一切都取决于你想怎么做。

mov将某些内容放入寄存器不会打印任何内容,您必须告诉操作系统打印它。

如果你发现一些你不理解的东西,做一些研究,阅读文档,代码注释,玩弄代码改变的东西,看看它是如何工作的。

于 2013-04-03T00:14:50.017 回答