嵌入式系统第3章1摘要.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ARM指令集总体可分为以下几类 3.1 ARM指令集 3.1.1 ARM指令分类及格式 3.1.2 ARM指令寻址方式 ARM指令的寻址方式 寄存器移位寻址 ARM集特有。第二个操作数先进行移位操作。 ADD R3,R2,R1,LSL #3 ;R3←R2+8*R1 LSL:逻辑左移(Logical Shift Left) LSR:逻辑右移(Logical Shift Right) ASR:算术右移(Arithmetic Shift Right) ROR:循环右移(Rotate Right) RRX:扩展为1的循环右移(Rotate Right eXtended by 1 place ) 4.寄存器间接寻址 寄存器间接寻址是指指令中的地址码给出的是某一通用寄存器的编号,在被指定的寄存器中存放操作数的有效地址,而操作数则存放在该地址对应的存储单元中,即寄存器为地址指针。 例: LDR R0, [R1] ;R0←[R1] STR R0,[R1] ;[R1]←R0 5.变址寻址 变址寻址(或基址变址寻址)就是将基址寄存器的内容与指令中给出的偏移量相加,形成操作数有效地址。变址寻址用于访问基址附近的单元,包括基址加偏移和基址加索引寻址。寄存器间接寻址是偏移量为0的基址加偏移寻址。 基址加偏移寻址中的基址寄存器包含的不是确切的地址。基址需加(或减)最大4KB的偏移来计算访问的地址。 例: LDR R0, [R1, #4] ; R0←[R1+4] 数据传送指令:MOV 、MVN MOV指令的功能 寄存器之间传送。 立即数传送到寄存器中(8位立即数位图)。 实现单纯的移位操作。MOV Rd, Rd, LSL, #3 实现子程序调用、从子程序中返回。当PC寄存器作为目标寄存器时可以实现程序跳转。 实现把当前处理器模式的SPSR寄存器内容复制到CPSR中。 方法:当PC寄存器作为目标寄存器且指令中S位被设置时,指令在执行跳转操作的同时,将当前处理器模式的SPSR寄存器内容复制到CPSR中。这样可以实现从某些异常中断中返回。 例子:MOVS PC,LR 说明: ADD,SUB,RSB不带进位或借位 ADC,SBC ,RSC带进位或借位。 其句法是: op {cond} {S} Rd,Rn,Operand2 ADD指令用于将Rn和Operand2的值相加; SUB指令用于从Rn的值中减去Operand2的值; RSB指令用于从Operand2的值中减去Rn的值; ADC指令用于将Rn和Operand2的值相加,再加上进位标志C的值; SBC指令用于从Rn的值中减去Operand2的值,若进位标志C为0,结果再减1; RSC指令用于从Operand2的值中减去Rn的值,若进位标志C为0,结果再减1。 以上指令执行的结果均存于Rd中。 S为可选的后缀。若指定S,则根据操作结果更新条件码标志 注意: 若在这些指令后面加上后缀S,那么这些指令将根据其运算结果更新标志N,Z,C和V。 若R15作为Rd使用,则执行完指令后,程序将转移到结果对应的地址处。若此时指令还加有后缀S,则还会将当前模式的SPSR拷贝到CPSR。可以使用这一点从异常返回。 在有寄存器控制移位的任何数据处理指令中,不能将R15作为Rd或任何操作数来使用。 例: ADD R3,R7,#1020 ;immed_8r为1020(0x3FC),是0xFF循环右移30位 SUBS R8,R6,#240 ;R8←R6-240,运算完成后将根据结果更新标志 RSB R4,R4,#1280 ;R4←1280-R4 RSCLES R0,R5,R0,LSL R4 ;(有符号小于)有条件执行,执行完后更新标志 逻辑指令 AND,ORR,EOR和BIC指令 逻辑与、或、异或等指令。其句法是: op {cond} {S} Rd,Rn,Operand2 其中所用到的符号意义与前述的相同。 AND,ORR和EOR指令分别完成按位将Rn和Operand2的值进行“与”、“或”和“异或”操作,结果存于Rd中。BIC指令用于将Rn中的各位与Operand2的相应位的反码进行“与”操作,结果存于Rd中。 使用这些指令时应注意:若加有后缀S,这些指令执行完后将根据结果更新标志N和Z,在计算Operand2时更新标志C,不影响标志V。 如: EORS R0, R0, R3, ROR R6 BIC R2, R2, #0XFF; 将R2的低8位清 零其余位不变。 逻辑运算指令举例: ANDS R0,

文档评论(0)

boss + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档