×

寻址方式的定义与ARM处理器9种基本寻址方式的介绍

消耗积分:0 | 格式:rar | 大小:0.1 MB | 2017-10-01

分享资料个

  寻址方式是根据指令中给出的地址码字段来实现寻找真实操作数地址的方式,ARM处理器有9 种基本寻址方式。

  1.寄存器寻址

  操作数的值在寄存器中,指令中的地址码字段给出的是寄存器编号,寄存器的内容是操作数,指令执行时直接取出寄存器值操作。

  例如指令:

  MOV R1,R2 ;R1←R2

  SUB R0,R1,R2 ;R0←R1- R2

  2.立即寻址

  在立即寻址指令中数据就包含在指令当中,立即寻址指令的操作码字段后面的地址码部分就是操作数本身,取出指令也就取出了可以立即使用的操作数(也称为立即数)。立即数要以“#”为前缀,表示16进制数值时以“0x”表示。

  例如指令:

  ADD R0,R0,#1 ;R0←R0 + 1

  MOV R0,#0xff00 ;R0←0xff00

  3.寄存器移位寻址

  寄存器移位寻址是ARM指令集特有的寻址方式。第2个寄存器操作数在与第1个操作数结合之前,先进行移位操作。

  例如指令:

  MOV R0,R2,LSL #3 ;R2的值左移3位,结果放入R0,即R0=R2 * 8

  ANDS R1,R1,R2,LSL R3 ;R2的值左移R3位,然后和R1相与操作,结果放入R1

  可采用的移位操作如下:

  LSL:逻辑左移(Logical Shift Left),寄存器中字的低端空出的位补0。

  LSR:逻辑右移(Logical Shift Right),寄存器中字的高端空出的位补0。

  ASR:算术右移(Arithmetic Shift Right),移位过程中保持符号位不变,即如果源操作数为正数,则字的高端空出的位补0,否则补1

  ROR:循环右移(Rotate Right),由字的低端移出的位填入字的高端空出的位

  RRX:带扩展的循环右移(Rotate Right extended by 1 place),操作数右移一位,高端空出的位用原C 标志值填充。

  各移位操作过程如图所示。
寻址方式的定义与ARM处理器9种基本寻址方式的介绍

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !