【发布时间】:2021-03-05 19:10:40
【问题描述】:
在this站点,写了一段简单的C代码,得到了它的汇编代码:(x86-64 gcc 10.2)
#include<stdio.h>
// Type your code here, or load an example.
int main() {
int a=5, b=5;
int c = a+b;
return 0;
}
main:
push rbp
mov rbp, rsp
mov DWORD PTR [rbp-4], 5
mov DWORD PTR [rbp-8], 5
mov edx, DWORD PTR [rbp-4]
mov eax, DWORD PTR [rbp-8]
add eax, edx
mov DWORD PTR [rbp-12], eax
mov eax, 0
pop rbp
ret
如果我复制上述汇编代码并将其粘贴到记事本中,我能否以某种方式在 Windows 中运行它以获得与运行上述 C 代码相同的预期输出?如果可以,我该怎么做。
【问题讨论】:
-
你得到的是汇编源代码。通过汇编程序运行它,您将拥有可执行文件。或者,只需在原始 C 代码上使用普通 C 编译器,这也会为您提供可执行文件。
-
CPU 运行二进制机器代码,而不是 asm 文本源。如果您将其组装到
.obj并像C 编译器那样链接它,那么可以。