- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验1内容:
①使用LDR指令读取0的数据,将数据加1,若结果小于10则使用STR指令把结果写回原地址,若结果大于等于10,则把0写回原地址……周而复此循环;
②使用ADS 1.2软件仿真,单步、全速运行程序,设置断点,打开寄存器窗口(Processor Registers)监视R0、R1的值,打开存储器观察窗口(Memory) 监视0的值。
COUNT EQU 0 ; 定义一个变量,地址为0
AREA Experiment1,CODE,READONLY ; 声明代码段Example2
ENTRY ; 标识程序入口
CODE32 ; 声明32位ARM指令
START LDR R1,=COUNT ; R1 ←COUNT
MOV R0,#0 ; R0←0
STR R0,[R1] ; [R1]←R0,即设置COUNT为0
LOOP LDR R1,=COUNT
LDR R0,[R1] ; R0 ←[R1]
ADD R0,R0,#1 ; R0 ← R0 + 1
CMP R0,#10 ; R0与10比较,影响条件码标志
MOVHS R0,#0 ; 若R0大于等于10,则此指令执行,R0 ← 0
STR R0,[R1] ; [R1] ←R0,即保存COUNT
B LOOP
END
实验2内容:
1.使用MOV和MVN指令访问ARM通用寄存器;
2.使用ADD、SUB、AND、ORR、CMP、TST等指令完成数据加减运算及逻辑运算。
实验代码:
X EQU 11 ; 定义X的值为11
Y EQU 8 ; 定义Y的值为8
BIT23 EQU (123) ; 定义BIT23的值为0 AREA Experiment2,CODE,READONLY ; 声明代码段Example3
ENTRY ; 标识程序入口
CODE32 ; 声明32位ARM指令
START ; 使用MOV、ADD指令实现:R8 = R3 = X + Y
MOV R0,#X ; R0 ←X,X的值必须是8位图数据
MOV R1,#Y ; R1 ←Y,Y的值必须是8位图数据
ADD R3,R0,R1 ; 即是R3 = X + Y
MOV R8,R3 ; R8 ← R3
; 使用MVN、SUB指令实现:R5 = 0x5FFFFFF8 - R8 * 8
MVN R0,#0xA0000007 ; 0xA0000007的反码为0x5FFFFFF8
SUB R5,R0,R8,LSL #3 ; R8左移3位,结果即是 R8 * 8
; 使用CMP指令判断(5*Y/2)(2*X)吗?若大于则R5 = R50xFFFF0000,否则R5 = R5|0x000000FF
MOV R0,#Y
ADD R0,R0,R0,LSL #2 ; 计算R0 = Y + 4*Y = 5*Y
MOV R0,R0,LSR #1 ; 计算R0 = 5*Y/2
MOV R1,#X
MOV R1,R1,LSL #1 ; 计算R1 = 2*X
CMP R0,R1 ; 比较R0和R1,即(5*Y/2)和(2*X)进行比较
LDRHI R2,=0xFFFF0000 ; 若(5*Y/2)(2*X),则R2 ← 0xFFFF0000
ANDHI R5,R5,R2 ; 若(5*Y/2)(2*X),则R5 = R5R2
ORRLS R5,R5,#0x000000FF ; 若(5*Y/2)≤(2*X),则R5 = R5|0x000000FF
; 使用TST指令测试R5的bit23是否为1,若是则将bit6位清零(使用BIC指令)
TST R5,#BIT23
BICNE R5,R5,#0
B START
END
实验3内容:
1.使用ARM汇编指令实现if条件执行;
2.使用ARM汇编指令实现for循环结构;
3.使用ARM汇编指令实现while循环结构;
4.使用ARM汇编指令实现do…while循环结构;
5.使用ARM汇编指令实现switch开关结构。
实验代码:
AREA Experiment3,CODE,READONLY ; 声明
您可能关注的文档
最近下载
- 仓储场地出租合同范本.docx VIP
- DL_T 596-2021 电力设备预防性试验规程.docx VIP
- 湖北农商行面试题目及答案.doc VIP
- 护理质量持续改进与患者身份识别.pptx
- (正式版)D-L∕T 849.6-2016 电力设备专用测试仪器通用技术条件 第6部分:高压谐振试验装置.docx VIP
- 族谱资料欢迎传阅妥善保管以存后世-陆氏家园.docx VIP
- 楼层别效用比与地价分配率.PDF VIP
- 毕业设计(论文)-基于PLC的自动上料系统设计.docx VIP
- 新课标下初中历史教学中学生历史素养的培养研究.pptx VIP
- 基于web体育馆场地预约系统的设计与实现毕业论文.docx
原创力文档


文档评论(0)