gpt4 book ai didi

c++ - C代码分解器

转载 作者:行者123 更新时间:2023-11-28 06:33:43 25 4
gpt4 key购买 nike

我想知道是否存在一个程序可以通过将所有循环和函数调用替换为 goto 语句来将 c 源代码分解为较低级别的代码。因此,它将代码减少为变量声明/堆分配、if 语句、goto 语句和逻辑/算术函数。

我认为这样的程序对于设计解释 C 代码的虚拟机很有用。

例子:

for(int a = 0; a < 100; a++){
printf("Hello");
}

会变成

int a = 0;
if(!(a<100)){
goto endForLoopOne;
}
forLoopOne:
printf("Hello");
if(a<100){
a++;
goto forLoopOne;
}
endForLoopOne:

最佳答案

gccclang(或可能许多其他编译器)允许您从 c 源代码获取汇编输出。
在 gcc 中 -S 标志将生成一个 .s 文件。

gcc -S <your c source>

汇编的语法将是 AT&T。

关于c++ - C代码分解器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27119087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com