抵岸:2.4.7 数据交换指令

来源:百度文库 编辑:中财网 时间:2024/04/28 01:02:38

2.4.7  数据交换指令

ARM微处理器所支持数据交换指令能在存储器和寄存器之间交换数据。数据交换指令有如下两条。

SWP:字数据交换指令。

SWPB:字节数据交换指令。

1. SWP指令

SWP指令的格式为:

  1. SWP{条件} 目的寄存器, 源寄存器1, [源寄存器2] 

SWP指令用于将源寄存器2所指向的存储器中的字数据传送到目的寄存器中,同时将源寄存器1中的字数据传送到源寄存器2所指向的存储器中。显然,当源寄存器1和目的寄存器为同一个寄存器时,指令交换该寄存器和存储器的内容。

指令示例:

  1. SWP R0, R1, [R2]   
  2. ; 将R2所指向的存储器中的字数据传送到R0, 同时
    将R1中的字数据传送到R2 所指向的存储单元  
  3. SWP R0, R0, [R1]    ;该指令完成将R1所指向
    的存储器中的字数据与R0中的字数据交换  

2. SWPB指令

SWPB指令的格式为:

  1. SWPB 目的寄存器, 源寄存器1, [源寄存器2] 

SWPB指令用于将源寄存器2所指向的存储器中的字节数据传送到目的寄存器中,目的寄存器的高24位清零,同时将源寄存器1中的字节数据传送到源寄存器2所指向的存储器中。显然,当源寄存器1和目的寄存器为同一个寄存器时,指令交换该寄存器和存储器的内容。

指令示例:

  1. SWPB R0, R1, [R2]   
  2. ; 将R2 所指向的存储器中的字节数据传送到R0, R0的高24位清零,   
  3. ; 同时将R1中的低8位数据传送到R2所指向的存储单元。  
  4. SWPB R0, R0, [R1]   
  5. ; 该指令完成将R1 所指向的存储器中的字节数据与R0中的低8位数据交换