- 1、本文档共58页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式控制系统课件的-第3章-1 ARM7指令系统
3;第3章 ARM指令系统;ARM指令系统;ARM指令小节目录; ARM是三地址指令格式,指令的基本格式如下:; ARM指令的基本格式如下:;3.1 指令集介绍;3.1 指令集介绍;3.1 指令集介绍;3.1 指令集介绍;3.1 指令集介绍;ARM指令目录; ARM指令的基本格式如下:;操作码;3.1 指令集介绍;ARM指令目录;3.1 指令集介绍;助记符;助记符;LDR和STR——字和无符号字节加载/存储指令
LDR指令用于从内存中读取单一字或字节数据存入寄存器中,STR指令用于将寄存器中的单一字或字节数据保存到内存。指令格式如下:;ARM存储器访问指令——单寄存器存储;ARM存储器访问指令——单寄存器存储;LDR和STR——半字和有符号字节加载/存储指令
这类LDR/STR指令可加载有符号半字或字节,可加载/存储无符号半字。偏移量格式、寻址方式与加载/存储字和无符号字节指令相同。 ;LDR和STR指令应用示例:
1.加载/存储字和无符号字节指令
LDR R2,[R5] ;将R5指向地址的字数据存入R2
STR R1,[R0,#0x04] ;将R1的数据存储到R0+0x04地址
LDRB R3,[R2],#-1 ;将R2指向地址的字节数据存入R3,R2=R2-1
STRB R0,[R3,-R8 ASR #2] ;R0-[R3-R8/4],存储R0的最低有效字节
2.加载/存储半字和有符号字节指令
LDRSB R1,[R0,R3] ;将R0+R3地址上的字节数据存入R1,
; R1高24位用符号扩展
LDRH R6,[R2],#2 ;将R2指向地址的半字数据存入R6,高16位用0扩展
;读出后,R2=R2+2
STRH R1,[R0,#2]! ;将R1的半字数据保存到R0+2地址,
;然后R0=R0+2;(3)LDR和STR ----双字:加载/存储两个相邻的寄存器,64位双字。其句法有4种:
Op {cond} D Rd,[Rn] 零偏移
Op {cond} D Rd,[Rn,offset] {!} 前索引偏移
Op {cond} D Rd,label 程序相对偏移
Op {cond} D {T} Rd,[Rn],offset 后索引偏移
; 其中: Rd 加载/存储寄存器中的一个,另一个是R(d+1)。Rd必须是偶数寄存器,且不是R14。
Rn 除非指令为零偏移,或不带写回的前索引,否则,Rn不允许与Rd和R(d+1)相同。
label label必须是在当前指令的上下256字节范围内。
例如:
LDRD R6,[R11] ;R6←[R11],R7←[R11+4]
STRD R4,[R9,#24] ;R4→[R9+24],R5→[R9+28];助记符;ARM存储器访问指令——多寄存器存取;ARM存储器访问指令——多寄存器存取;ARM存储器访问指令——多寄存器存取;ARM存储器访问指令——多寄存器存取;助记符;ARM存储器访问指令——寄存器和存储器交换指令;ARM指令目录;3.1 指令集介绍;ARM数据处理指令——指令编码;助记符;助记符;助记符;助记符;助记符;助记符;助记符;助记符;助记符;助记符;助记符;助记符;助记符;助记符;助记符;助记符;助记符;助记符;助记符;ARM数据处理指令——比较指令;助记符;回顾 ARM指令系统
文档评论(0)