第九章习题答案ARM程序设计ppt课件_第1页
第九章习题答案ARM程序设计ppt课件_第2页
第九章习题答案ARM程序设计ppt课件_第3页
第九章习题答案ARM程序设计ppt课件_第4页
第九章习题答案ARM程序设计ppt课件_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、作业作业l必做:必做:9.2-9.5、 9.8、 9.15-9.18l选做:选做:9.6、9.7、9.12、9.14l留意,除标题明确要求外,一切的程序均采留意,除标题明确要求外,一切的程序均采用汇编言语编写用汇编言语编写 9.2 汇编言语和汇编言语和C言语相比,各具有什么特点?言语相比,各具有什么特点?答:汇编言语是一种用文字助记符来表示机器指令的符号答:汇编言语是一种用文字助记符来表示机器指令的符号言语,是最接近机器码的一种言语。汇编言语依赖于言语,是最接近机器码的一种言语。汇编言语依赖于机器硬件,不同机器硬件,不同CPU提供的汇编指令能够有很大的不提供的汇编指令能够有很大的不同,因此汇编

2、源程序几乎不具有移植性;但汇编言语同,因此汇编源程序几乎不具有移植性;但汇编言语程序主要优点是速度快、效率高,更能发扬机器硬件程序主要优点是速度快、效率高,更能发扬机器硬件的优点;的优点; C言语是一种构造化的高级言语。其优点是可读性好,言语是一种构造化的高级言语。其优点是可读性好,移植容易,是普遍运用的一种言语。缺陷是占用资源移植容易,是普遍运用的一种言语。缺陷是占用资源较多,需求先将源程序经过编译成机器言语才干执行,较多,需求先将源程序经过编译成机器言语才干执行,执行效率不如汇编高。执行效率不如汇编高。汇编言语源程序汇编言语源程序机器言语程序机器言语程序目的代码目的代码汇编汇编程序汇编汇编

3、程序C言语源程序言语源程序编译或解释编译程序编译或解释编译程序3 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 ONLYEXPORT Sub1CMP R0, R1;R0=a,R1=b MOVEQ PC,LR ;相等那么前往;相等那么前往SUBGT R0, R0, R1;带符号数大于条件码为;带符号数大于条件码为GT,无符号数为,无符号数为H

4、I SUBLT R1, R1, R0;带符号数小于条件码为;带符号数小于条件码为LT,无符号数为无符号数为LOLDR R2,=a;R2指向指向a STRR0,R2;更新变量;更新变量a MOV PC,LR;前往;前往END9.4 宏的定义如下面的代码所示:宏的定义如下面的代码所示:MICRO $aa example $bb, $cc, $dd $aa CMP $cc, #0 B$dd $bbMEND 假设在汇编程序中需求调用上面定义的宏假设在汇编程序中需求调用上面定义的宏example,那么其,那么其程序代码如下。试写出下面程序被汇编后,宏展开后的结程序代码如下。试写出下面程序被汇编后,宏展开

5、后的结果。果。lable example next, R3, NEnext宏展开后的代码为:宏展开后的代码为: label CMP R3 , #0 BNE next 9.5 编写一个程序段,当存放器编写一个程序段,当存放器R3中数据大于中数据大于R2中的数据时,将中的数据时,将R2中的中的数据加数据加10存入存放器存入存放器R3;否那么将;否那么将R2中的数据加中的数据加100存入存放器存入存放器R3,并,并把这个程序段定义成一个代码段。把这个程序段定义成一个代码段。AREA ADDITION,CODE,READONLYENTRYLoopCMPR3 , R2BHIGREATERADDR3 ,

6、R2 , #100BSTOPGREATERADD R3 , R2 , #10STOPEND9.6编写一个程序段,判别存放器编写一个程序段,判别存放器R5中数据能否为中数据能否为12, 18, 22, 29, 45或或67,假设是,假设是那么将那么将R0中数据加中数据加1,否那么将,否那么将R0设置为设置为0 xF,并把这个程序段定义成一个代码,并把这个程序段定义成一个代码段段 AREA Comp,CODE,READONLY ENTRY LDR R0,=dat;存放器;存放器R0指向指向DataT表中的数据列表表中的数据列表dat MOV R1,#7; dat表中的数据个数表中的数据个数 MOV

