14_ARM彙編自學筆記指令系統之數據交換指令

數據交換指令

ARM 微處理器所支持數據交換指令能在存儲器和寄存器之間交換數據。數據交換指令有如下兩條:

— SWP 字數據交換指令

— SWPB  字節數據交換指令

1、SWP指令

SWP指令的格式爲:SWP{條件} 目的寄存器,源寄存器 1,[ 源寄存器 2]

SWP指令用於將源寄存器 2所指向的存儲器中的字數據傳送到目的寄存器中,同時將源寄存器 1中的字數據傳送到源寄存器 2所指向的存儲器中。顯然,當源寄存器 1和目的寄存器爲同一個寄存器時,指令交換該寄存器和存儲器的內容。指令示例:

SWP R0,R1,[R2] ;將 R2 所指向的存儲器中的字數據傳送到 R0,同時將 R1 中的字數據傳送到 R2 所指向的存儲單元。

SWP R0,R0,[R1] ;該指令完成將 R1 所指向的存儲器中的字數據與 R0 中的字數據交換。

2、SWPB指令

SWPB指令的格式爲:SWP{條件}B 目的寄存器,源寄存器 1,[ 源寄存器 2]

SWPB指令用於將源寄存器 2 所指向的存儲器中的字節數據傳送到目的寄存器中,目的寄存器的高 24 清零,同時將源寄存器 1 中的字節數據傳送到源寄存器 2 所指向的存儲器中。顯然,當源寄存器 1和目的寄存器爲同一個寄存器時,指令交換該寄存器和存儲器的內容。指令示例:

SWPB R0,R1,[R2] ;將 R2 所指向的存儲器中的字節數據傳送到 R0,R0 的高 24 位清零,同時將 R1 中的低 8 位數據傳送到 R2 所指向的存儲單元。

SWPB R0,R0,[R1] ;該指令完成將 R1 所指向的存儲器中的字節數據與 R0 中的低 8 位數據交換。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章