Thumb指令集之:Thumb数据处理指令

时间:2013-09-30来源:网络

11.4.22移位指令MOV(1)

(1)编码格式

数据传送指令MOV(1)的编码格式如图11.28所示。

图11.28MOV(1)指令的编码格式

(2)指令的语法格式

MOVRd>,#immed_8>

①Rd>

目的寄存器。存放指令的执行结果。

②immed_8>

8位立即数。指示要移入寄存器的数据。

(3)指令操作的伪代码

Rd=immed_8

NFlag=Rd[31]

ZFlag=ifRd==0then1else0

CFlag=unaffected

VFlag=unaffected

(4)对应的ARM指令

MOVSRd>,#immed_8>

11.4.23移位指令MOV(2)

(1)编码格式

数据传送指令MOV(2)的编码格式如图11.29所示。

图11.29MOV(2)指令的编码格式

此种形式的MOV指令用于数据在r0~r7低寄存器间传送,并根据的指令的执行结果更新程序状态寄存器的标志位。

注意

从指令的编码形式可以看出,MOV(2)指令被作为ADDRd,Rn,#0指令来编译。

(2)指令的语法格式

MOVRd>,Rn>

①Rd>

目的寄存器。存放指令的执行结果。

②Rn>

源寄存器。用于存放被传送的数据。

(3)指令操作的伪代码

Rd=Rn

NFlag=Rd[31]

ZFlag=ifRd==0then1else0

CFlag=0

VFlag=0

(4)对应的ARM指令

ADDRd>,Rn>,#0

11.4.24移位指令MOV(3)

(1)编码格式

数据传送指令MOV(3)的编码格式如图11.30所示。

图11.30MOV(3)指令的编码格式

此种形式的MOV指令用于在r8~r14和PC寄存器的高16位内传送数据。与MOV(2)指令不同,该指令不影响程序状态寄存器。

(2)指令的语法格式

MOVRd>,Rm>

①Rd>

目的寄存器。可以是r0~r15中的任意寄存器,用于存放指令的执行结果。

②Rm>

源寄存器。可以是r0~r15中的任意寄存器,用于存放被传输的数据。

(3)指令操作的伪代码

Rd=Rm

(4)指令的使用

可以使用此种形式的MOV指令MOVPC,r14用于子程序的返回(返回的程序是Thumb子程序)。它和BX指令的区别在于BX指令可以用于ARM和Thumb程序间的相互调用。

注意

如果目的寄存器Rd>和源寄存器Rm>同时为r0~r7低寄存器,则指令的执行结果不可预知。

(5)对应的ARM指令

MOVRd>,Rm>

1 2 3 4 5 6 7 8 9 10 11 12 13

关键词: Thumb指令集 数据处理指令 ARM MOV指令 移位指令

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版