ARM匯編指令集之七——數(shù)據(jù)交換指令
SWP指令的格式為:
本文引用地址:http://butianyuan.cn/article/201611/317604.htmSWP{條件}目的寄存器,源寄存器1,[源寄存器2]
SWP指令用于將源寄存器2所指向的存儲器中的字數(shù)據(jù)傳送到目的寄存器中,同時將源寄存器1中的字數(shù)據(jù)傳送到源寄存器2所指向的存儲器中。顯然,當源寄存器1和目的寄存器為同一個寄存器時,指令交換該寄存器和存儲器的內(nèi)容。
指令示例:
SWP R0,R1,[R2];將R2所指向的存儲器中的字數(shù)據(jù)傳送到R0,同時將R1中的字數(shù)據(jù)傳送到R2所指向的存儲單元。
SWP R0,R0,[R1];該指令完成將R1所指向的存儲器中的字數(shù)據(jù)與R0中的數(shù)據(jù)交換。
2、SWPB指令
SWPB指令的格式為:
SWP{條件}B目的寄存器,源寄存器1,[源寄存器2]
SWPB指令用于將源寄存器2所指向的存儲器中的字節(jié)數(shù)據(jù)傳送到目的寄存器中,目的寄存器的高24清零,同時將源寄存器1中的字節(jié)數(shù)據(jù)傳送到源寄存器2所指向的存儲器中。顯然,當源寄存器1和目的寄存器為同一個寄存器時,指令交換該寄存器和存儲器的內(nèi)容。
指令示例:
SWPB R0,R1,[R2];將R2所指向的存儲器中的字節(jié)數(shù)據(jù)傳送到R0,R0的高24位清零,同時將R1中的低8位數(shù)據(jù)傳送到R2所指向的存儲單元。
SWPB R0,R0,[R1];該指令完成將R1所指向的存儲器中的字節(jié)數(shù)據(jù)與R0中的低8位數(shù)據(jù)交換。
評論