7、 R2,#0;标志存放器;标志存放器R2=0那么那么R5中数中数据不在据不在dat表中表中 SUB R0,R0, #4;调整比较指针;调整比较指针 Loop SUB R1,R1, #1;调整比较次数;调整比较次数 BEQ Handle CMP R5,R0,#4! BNELoop MOVEQ R2,#1 Handle CMP R2,#0 ADDNE R0, R0, #1 MOVEQ R0,#0 xF Stop AREA DataT,DATA,READWRITE dat DCD 12,18,22,29,45,67;需求比较的数据;需求比较的数据列表列表 END89.8 试编写一个循环程序,实现从试

8、编写一个循环程序,实现从0开场开场10个偶数的累加。个偶数的累加。AREA Foud,CODE,READONLYENTRY MOV R0,#0;存放累加;存放累加和和 MOV R1,#0;存放加数;存放加数 MOVR2,#9;累加次数;累加次数Loop ADD R1,R1,#2 ADD R0,R0,R1 SUBR2,R2,#1 ;调整累加次;调整累加次数数 BNE LoopStopEND9.12 试把如下试把如下C函数改写成汇编言语函数。函数改写成汇编言语函数。(1) int SubXY(int x, int y) return x-y; (2) void SubXY(int x, int y

9、, int z) z = x-y; 1 AREA SubXY ,CODE,READONLYEXPORT SubXYSUB R0,R0,R1;结果经过;结果经过R0前前往往 MOV PC,LR;前往;前往END2 AREA SubXY ,CODE,READONLYEXPORT SubXYSUB R2,R0,R1LDRR3,=z;R3执行执行变量变量zSTR R2,R3;更新变;更新变量量z MOV PC,LR;前往;前往END9.14 把如下汇编言语函数改写成把如下汇编言语函数改写成C函数。函数。CMP R0, #1CMPNE R1, #1ADDEQ R2, R3, R4C函数为:函数为:voi

10、d mydo(int a, int b, int c, int d, int e) ; (R0)=a,(R1)=b,(R2)=c ; (R3)=d, R4)=e if (a!=1) if (b= =1) c=d+e;9.15 阅读程序,阐明如下程序完成的功能。阅读程序,阐明如下程序完成的功能。 llsearch CMP R0, #0 LDRNEB R2, R0 CMPNE R1, R2 LDRNE R0, R0, #4 BNE llsearch MOV PC, LR该程序功能为:该程序功能为: 假设假设R00,那么将,那么将R0指向的字节数据读入指向的字节数据读入R2; 假设假设R00且且R1

11、R2,那么将,那么将R0+4指向的双字数指向的双字数据存入据存入R0中;中; 循环,直至循环,直至R0=R1退出子程序。退出子程序。 9.16 阅读程序,阐明如下程序完成的功能。阅读程序,阐明如下程序完成的功能。 strcmp LDRB R2, R0, #1 LDRB R3, R1, #1 CMP R2, #0 CMPNE R3, #0 BEQ return CMP R2, R3 BEQ strcmp return SUB R0, R2, R3 MOV PC, LR程序功能为:程序功能为: R0指向数据串指向数据串S1的前一个字节单元,的前一个字节单元,R1指向数据指向数据串串S2的前一个字节

12、单元;依次比较字符串的前一个字节单元;依次比较字符串S1、S2中的中的字符,直至任一字符串终了;将字符,直至任一字符串终了;将S1,S2第一个不同字符或第一个不同字符或最后一个字符的差存入最后一个字符的差存入R0并前往;并前往; 9.17 阅读程序,阐明如下程序完成的功能。阅读程序,阐明如下程序完成的功能。 CMP R0, #maxindex LDRLO PC, PC, R0, LSL #2 B IndexOutOfRange DCD Handler0 DCD Handler1 DCD Handler2 DCD Handler3 程序功能为:程序功能为: 实现子程序散转:假设实现子程序散转:假设R0在有效范围内小于在有效范围内小于#maxindex那么跳转到那么跳转到Hander03所指的子程序之所指的子程序之一。一。 9.18 阅读程序,阐明如下程序完成的功能。阅读程序,阐明如下程序完成的功能。loop LDMIA R12!, (R0-R11)STMIA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论