Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将PowerPC转换为C_C_Reverse Engineering_Powerpc - Fatal编程技术网

将PowerPC转换为C

将PowerPC转换为C,c,reverse-engineering,powerpc,C,Reverse Engineering,Powerpc,说到按位函数,我不是最好的,但我想弄清楚它是如何工作的。一旦我弄明白了这是怎么回事,我就可能弄明白剩下的 ori r11, r11, 11 如何将其翻译成C?我做得对吗 r11 = (r11 | 11); 我知道这不是正确的C语法,我只是想对它有一个基本的了解。ori是“或立即”,所以你是对的。C也可以,不过最好是: r11 |= 11; ori是“或立即”,所以你是正确的。C也可以,不过最好是: r11 |= 11; ori指令是或立即:ori-RA-RS-UI 其中: RA = t

说到按位函数,我不是最好的,但我想弄清楚它是如何工作的。一旦我弄明白了这是怎么回事,我就可能弄明白剩下的

ori r11, r11, 11
如何将其翻译成C?我做得对吗

r11 = (r11 | 11);
我知道这不是正确的C语法,我只是想对它有一个基本的了解。

ori是“或立即”,所以你是对的。C也可以,不过最好是:

r11 |= 11;
ori是“或立即”,所以你是正确的。C也可以,不过最好是:

r11 |= 11;

ori
指令是
或立即: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是一种big-endian体系结构,因此如果您计划在非big-endian的平台(例如Intel x86)上比较任何数据,您将无法得到正确的结果。
语法不变,“低阶位”的位置将改变。

ori指令是
或立即指令: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是一种big-endian体系结构,因此如果您计划在非big-endian的平台(例如Intel x86)上比较任何数据,您将无法得到正确的结果。
语法不会改变,“低阶位”的位置会改变。

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

add r3,r4,r5
这与声明是等价的

r3 = r4 + r5;

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

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

add r3,r4,r5
这与声明是等价的

r3 = r4 + r5;

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

您是否找到任何可以自动执行此操作的工具?即使c代码没有编译,它的可读性也比汇编程序强得多。你有没有发现任何可以自动编译的东西?即使c代码不编译,它也比汇编程序可读性强得多。