當前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]交換指令是load/store指令的一種特例,它把一個寄存器單元的內(nèi)容與寄存器內(nèi)容交換。交換指令是一個原子操作(atomic operation),也就是說,在連續(xù)的總線操作中讀/寫一個存儲單元,在操作期間阻止其他任何指令對該存儲單元的讀/寫。

5.5 單數(shù)據(jù)交換指令

交換指令是load/store指令的一種特例,它把一個寄存器單元的內(nèi)容與寄存器內(nèi)容交換。交換指令是一個原子操作(atomic operation),也就是說,在連續(xù)的總線操作中讀/寫一個存儲單元,在操作期間阻止其他任何指令對該存儲單元的讀/寫。

交換指令如表5.4所示。

表5.4 交換指令SWP

指 令

作 用

操 作

SWP

字交換

Tmp=men32[Rn]

Mem32[Rn]=Rm

Rd=tmp

續(xù)表

指 令

作 用

操 作

SWPB

字節(jié)交換

Tmp=men8[Rn]

Mem8[Rn]=Rm

Rd=tmp

注意

交換指令在執(zhí)行期間不能被其他任何指令或其他任何總線訪問打斷,在此期間系統(tǒng)占用總線(holds the bus),直至交換完成。

5.5.1 字交換指令SWP

(1)指令編碼格式

SWP指令用于將內(nèi)存中的一個字單元和一個指定寄存器的值相交換。操作過程如下,假設(shè)內(nèi)存單元地址存放在寄存器<Rn>中,指令將<Rn>中的數(shù)據(jù)讀取到目的寄存器Rd中,同時將另一個寄存器<Rm>的內(nèi)容寫入到該內(nèi)存單元中。當<Rd>和<Rm>為同一個寄存器時,指令交換該寄存器和內(nèi)存單元的內(nèi)容。

指令的編碼格式如圖5.20所示。

圖5.20 SWP指令編碼格式

(2)指令的語法格式

SWP{<cond>} <Rd>,<Rm>,[<Rn>]

① <cond>

為指令編碼中的條件域。它指示SWP指令在什么條件下執(zhí)行。當<cond>忽略時,指令為無條件執(zhí)行(cond=AL(Alway))。

② <Rd>

目標寄存器。

③ <Rm>

寄存器包含將要存儲到內(nèi)存中的數(shù)據(jù)。

④ <Rn>

寄存器中包含將要訪問的內(nèi)存地址。

(3)指令操作的偽代碼

指令操作偽代碼如下面程序段所示。

If ConditionPassed{cond} then

If Rn[1:0]==0b00 then

Temp=memory[Rn,4]

Else if Rn[1:0]==0b01 then

Temp=memory[Rn,4] Rotate_right 8

Else if Rn[1:0]==0b10 then

Temp=memory[Rn,4] Rotate_right 16

Else /* Rn[1:0]==0b11 */

Temp=memory[Rn,4] Rotate_right 24

Memory[Rn,4]=Rm

Rd=temp

5.5.2 字節(jié)交換指令SWPB

(1)指令編碼格式

SWPB指令用于將內(nèi)存中的一個字節(jié)單元和一個指定寄存器的低8位值相交換,操作過程如下。假設(shè)內(nèi)存單元地址存放在寄存器<Rn>中,指令將<Rn>中的數(shù)據(jù)讀取到目的寄存器Rd中,寄存器Rd的高24位設(shè)為0,同時將另一個寄存器<Rm>的低8位內(nèi)容寫入到該內(nèi)存字節(jié)單元中。當<Rd>和<Rm>為同一個寄存器時,指令交換該寄存器低8位內(nèi)容和內(nèi)存字節(jié)單元的內(nèi)容。

指令的編碼格式如圖5.21所示。

圖5.21 SWPB指令編碼格式

(2)指令的語法格式

SWP{<cond>}B <Rd>,<Rm>,[<Rn>]

① <cond>

為指令編碼中的條件域。它指示SWPB指令在什么條件下執(zhí)行。當<cond>忽略時,指令為無條件執(zhí)行(cond=AL(Alway))。

② <Rd>

目標寄存器。

③ <Rm>

寄存器包含將要存儲到內(nèi)存中的數(shù)據(jù)。

④ <Rn>

寄存器中包含將要訪問的內(nèi)存地址。

(3)指令操作的偽代碼

指令操作偽代碼如下面程序段所示。

If ConditionPassed{cond} then

Temp=Memory[Rn,1]

Memory[Rn,1]=Rm[7:0]

Rd=temp

5.5.3 交換指令SWP應(yīng)用

寄存器和存儲器交換指令SWP指令用于將一個內(nèi)存單元(該單元地址放在寄存器Rn中)的內(nèi)容讀取到一個寄存器Rd中,同時將另一個寄存器Rm的內(nèi)容寫到該內(nèi)存單元中,使用SWP可實現(xiàn)信號量操作。

格式如下。

SWP{cond}B Rd,Rm,[Rn]

其中,B為可選后綴,若有B,則交換字節(jié),否則交換32位字。Rd為目的寄存器,存儲從存儲器中加載的數(shù)據(jù),同時,Rm中的數(shù)據(jù)將會被存儲到存儲器中。若Rm與Rn相同,則為寄存器與存儲器內(nèi)容進行交換。Rn為要進行數(shù)據(jù)交換的存儲器地址,Rn不能與Rd和Rm相同。

【例5.6】SWP指令舉例。

SWP r1,r1,[r0] ;將r1的內(nèi)容與r0指向的存儲單元內(nèi)容進行交換

SWPB r1,r2,[r0] ;將r0指向的存儲單元內(nèi)容讀取一字節(jié)數(shù)據(jù)到r1中(高24位清零),

并將r2的內(nèi)容寫入到該內(nèi)存單元中(最低字節(jié)有效)

使用SWP指令可以方便地進行信號量操作。

12C_SEM EQU 0x40003000

……

12C_SEM_WAIT

MOV r0,#0

LDR r0,=12C_SEM

SWP r1,r1,[r0] ;取出信號量,并將其設(shè)為0

CMP r1,#0 ;判斷是否有信號

BEQ 12C_SEM_WAIT ;若沒有信號則等待

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