找回密码
 注册
关于网站域名变更的通知
查看: 412|回复: 2
打印 上一主题 下一主题

ARM寻址方式——寄存器寻址

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2016-10-22 15:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
寄存器寻址利用寄存器中的数值作为操作数,指令中地址码给出的是寄存器编号。例如:
4 c" s' s+ D3 ^7 IADD              R0,R1,R2                       ;R0<-R1+R2# B! b) R. C4 D* R
本指令将2个寄存器的内容相加,结果放入第3个寄存器R0中。必须注意写操作数的顺序:第1个事结果寄存器,然后是第1操作数寄存器,最后是第2操作数寄存器。* ?1 G; K% t) \' \
1.
( [" q1 Y0 w/ ?. e第2操作数为寄存器型的移位操作" ^  q+ f$ J% R% c% s
ARM指令的数据处理指令中参与操作的第2操作数为寄存器型时,若在执行寄存器寻址操作,则可选择是否对第2操作数进行移位,即“Rm,{<shift>}”,其中Rm称为第2操作数寄存器,<shift>用来指定移位类型和移位位数。移位位数可以是5位立即数或寄存器。在指令执行时,将移位后的内容作为第2操作数参与运算。需要注意的是,第2操作数必须是寄存器,而且指令执行完毕后第2操作数寄存器的内容不变;对于第2操作数不是寄存器的情况,则不允许有移位操作。例如:+ j5 _/ }7 y) C; b: a
ADD              R3,R2,R1,LSR      #2    ;R3<-R2+R1÷4
- D) g( u$ d6 s寄存器R1的内容逻辑右移2位,再与寄存器R2的内容相加,结果放在R3中。指令执行结束后,第2操作数寄存器R1的内容不变,参与操作的第二操作数为R1左移2位的结果。
5 f! g5 h. v$ D3 U2.
. U% R! t# _9 e! t/ G2 H+ N第2操作数移位方式/ t4 {4 z+ J$ |: U5 Q) J
ARM可采用的移位操作有:
8 ?( p1 L+ H) wLSL        逻辑左移。空出的最低有效位用0填充。! t4 M5 l1 C9 W. t
LSR        逻辑右移。空出的最高有效位用0填充。$ R' s9 A& W# [
ASL        算数左移。由于左移空出的有效位用0填充,因此它与LSL同义
8 D9 m6 P+ S2 ?7 FASR              算数右移。算数移位的对象是有符号数,移位过程中必须保持操作数的符号不变。如果源操作数是正数,则空出的最高有效位用0填充;如果是负数,则用1填充。
9 m, z5 L. v; ?/ wROR       循环右移。移出的字的最低有效位依次填入空出的 最高有效位。
8 m/ s; b( P# u& q3 Y+ @" E: N  U- wRRX       带扩展的循环右移。将寄存器的内容循环右移1位,空位用原来的C标志位填充。只有当移位的类型为RRX时,才无须指定移位位数。' w! I4 F# _, Q* q; t
这些移位操作如图所示。) ?) G4 s3 j7 |+ c  E9 N
3.
' j* e4 C( x- f: p" z; g第2操作数的移位位数
: u2 @% U2 m; h2 {* x1 N4 S移位位数可用立即数方式或寄存器方式给出。例如,下面2条指令分别是以立即数和寄存器方式给出了移位位数:
- X8 o: e% l. `& JADD       R3,R2,R1,LSR      #2           ;R3<-R2+R1÷45 ]  E, j2 w' P: u( V
ADD       R3,R2,R1,LSR      R4          ;R3<-R2+R1÷
6 U$ S0 [- l9 n% T1 u寄存器R1的内容分别是逻辑右移2位、R4位,再与寄存器R2的内容相加,结果放入R3中。

该用户从未签到

2#
发表于 2016-10-24 13:39 | 只看该作者
谢谢O(∩_∩)O哈哈~谢谢O(∩_∩)O哈哈
: ~8 w0 z2 v2 s, H

该用户从未签到

3#
发表于 2016-10-25 14:36 | 只看该作者
学习中,谢谢分享
5 H- \# H3 x  O! p$ H2 M
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-13 00:06 , Processed in 0.140625 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表