电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

PowerPC体系结构之指令集VIP免费

PowerPC体系结构之指令集_第1页
1/17
PowerPC体系结构之指令集_第2页
2/17
PowerPC体系结构之指令集_第3页
3/17
Pow erPC 体系结构之指令集 1. 概述 Book E 定义的 PowerPC 指令集的指令可分为以下几类: 分支跳转指令 CR 指令 整数指令 浮点指令 处理器控制指令 存储管理相关指令 CR 指令主要是对 CR 内部位运算支持的一些指令,如 crand, cror, crxor 等等。 2. 常用指令 先看一个测试程序: ------------------------------------------------------------------ int test_call(int a, int b, int c) { a = b + c; return a; } int test_if(int s) { int i; if(s > 0) i = s; else if(s < 0) i = -s; else i = s * 8; return i; } int test_cyc1(int c) { int sum = 0; do { sum += c; c--; } while(c > 0); return c; } int test_cyc2(int c) { int sum = 0; for(; c > 0; c--) sum += c; return c; } int main() { int a, b, c, d; a = test_if(5); b = test_cyc1(10); c = test_cyc2(10); d = test_call(1, 2, 3); return a + b + c + d; } ------------------------------------------------------------------ 引入的目的在于查看判断、循环和过程调用这些基本结构在 PowerPC 里怎么被支持。 -O2 参数编译后,objdump -S -d 反汇编,则: ------------------------------------------------------------------ 1000040c : int test_call(int a, int b, int c) { a = b + c; return a; } 1000040c: 7c 64 2a 14 add r3,r4,r5 ----> 对应 a, b, c 三个参数,同时 r3 又置返回值 10000410: 4e 80 00 20 blr ----> 跳转到 LR 所存放的地址处,即函数返回 10000414 : int test_if(int s) { int i; if(s > 0) 10000414: 7c 60 1b 79 mr. r0,r3 -----> r3 移到 r0,若 r0 小于、大于、等于 0,则置 CR0 的相应位。指令后多一点,则说明该指令会据执行结果,设置 CR 的相应位 10000418: 7c 03 03 78 mr r3,r0 -----> 此条指令多余 1000041c: 4d a1 00 20 bgtlr+ -----> 若 CR0[gt] 位为 1,则跳转到 LR 所存放的地址处,即直接函数返回了。此条指令等价于 bclr 13, 1 i = s; else if(s < 0) 10000420: 38 60 00 00 li r3,0 10000424: 4d 82 00 20 be...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

PowerPC体系结构之指令集

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部