将含指针的x86短ASM片段翻译为C代码的问题求助
问题排查思路
- 第一点:确认C语言指针算术的使用是否正确
C语言中,指针做加法运算的偏移量和指针指向的类型强绑定:如果是int*类型的指针,p + n对应的实际内存字节偏移为n * sizeof(int),32位环境下sizeof(int)为4。你可以自行计算你代码中*(d + 0x4)对应的实际字节偏移,和汇编中4(%edx)的4字节偏移是否一致。 - 第二点:检查变量名的笔误
逐行核对你写的C代码中变量的定义和使用是否匹配,重点检查return语句返回的变量名,是否为你之前定义的、存储了最终计算结果的变量。
内容的提问来源于stack exchange,提问作者cliesens
相关产品推荐
相关产品推荐

