2022年编译器对RW和ZI的处理 .pdf
《2022年编译器对RW和ZI的处理 .pdf》由会员分享,可在线阅读,更多相关《2022年编译器对RW和ZI的处理 .pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课题名称:编译器对 RW 和 ZI 的处理姓名:安钢学号: 103229 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - 一、 实验目的:C编译器在编译连接C程序时,一般是将程序分成代码段,初始化数据段,未初始化数据段, 这三个段通常是在存储器中分开放置,但又有一些规律, 即代码段放在一个位置, 未初始化数据段是紧接着初始化数据段之后。本实验的目的主要就是为了验证编译器的这种处理方式。二、 实验步骤2.1 实验程序设计为了研究程
2、序在储存器中存储位置的规律,设计了一个简单的函数如下,函数有如下特点,(1)为了便于跟踪反汇编,以说明问题更深层次的方面,main函数里使用了内嵌汇编, (2)对编译器设置了code 地址和数据地址,具体设置如下图( 3)设置了几个简单变量,例子简单但能够更深入的分析问题的本质。以上特点都是为了说清楚反汇编的处理。上图重点在 RO BASE=0X8000 RW BASE=0X10000 后面将会看到此设置的意义。实验程序如下:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共
3、 5 页 - - - - - - - - - #include int SPACE , WI , LO=15 , WI1=6 , WI2=10 ; void main(void) _asm add WI,WI1,WI2 mul SPACE,LO,WI / return(SPACE); 如示,设置了未定义的SPACE , WI 和定义了的LO=15 , WI1=6 , WI2=10 后面的反汇编将说明每一个变量在存储器中应存放的精确地址。2.2 反汇编的处理为了方便说明,主要分析放在代码的注释部分,结论性的分析将放在代码后面,; 编译器自动的预先处理;注意 此处是从0 x00008000 开始执
4、行对照上面所作设置。 。 。_main 0 xe28f8090 add r8,pc,#0 x90 ; #0 x8098 ; 跳到_region_table ;那里放了4 个编译器系统设置的4 个常量00008004 0 xe898000f ldmia r8,r0-r3 ; 将 4 个量放入 R0-R3, 00008008 0 xe0800008 add r0,r0,r8 0000800c 0 xe0811008 add r1,r1,r8 00008010 0 xe0822008 add r2,r2,r8 00008014 0 xe0833008 add r3,r3,r8 00008018 0
5、xe240b001 sub r11,r0,#1 ;R11=R0-1 0000801c 0 xe242c001 sub r12,r2,#1 ;R12=R2-1 _move_region 0 xe1500001 cmp r0,r1 00008024 0 x0a00000e beq _zero_region ;R0=R1 时跳到 _zero_region 00008028 0 xe8b00070 ldmia r0!,r4-r6 ;若 R0! =R1 将 R0 指向的内容放入;r4-r6 同时 R0 指针更新0000802c 0 xe1540005 cmp r4,r5 ;若 R4=R5,跳回到_mov
6、e_region 00008030 0 x0afffffa beq _move_region 00008034 0 xe3140001 tst r4,#1 ;测试 R4 第 0 位是否为1 00008038 0 x1084400b addne r4,r4,r11 ;若不为 1 则 R4=R4+R11 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - 0000803c 0 xe3150001 tst r5,#1 ;测试 R5 第 0
7、 位是否为1 00008040 0 x1085500b addne r5,r5,r11 ;若不为 1 则 R5=R5+R11 00008044 0 xe3150002 tst r5,#2 ;测试 R5 第 1 位是否为1 00008048 0 x10855009 addne r5,r5,r9 ;若不为 1 则 R5=R5+R9 0000804c 0 xe3c55003 bic r5,r5,#3 ;清除 R5 的第 0,1 位的 1 _move_loop 0 xe2566004 subs r6,r6,#4 ;R6=R6-4 00008054 0 x24947004 ldrcs r7,r4,#4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年编译器对RW和ZI的处理 2022 编译器 RW ZI 处理
限制150内