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