gpt4 book ai didi

将 ARM 转换为 C

转载 作者:行者123 更新时间:2023-12-01 12:47:38 25 4
gpt4 key购买 nike

例如,给定以下 ARM 汇编代码,是否有任何直接的方法可以使用任何适当的变量名将其直接转换为 C?

      ADD $2  $0  #9
ADD $3 $0 #3
ADD $1 $0 $0
loop: ADD $1 $1 #1
ADD $3 $0 $3, LSL #1
SUB $2 $2 $1
CMP $2 $1
BNE loop

此外,由于我仍在学习 ARM,循环将执行多少次,SUB 或 ADD?是否有直接的方法来确定这一点?

感谢您的帮助!任何其他不特别旨在回答问题的见解也很好。

最佳答案

简而言之,BNE - 分支不相等,可以建议 do{...}while循环或其他方式while (...){...} ,甚至可能是 for( ...; ... < ....; ...){...}循环,这就是它可以去的地方。

至于从一些寄存器中读取加法/减法(读取,C 上下文中的内存变量),您将不得不通过读取来玩,并得出一个近似的等价物。

反编译器在这个阶段可能帮不了你,玩几个 C 代码来练习并使用 -S 将它编译成汇编语言。将命令参数传递给 C 编译器并查看您得到了什么,恐怕主要是反复试验,也就是说,如果您正在寻找上述问题中该代码的精确副本。

关于将 ARM 转换为 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14430389/

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