- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第九章习题答案_ARM程序设计课件
微处理器系统结构与嵌入式系统设计;作业; 9.2 汇编语言和C语言相比,各具有什么特点?
答:汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。汇编语言依赖于机器硬件,不同CPU提供的汇编指令可能有很大的不同,因此汇编源程序几乎不具有移植性;但汇编语言程序主要优点是速度快、效率高,更能发挥机器硬件的长处;
C语言是一种结构化的高级语言。其优点是可读性好,移植容易,是普遍使用的一种语言。缺点是占用资源较多,需要先将源程序通过编译成机器语言才能执行,执行效率不如汇编高。; 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 ;带符号数小于条件码为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中的数据时,将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 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;需要比较的数据列表
END;;9.12 试把如下C函数改写成汇编语言函数。
(1) int SubXY(int x, int y)
{
您可能关注的文档
最近下载
- 浙江大学党政人员招聘真题.pdf VIP
- 椎基底动脉综合征护理查房ppt.pptx VIP
- 大学招聘党政管理岗笔试考什么题.pdf VIP
- TCPIA 0120—2025《海上光伏用管式浮体锚固系统设计规范》.pdf
- 济柴V系列天然气发动机使用维护说明书.doc VIP
- SF-36生活质量调查表(SF-36-含评分细则).docx VIP
- 第一次全国自然灾害综合风险普查公报汇编 202405.pdf
- 风电公司风电场35kv集电线路检修技术施工方案.docx VIP
- 【高等数学练习题】上海第二工业大学专升本自考真题汇总(附答案解析).docx VIP
- 风电公司风电场35kv集电线路检修技术施工方案.doc VIP
文档评论(0)