- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
一、指令运算
1、利用若干指令,完成以下计算
1)、求R4R3+R2R1,和放在R6R5中
ADDSR5,R3,R1
ADCSR6,R4,R2
2)、求R4R3-1,差放在R6R5中
SUBSR5,R3,#1
SBCR6,R4,#0
3)、求R4R3+1,和放在R6R5中
ADDSR5,R3,#1
ADCR6,R4,#0
4)、求R4R3-R2R1,差放在R6R5中
SUBSR5,R3,R1
SBCR6,R4,R2
2、写出以下ARM指令
1).将R0+0x12地址处的数据读出,保存到R1中
LDRR1,[R0,#0x12]
2).将R1中数据保存到R0+0x12地址处
STRR1,[R0,#0x12]
3).将R0-0x12地址处的数据读出,保存到R1中
LDRR1,[R0,-#0x12]
4).将R1中的数据保存到R0-0x12地址处
R1,[R0,-#0x12]
5).将R0+R2地址处的数据读出,保存到R1中
LDRR1,[R0,R2]
6).将R1中数据保存到R0+R2地址处
STRR1,[R0,R2]
7).将R0-R2地址处的数据读出,保存到R1中
LDRR1,[R0,-R2]
8).将R1中的数据保存到R0-R2地址处
STRR1,[R0,-R2]
3、写一条ARM指令,完成操作r1=r2*3
ADDR1,R2,R2,LSL#1
4、初始值R1=23H,R2=0FH执行指令BICR0,R1,R2,LSL#1后,寄存器R0,R1的值分别是多少?
R0=21H,R1=23H
二、指令操作
1.ARM7TDMI(-S)有几种寻址方式?LDRR1,[R0,#0x08]属于哪种寻址方式?
1.寄存器寻址
2.立即寻址;
3.寄存器移位寻址;
4.寄存器间接寻址;
5.基址加偏址寻址;
6.多寄存器寻址;
7.堆栈寻址;
8.块复制寻址;
9.相对寻址;
LDRR1,[R0,#0x08]属于基址加偏址寻址。
2.ARM指令的条件码有多少个?默认条件码是什么?
16条,默认条件码是AL。
3.ARM指令中第二个操作数有哪几种形式?举例5个8位图立即数。
(1)立即数;(2)寄存器;(3)寄存器及移位常数;
0x3FC(0xFF2)、0、0xF0000000(0xF024)、200(0xC8)、0xF0000001(0x1F28)
4.CMP指令的操作是什么?写一个程序,判断R1的值是否大于0x30,是则将R1减去0x30。
CMP指令将寄存器Rn的值减去operand2的值,
根据操作的结果更新CPSR中的相应条件标志位,
以便后面的指令根据相应的条件标志来判断是否执行。
CMPR1,#0x30
SUBHIR1,R1,#0x30
5.调用子程序是用B还是用BL指令?请写出返回子程序的指令?
BL指令用于子程序调用。
MOVPC,LR
6.请指出LDR伪指令的用法。指令格式与LDR加载指令的区别是什么?
LDR伪指令用于加载32位的立即数或一个地址值到指定寄存器。第二个数为地址表达式。
7.将R0最后4位数据保留,并影响标志位
ANDSR0,R0,#0x0F
8.将R0的1,3,5位置1
ORRR0,R0,#0x2A
END;文件结束
5、用STMFD/LDMFD,MUL指令编写一个整数乘方的子程序,然后使用BL指令调用子程序计算Xn的值。
原理:
Xn=X*X*………*X,其中相乘的X个数为n个,先将X的值装入R0和R1中,使用R2作计数器,循环次数n-1次R0=R0*R1,运算结果保存在R0中:
编程如下:
;MAINROUTINE
X EQU 9
n EQU 8
AREA MyPro,CODE,READONLY
ENTRY
CODE32
START
LDR SP,=0x40003F00
LDR R0,=X
LDR R1,=n
BL POW
HALT B HALT
;POWSUBROUTINE
;INPUTR0,R1
;OUTPUT R0
POW
STMFD SP!,{R1-R12,LR}
MOVS R2,R1
MOVEQ R0,#1
BEQ POW_END
MOV R1,R0
SUB R2,R2,#1
PO
您可能关注的文档
- 嵌入式Linux操作系统学习规划.docx
- 嵌入式linux基本操作实验一的实验报告.docx
- 嵌入式linux实验二.doc
- 嵌入式Linux系统开发教程很完整的习题答案.doc
- 嵌入式MP3播放器设计.doc
- 嵌入式操作系统.doc
- 嵌入式操作系统期末复习资料.doc
- 嵌入式单机版点播系统使用说明书.doc
- 嵌入式复习题.docx
- 嵌入式工程师的软硬件道路三步曲!.doc
- 2024年湖南省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年江西省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年安徽省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年福建省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年广东省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年河北省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年河南省高考英语试卷(含答案解析)+听力音频.docx
- 2024年湖北省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年湖南省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年江苏省高考英语试卷(含答案解析)+听力音频+听力原文.docx
文档评论(0)