binary - 可执行文件究竟是如何工作的?

标签 binary executable instructions

我知道可执行文件包含指令,但这些指令到底是什么?如果我想调用MessageBox以 API 函数为例,指令是什么样的?

谢谢。

最佳答案

Executables是操作系统可以理解的二进制文件。可执行文件将包含其中包含数据的部分。 Windows 使用 PE format . PE 格式有一个部分有 machine指示。这些指令只是按顺序排列的数字,CPU 可以理解。

对 MessageBox() 的函数调用将是一系列指令,这些指令将

1)具有DLL中的函数地址。这个地址是编译器输入的

2) 将参数“插入”堆栈的指令

3)实际的函数调用

4)某种清理(取决于调用约定)。

重要的是要记住 EXE 文件只是特殊格式的文件。我没有反汇编,但您可以尝试编译您的代码,然后在 Visual Studio 中打开您的 EXE 以查看反汇编。

关于binary - 可执行文件究竟是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1616772/

相关文章:

c - 使用按位运算符在 C 中模拟浮点乘法

c - 将所有位设置为最低有效位

ios - 如何知道您构建的 iOS 应用程序是否适用于 64 位。

java - 可运行 JAR 不适用于引用的库

assembly - cmp 和 ja 问题

assembly - 使用具有相同寄存器的 TEST 指令

webassembly - Wasm 符号扩展指令含糊不清?

python:解压缩 IBM 32 位 float

c# - 将文件存储在 C# EXE 文件中

java - 使用java插入二叉树不起作用