小编van*_*lfi的帖子

如何从汇编程序指令转到C代码

我有一个任务,除其他外,我需要在.asm文件中查找某个指令和"反向工程"(找出)C代码的哪一部分导致它在汇编程序级别执行.(文字下方的例子)

什么是最快(最简单)的方法.或者更好地说,.asm文件中的其他命令/指令/标签应该/我可以注意什么,这将指导我使用正确的C代码?

我几乎没有使用汇编代码的经验,很难弄清楚C代码的确切行会导致特定指令发生.

如果这有任何区别,那么这个架构就是TriCore.

示例:通过跟踪使用变量的位置,我设法找出C代码在asm文件中导致插入的内容

 .L23:
    movh.a  a15,#@his(InsertStruct)
    ld.bu   d15,[a15]@los(InsertStruct)
    or  d15,#1
    st.b    [a15]@los(InsertStruct),d15
.L51:
    ld.bu   d15,[a15]@los(InsertStruct)
    insert  d15,d15,#0,#0,#1
    st.b    [a15]@los(InsertStruct),d15
.L17:
    mov d15,#-1
Run Code Online (Sandbox Code Playgroud)

这导致我得到以下C代码:

InsertStruct.SomeMember = 0x1u;

InsertStruct.SomeMember = 0x0u;
Run Code Online (Sandbox Code Playgroud)

c assembly instruction-set instructions

5
推荐指数
1
解决办法
687
查看次数

标签 统计

assembly ×1

c ×1

instruction-set ×1

instructions ×1