繁体   English   中英

将PowerPC转换为C

[英]Reversing PowerPC to C

当涉及到按位函数时,我并不是最好的,但是我想弄清楚它是如何工作的。 一旦我弄清楚了它是如何工作的,我可能就可以弄清楚其余的了。

ori r11, r11, 11

那怎么能翻译成C? 我做对了吗?

r11 = (r11 | 11);

我知道这不是正确的C语法,我只想对其有一个基本的了解。

ori指令是or immediate: ori RA RS UI

哪里:

 RA = the resulting register to store the operation result
 RS = the source register for which to use in the operation
 UI is an unsigned 16-bit integer for the operation

您已经正确解释了它,并且您的C看起来也很有效。

但是请注意,PowerPC是一个大端架构,因此,如果您打算跨非大端平台(例如Intel x86)跨平台比较任何数据,则不会获得正确的结果。 语法不变,“低位”的位置将改变。

ori是“或立即数”,因此您是正确的。 C也可以,尽管最好是:

r11 |= 11;

令人高兴的是,许多PowerPC指令的读取方式与相应的C语句完全相同。 例如add命令

add r3,r4,r5

等价于该陈述

r3 = r4 + r5;

如我所说,这适用于大多数命令。 也有例外。 例如,它不适用于商店。 除此之外,您还需要从规范中查找每个助记符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM