第九章习题答案ARM程序设计.ppt
《第九章习题答案ARM程序设计.ppt》由会员分享,可在线阅读,更多相关《第九章习题答案ARM程序设计.ppt(14页珍藏版)》请在三一文库上搜索。
1、微处理器系统结构与嵌入式系统设计,第九章 ARM程序设计,作业,必做:9.2-9.5、 9.8、 9.15-9.18 选做:9.6、9.7、9.12、9.14 注意,除题目明确要求外,所有的程序均采用汇编语言编写,9.2 汇编语言和C语言相比,各具有什么特点? 答:汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。汇编语言依赖于机器硬件,不同CPU提供的汇编指令可能有很大的不同,因此汇编源程序几乎不具有移植性;但汇编语言程序主要优点是速度快、效率高,更能发挥机器硬件的长处; C语言是一种结构化的高级语言。其优点是可读性好,移植容易,是普遍使用的一种语言。缺点是占用资
2、源较多,需要先将源程序通过编译成机器语言才能执行,执行效率不如汇编高。,3/52,9.3 试用汇编代码完成如下C语言代码完成的功能。 int gcd(int a, int b) while (a != b) if (a b) a = a-b; else b = b-a; return a; 汇编实现: AREA Sub1,CODE,READ ONLY EXPORT Sub1 CMP R0, R1 ;(R0)=a,(R1)=b MOVEQ PC,LR ;相等则返回 SUBGT R0, R0, R1 ;带符号数大于条件码为GT,无符号数为HI SUBLT R1, R1, R0 ;带符号数小于条件码
3、为LT,无符号数为LO LDR R2,=a ;R2指向a STR R0,R2 ;更新变量a MOV PC,LR ;返回 END,9.4 宏的定义如下面的代码所示: MICRO $aa example $bb, $cc, $dd $aa CMP $cc, #0 B$dd $bb MEND 若在汇编程序中需要调用上面定义的宏example,则其程序代码如下。试写出下面程序被汇编后,宏展开后的结果。 lable example next, R3, NE next 宏展开后的代码为: label CMP R3 , #0 BNE next,9.5 编写一个程序段,当寄存器R3中数据大于R2中的数据时,将
4、R2中的数据加10存入寄存器R3;否则将R2中的数据加100存入寄存器R3,并把这个程序段定义成一个代码段。 AREA ADDITION,CODE,READONLY ENTRY Loop CMP R3 , R2 BHI GREATER ADD R3 , R2 , #100 B STOP GREATER ADD R3 , R2 , #10 STOP END,9.6编写一个程序段,判断寄存器R5中数据是否为12, 18, 22, 29, 45或67,如果是则将R0中数据加1,否则将R0设置为0xF,并把这个程序段定义成一个代码段 AREA Comp,CODE,READONLY ENTRY LDR
5、R0,=dat ;寄存器R0指向DataT表中的数据列表dat MOV R1, #7 ; dat表中的数据个数 MOV R2, #0 ;标志寄存器(R2)=0则R5中数据不在dat表中 SUB R0, R0, #4 ;调整比较指针 Loop SUB R1, R1, #1 ;调整比较次数 BEQ Handle CMP R5,R0,#4! BNE Loop MOVEQ R2,#1 Handle CMP R2,#0 ADDNE R0, R0, #1 MOVEQ R0,#0xF Stop AREA DataT,DATA,READWRITE dat DCD 12,18,22,29,45,67;需要比较的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第九 习题 答案 ARM 程序设计
链接地址:https://www.31doc.com/p-2259056.html