- 1、本文档共224页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CH04ARM寻址方式和指令系统
第四章 ARM寻址方式和指令系统 梁声灼 南昌大学计算机科学与技术系 EMAIL:jsjxlsz@163.com 电话目录 概述 ARM指令的寻址方式 ARM指令集 Thumb指令集 第四章 ARM寻址方式和指令系统 概述 概述 ARM微处理器的指令集是加载/存储型的,也即指令集仅能处理寄存器中的数据,而且处理结果都要放回寄存器中,而对系统存储器的访问则需要通过专门的加载/存储指令来完成。 ARM 微处理器的指令的分类 ARM微处理器的指令集可以分为六大类 : 跳转指令 数据处理指令 程序状态寄存器(PSR)处理指令 加载/存储指令 协处理器指令和异常产生指令 ARM微处理器指令表-1 ARM微处理器指令表-2 ARM微处理器指令表-3 ARM微处理器指令表-4 ARM微处理器指令表-5 指令的条件域 当处理器工作在ARM状态时,几乎所有的指令均根据CPSR中条件码的状态和指令的条件域有条件的执行。当指令的执行条件满足时,指令被执行,否则指令被忽略。 每一条ARM指令包含4位的条件码,位于指令的最高4位[31:28]。条件码共有16种,每种条件码可用两个字符表示,这两个字符可以添加在指令助记符的后面和指令同时使用。例如,跳转指令B可以加上后缀EQ变为BEQ表示“相等则跳转”,即当CPSR中的Z标志置位时发生跳转。 在16种条件标志码中,只有15种可以使用,第16种(1111)为系统保留,暂时不能使用。 指令的条件域表-1 指令的条件域表-2 指令长度及数据类型 ARM微处理器的指令长度可以是: 32位(在ARM状态下) 16位(在Thumb状态下) ARM微处理器中支持三种数据类型: 字节(8位) 半字(16位) 字(32位) 字需要4字节对齐(地址的低两位为0)、半字需要2字节对齐(地址的最低位为0) 指令格式 基本格式: op{cond}{S} Rd,Rn{,operand2} 其中,内的项是必须的,{}内的项是可选的 op:指令助记符,如LDR,STR等 cond:执行条件,如EQ,NE等,如不写则使用默认条件AL(无条件执行) S:是否影响CPSR寄存器的值,书写时影响,否则不影响 Rd:目标寄存器 Rn:第一个操作数的寄存器 operand2:第二个操作数 指令格式 例如: LDR R0,[R1] ;读取R1地址上的存储器单元内容,执行条件AL BEQ DATAEVEN ;跳转指令,执行条件EQ,即相等跳转到DATAEVEN ADDS R1,R1,#1 ;加法指令,R1+1=R1影响CPSR寄存器,带有S SUBNES R1,R1,#0xD ;条件执行减法运算(NE),R1-0xD=R1,影响CPSR寄存器,带有S 指令格式 指令格式:第2个操作数 灵活的使用第2个操作数“operand2”能够提高代码效率。它有如下的形式: #immed_8r——常数表达式; Rm——寄存器方式; Rm,shift——寄存器移位方式; 指令格式 指令格式:第2个操作数 #immed_8r——常数表达式 该常数必须对应8位位图,即一个8位的常数通过循环右移偶数位得到。 指令格式 指令格式:第2个操作数 #immed_8r——常数表达式 常数表达式应用举例: MOV R0,#1 ;R0=1 AND R1,R2,#0x0F ;R2与0x0F,结果保存在Rl LDR R0,[R1],#-4 ;读取R1地址上的存储器单元内容,且 R1= R1- 4 指令格式 指令格式:第2个操作数 Rm——寄存器方式 在寄存器方式下,操作数即为寄存器的数值。寄存器方式应用举例: SUB R1,R1,R2 ;R1-R2→R1 MOV PC,R0 ;PC=R0,程序跳转到指定地址 LDR R0,[R1],-R2 ;Rl所指存储器单元 内容存人R0,且R1 = R1 - R2 指令格式 指令格式:第2个操作数 Rm,shift——寄存器移位方式 将寄存器的移位结果作为操作数,但Rm值保持不变,移位方法如下: 指令格式 指令格式:第2个操作数 第四章 ARM寻址方式和指令系统 ARM寻址方式 ARM指令的寻址方式 寻址方式是根据指令中给出的地址码字段来实现寻找真实操作数地址的方式。ARM处理器指令系统具有9种基本寻址方式。 (1).寄存器寻址; (2).立即寻址; (3).寄存器偏移寻址; (4).寄存器间接寻址; (5).基址寻址; (6).多寄存器寻址; (7).堆栈寻址;
文档评论(0)