ARM指令汇编语言.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ARM指令汇编语言

ARM指令汇编语言 ARM指令集和汇编语言程序 姓名:何瑞平 学号:201120928 专业:电路与系统 本章主要介绍以下内容: 一、ARM寻址方式 包含9种: 立即数寻址 寄存器寻址 寄存器移位寻址 寄存器间接寻址 基址变址寻址 相对寻址 多寄存器寻址 块拷贝寻址 堆栈寻址 寻址空间 :51系列是16位地址总线,寻址空间为:215 。ARM系列为32位地址总线,寻址空间为:231 1.1立即数寻址 在立即数寻址中,操作数本身直接在指令中给出,取出指令也就获得了操作数,这个操作数也称为立即数。 例: ADD R0,R1,#5; R0=R1+5 MOV R0,#0x55; R0=0x55 其中:操作数5,0x55就是立即数,立即数在指令中要以“#”为前缀,后面跟实际数值。 十进制立即数表达举例:#0005、#01234; 十六进制立即数表达举例:#0x0005、#0x0FFFF; 1.2寄存器寻址 在寄存器寻址方式下,寄存器的值即为操作数,寄存器本身就是操作数地址。在51系列单片机中,可寻址的寄存器是当前工作寄存器R0~R7,A、B和DPTR。 在ARM系列的任一个模式,都有R0~R14、PC、CPSR。 例: ADD R0,R1,R2 ; R0=R1+R2 MOV R0,R1 ; R0=R1 1.3寄存器移位寻址 寄存器移位寻址是ARM特有的寻址方式,其操作数由寄存器的数值做相应移位而得到。 移位的方式在指令中以助记符的形式给出,而移位的位数可用立即数或寄存器寻址方式表示。 例: ADD R0,R1,R2,ROR #5 ;R0=R1+R2循环右移5位 MOV R0,R1,LSL R3 ;R0=R1逻辑左移R3位 移位操作在ARM指令集中不作为单独的指令使用,ARM指令集共有5种位移操作。 1.4 ARM指令集的5种位移操作 1.4.1 LSL(Logical Shift Lef)逻辑左移 : 向左移位,左侧移出的位丢失;右端空出位补0; 31 注:最后一个左移出的位存放于状态寄存器CPSR的C位中。移出n位相当于乘以2的n次幂。 指令格式:Rx,LSL lt;op1gt; 举例: R4,LSL#06 表明把R4的值逻辑左移6位,空位补0,把最后移出的位赋给程序状态寄存器CPSR的C位。 1.4.2 LSR(Logical Shift Right)逻辑右移 : 向右移位,右侧移出的位丢失;左端空出位补0; 310 注:最后一个右移出的位存放于状态寄存器CPSR的C位中。移出n位相当于除以2的n次幂。 指令格式:Rx,LSR lt;op1gt; 举例: R5,LSR#02 表明把R5中的数据右移2位,空位补0,把最后移出的位赋给程序状态寄存器的c位。 1.4.3 ASR(Arithmetic Shift Right)算术右移 : 向右移位,移出的位丢失,最左端保持不变。 310 注:最后一个右移出的位存放于状态寄存器CPSR的C位中。这种移位对有符号数据使用时可保持符号位不变。 指令格式:Rx,ASR lt;op1gt; 举例: R4,ASR#04 表明R4内数据向右移4位,符号位不变,最后移出的位也送入状态位C中。 1.4.4 ROR(Rotate Right)循环右移 : 向右移位,右端移出的位填充在左端空位处。 31 注:最后一个右移出的位同时存放于状态寄存器CPSR的C位中。 指令格式:Rx,ROR lt;op1gt; 举例: R4,ROR#03 表明把R4内的数据向右移3位,移出的位填充到左端空位处,把最后一个右移出的位同时存放于状态寄存器的C位中。 1.4.5 RRX(Rotate Right extended By 1 Place) 带扩展的循环右移: 向右只移一位,左侧空位由状态寄存器C位填充,右侧移出的位移进位状态位C中 这种移位多用于多位数计算中。 指令格式:Rx,RRX 举例: R2,RRX 表明R2内的数据向右移一位,把右侧移出的位送入

文档评论(0)

118zhuanqian + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档