数据传送指令之:单寄存器的Load/Store指令

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

5.3 单寄存器的Load/Store指令

Load/Store内存访问指令在ARM寄存器和存储器之间传送数据。ARM指令中有3种基本的数据传送指令。

① 单寄存器Load/Store指令(Single Register)

这些指令在ARM寄存器和存储器之间提供更灵活的单数据项传送方式。数据项可以是字节、16位半字或32位字。

② 多寄存器Load/Store内存访问指令

这些指令的灵活性比单寄存器传送指令差,但可以使大量的数据更有效地传送。它们用于进程的进入和退出、保存和恢复工作寄存器以及拷贝存储器中的一块数据。

③ 单寄存器交换指令(Single Register Swap)

这些指令允许寄存器和存储器中的数值进行交换,在一条指令中有效地完成Load/Store操作。它们在用户级编程中很少用到。它的主要用途是在多处理器系统中实现信号量(Semaphores)的操作,以保证不会同时访问公用的数据结构。

5.3.1 字数据传送指令

这种指令用于把单一的数据传入或者传出一个寄存器。支持的数据类型有字节(8位)、半字(16位)和字(32位)。

表5.1总结了所有单寄存器的Load/Store指令。

表5.1 单寄存器Load/Store指令

指 令

作 用

操 作

LDR

把一个字装入一个寄存器

Rd←mem32[address]

STR

将存储器中的字保存到寄存器

Rd→mem32[address]

LDRB

把一个字节装入一个寄存器

Rd←mem8[address]

STRB

将寄存器中的低8位字节保存到存储器

Rd→mem8[address]

LDRH

把一个半字装入一个寄存器

Rd←mem16[address]

STRH

将寄存器中的低16位半字保存到存储器

Rd→mem16[address]

LDRBT

用户模式下将一个字节装入寄存器

Rd←mem8[address] under user mode

STRBT

用户模式下将寄存器中的低8位字节保存到存储器

Rd→mem8[address] under user mode

LDRT

用户模式下把一个字装入一个寄存器

Rd←mem32[address]under user mode

STRT

用户模式下将存储器中的字保存到寄存器

Rd→mem32[address] ]under user mode

LDRSB

把一个有符号字节装入一个寄存器

Rd←sign{mem8[address]}

LDRSH

把一个有符号半字装入一个寄存器

Rd←sign{mem16[address]}

1.LDR指令

(1)指令编码格式

LDR指令用于从内存中将一个32位的字读取到目标寄存器。

指令的编码格式如图5.3所示。

图5.3 LDR指令编码格式

1 2 3 4 5 6 7 8

关键词: 数据传送指令 单寄存器 Load/Store指令 微处理器 ARM

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

或用微信扫描左侧二维码

相关文章

查看电脑版