ARM指令集可以分為數(shù)據(jù)處理指令、跳轉(zhuǎn)指令、Load/Store指令、程序狀態(tài)寄存器傳輸指令、協(xié)處理器指令和異常中斷產(chǎn)生指令。根據(jù)使用的指令類型不同,指令的尋址方式分為數(shù)據(jù)處理指令尋址方式和內(nèi)存訪問指令尋址方式。
數(shù)據(jù)處理指令尋址方式
概述:數(shù)據(jù)操作指令是指對存放在寄存器中的數(shù)據(jù)進行操作的指令。主要包括數(shù)據(jù)傳送指令、算術(shù)指令、邏輯指令、比較與測試指令及乘法指令。如果在數(shù)據(jù)處理指令后使用“S”后綴,指令的執(zhí)行結(jié)果將會影響CPSR中的標志位。數(shù)據(jù)處理指令的基本語法格式如下:
1.MOV指令
MOV是最簡單的ARM指令,MOV指令是將《shifter_operand》表示的數(shù)據(jù)傳送到目標寄存器《Rd》中,其中《shifter_operand》可以是寄存器,也可以使立即數(shù),并根據(jù)操作的結(jié)果更新CPSR中相應(yīng)的條件標志位。
語法格式:
MOV { 指令舉例: MOV R0,#0xFF ; //R0=0xFF MOV R0,RO ; //R0=R0.....NOP指令 MOV RO,RO,LSL#3; //RO=RO<<3 當R15作為目標寄存器Rd出現(xiàn)時常用于子函數(shù)的返回,方法是將連接寄存器LR中保存的返回地址通過該指令傳送給PC。 MOV PC,R14; //退出到調(diào)用者,用于普通函數(shù)返回,PC即R15 MOVS PC,R14; //退出到調(diào)用者并恢復(fù)標志位,用于異常函數(shù)返回 指令功能: 將數(shù)據(jù)從一個寄存器傳送到另一個寄存器。 將一個常數(shù)值傳送到另一個寄存器。 實現(xiàn)單純的移位操作,比如操作數(shù)除以2^n可以用右移n位來實現(xiàn)。 當PC(R15)用作目標寄存器Rd時,可以實現(xiàn)程序跳轉(zhuǎn),如“MOV PC,LR”。這種跳轉(zhuǎn)可以實現(xiàn)子程序條用及從子程序返回。 當PC作為目標寄存器Rd且指令中有后綴“S”時,則指令在執(zhí)行跳轉(zhuǎn)操作的同時,將當前處理器模式的SPSR寄存器的內(nèi)容復(fù)制到CPSR中。這種指令“MOVS PC,LR”,可以實現(xiàn)從某些異常中斷中返回。 2.MVN指令 MVN是數(shù)據(jù)取反傳送指令,指令將《shifter_operand》表示的數(shù)據(jù)的反碼傳送到目標寄存器《Rd》,并根據(jù)操作的結(jié)果更新CPSR中相應(yīng)的條件標志位。 語法格式: MVN { 指令舉例: MVN指令和MOV指令相同,《shifter_operand》可以是立即數(shù),也可以是寄存器。 MVN R0,#4; //R0=~(4) MVN R0,#0; //RO=~(1) 指令功能: 想寄存器中傳送一個負數(shù)。 生成位掩碼。 求一個數(shù)的反碼。 3.ADD指令 ADD指令將《shifter_operand》表示的數(shù)據(jù)加上寄存器《Rn》的值,將結(jié)果保存到目標寄存器《Rd》中,并根據(jù)指令的執(zhí)行結(jié)果更新CPSR中相應(yīng)的條件標志位。 語法格式: ADD { 指令舉例: ADD R0,R1,R2; //R0=R1+R2 ADD R0,R1,#0xFF; //R0=R1+0xFF ADD R0,R2,R3,LSL#1; //R0=R2+(R3<<1) 指令功能: 主要完成兩個數(shù)的相加。 4.ADC指令 ADC指令將《shifter_operand》表示的值加上寄存器《Rn》的值,再加上CPSR中的C條件標志位的值,將結(jié)果保存到目標寄存器《Rd》中,并根據(jù)指令的執(zhí)行結(jié)果更新CPSR中相應(yīng)的條件標志位。 語法格式: ADC { 指令舉例: ADC指令把兩個操作數(shù)加起來,并把結(jié)果放置到目標寄存器《Rd》中。它使用CPSR中的進位標志位,這樣就可以做比32位大的加法。 下面的例子將兩個128位的數(shù)相加。 128位結(jié)果:寄存器R0、R1、R2和R3. 第1個128位數(shù):寄存器R4、R5、R6和R7 第2個128位數(shù):寄存器R8、R9、R10和R11 ADDS R0,R4,R8; //加低端的字 ADCS R1,R5,R9; //加下一個字,帶進位 ADCS R2,R6,R10; //加第3個字,帶進位 ADCS R3,R7,R11; //加高端的字,帶進位 指令功能: ADC指令常與ADD指令聯(lián)合使用,可以實現(xiàn)兩個64位數(shù)的相加。 5.SUB 指令 SUB指令的作用是將寄存器《Rn》中的數(shù)值減去《shifter_operand》所表示的數(shù)值,將運算結(jié)果保存到目標寄存器《Rd》中,并根據(jù)指令的執(zhí)行結(jié)果更新CPSR中的條件標志位。 語法格式: SUB { 指令舉例: SUB R0,R1,R2; //R0=R1-R2 SUB R0,R1,#0xff; //R=R1-0xff SUB R0,R2,R3,LSL#1; //R0=R2-(R3<<1) 指令功能: SUB指令常用于實現(xiàn)兩個數(shù)的減法。 6.AND指令 AND指令將《shifter_operand》表示的數(shù)值與寄存器《Rn》的值按位做“與”操作,并將結(jié)果保存到目標寄存器《Rd》中,同時根據(jù)操作的結(jié)果更新CPSR寄存器中的條件標志位。 語法格式: ADD { 指令舉例 AND R0,R0,#0x03; //r0寄存器的0、1位不變,其他位清零 AND R2,R1,R3; //R2=R1 & R3 AND R0,R0,#0x01; //R0=R0 & 0X01 7.EOR指令 EOR指令將寄存器《Rn》中的值和《shifter_operand》表示的值進行按位“異或”操作,并將執(zhí)行結(jié)果存儲到目標寄存器《Rd》中,同時根據(jù)指令的執(zhí)行結(jié)果更新CPSR中相應(yīng)的條件標志位。 語法格式: EOR { 指令舉例: EOR R0,R0,#3; //反轉(zhuǎn)R0中的第0和1位 EOR R1,R1R,#0x0F; //將R1的低4位取反 EOR R2,R1,R0; //R2=R1^R0 EORS R0,R5,#0X01; //將R5和0x01進行邏輯異或,結(jié)果保存到R0,并根據(jù)執(zhí)行結(jié)果更新標志位。 8.BIC指令 BIC位清零指令,將寄存器《Rn》的值與第2個源操作數(shù)《shifter_operand》的值的反碼按位做“邏輯與”操作,結(jié)果保存到寄存器《Rd》中。 語法格式: BIC { 指令舉例: BIC R0,R0,#0X1011; //清除R0中的位0、1和3,保持其余不變 BIC R1,R2,R3; //將R3的反碼和R2邏輯與,結(jié)果保存到R1中 9.CMP指令 CMP指令的實質(zhì)是使用寄存器《Rn》的值減去《shifter_operand》表示的值,根據(jù)操作的結(jié)果更新 CPSR 中相應(yīng)的條件標志位,以便后面的指令根據(jù)相應(yīng)的條件標志來判斷是否執(zhí)行。 語法格式: CMP { 指令舉例: CMP指令允許把一個寄存器的內(nèi)容與另一個寄存器的內(nèi)容或立即數(shù)進行比較,比較結(jié)果將更改狀態(tài)寄存器中對應(yīng)的標志從而之后的指令可以進行條件執(zhí)行。它的實質(zhì)是進行了一次減法,但不存儲結(jié)果,而是更改條件標志位。標志位表示的是操作數(shù)1與操作數(shù)2比較的結(jié)果(其值可能為大、小、相等)。比如操作數(shù)1大于操作數(shù)2,則此后的有GT后綴的指令將可以執(zhí)行。 顯然,CMP不需要顯式地指定S后綴來更改狀態(tài)標志。 CMP R1.#10 ; //比較R1和立即數(shù)10并更新相關(guān)的標志位 CMP R1.R2 ; //比較寄存器R1和R2中的值并設(shè)置相關(guān)的標志位 通過上面的例子可以看出,CMP 指令與SUBS 指令的區(qū)別在于 CMP指令不保存運算結(jié)果,在進行兩個數(shù)據(jù)大小判斷時,常用CMP指令及相應(yīng)的條件碼來進行操作.
上一篇:ARM異常及中斷處理介紹(中斷是異常的一種)
下一篇:ARM之GPIO介紹(Exynos4412平臺)
推薦閱讀
史海拾趣
對于5G169節(jié)日彩燈集成電路,網(wǎng)友可能提出多種問題,以下是一些常見問題及其詳細回答:
1. 5G169節(jié)日彩燈集成電路的基本工作原理是什么?
回答:
5G169節(jié)日彩燈集成電路通過交流電輸入,經(jīng)過VDI~VD4橋式整流輸出全波脈動直流電,供四路彩燈用電。該電路還包含簡單的穩(wěn)壓電路(由Rl、R2、VD5和VD6組成),經(jīng)過Cl濾波后輸出約6V直流電供集成塊用電。VD6在這里起隔離作用,使得R2兩端能獲得6V全波脈動直流電壓,其脈動頻率為交流電的2倍(即100Hz)。此100Hz信號經(jīng)R4注入集成塊的8腳作為同步信號。電路中還包含正、反向控制開關(guān)SB,用于控制彩燈的正向或反向循環(huán)。
2. 如何調(diào)節(jié)5G169節(jié)日彩燈的亮燈周期?
回答:
5G169節(jié)日彩燈的亮燈周期是可調(diào)的,但具體調(diào)節(jié)方式可能因不同型號的集成電路或電路設(shè)計而異。通常,亮燈周期的調(diào)節(jié)可能涉及改變與集成電路相關(guān)的電阻、電容或其他元件的值。然而,對于5G169這樣的具體型號,如果沒有詳細的電路設(shè)計圖或說明書,很難給出確切的調(diào)節(jié)步驟。一般情況下,可以通過查閱產(chǎn)品手冊或聯(lián)系制造商獲取具體的調(diào)節(jié)方法。
3. 5G169節(jié)日彩燈集成電路是否需要外接電源?
回答:
是的,5G169節(jié)日彩燈集成電路需要外接電源來提供工作所需的電能。通常,這種集成電路會設(shè)計為能夠接受家庭常用的交流電源(如220V或110V,具體取決于所在地區(qū)的電壓標準),并通過內(nèi)部的整流和穩(wěn)壓電路轉(zhuǎn)換為集成電路和彩燈所需的直流電壓。
4. 5G169節(jié)日彩燈集成電路在使用過程中需要注意哪些事項?
回答:
在使用5G169節(jié)日彩燈集成電路時,需要注意以下事項:
- 確保電源電壓與集成電路的額定電壓相匹配,避免過電壓或過電流導(dǎo)致的損壞。
- 遵循產(chǎn)品手冊中的安裝和接線指導(dǎo),確保電路連接正確無誤。
- 注意電路的散熱問題,避免長時間在高溫環(huán)境下使用導(dǎo)致集成電路過熱。
- 定期檢查電路連接和元件狀態(tài),及時發(fā)現(xiàn)并處理可能的問題。
- 避免在潮濕或腐蝕性環(huán)境中使用,以防電路受潮或腐蝕。
5. 5G169節(jié)日彩燈集成電路有哪些常見故障及解決方法?
回答:
5G169節(jié)日彩燈集成電路的常見故障可能包括燈不亮、亮度不均、閃爍異常等。針對這些故障,可以嘗試以下解決方法:
- 檢查電源電壓是否正常,確保電路得到足夠的電能供應(yīng)。
- 檢查電路連接是否牢固可靠,無短路或斷路現(xiàn)象。
- 檢查集成電路的引腳是否接觸良好,無虛焊或斷裂現(xiàn)象。
- 如果集成電路損壞,需要更換新的集成電路。
- 對于亮度不均或閃爍異常的問題,可以嘗試調(diào)整與集成電路相關(guān)的電阻、電容等元件的值,或者檢查彩燈本身是否存在問題。
請注意,以上回答基于一般性的集成電路知識和經(jīng)驗,具體情況可能因不同型號的集成電路或電路設(shè)計而異。在實際操作中,建議根據(jù)具體的產(chǎn)品手冊或咨詢專業(yè)人士進行故障排查和解決。
隨著技術(shù)的不斷進步,ABCO公司意識到只有不斷創(chuàng)新才能在競爭中保持領(lǐng)先地位。因此,公司加大了對研發(fā)的投入,建立了一支高效的技術(shù)團隊。這支團隊不僅成功研發(fā)出了多款具有自主知識產(chǎn)權(quán)的新型傳感器,還積極探索傳感器與其他電子設(shè)備的融合應(yīng)用,為公司開辟了新的增長點。
面對電子行業(yè)技術(shù)的快速迭代和市場競爭的加劇,Esc始終保持創(chuàng)新驅(qū)動的發(fā)展策略。公司不斷加大對研發(fā)創(chuàng)新的投入力度,推動產(chǎn)品升級和產(chǎn)業(yè)升級。通過引入新技術(shù)、新工藝和新材料,Esc成功開發(fā)出一系列具有競爭力的新產(chǎn)品,并在市場上取得了顯著的成績。同時,公司還積極參與行業(yè)標準的制定和推廣工作,推動整個電子行業(yè)的進步和發(fā)展。
隨著公司業(yè)務(wù)的不斷發(fā)展,Component Research Co意識到單一市場無法滿足其長期發(fā)展的需要。于是,公司開始尋求國際合作,與多家國際知名企業(yè)建立戰(zhàn)略合作關(guān)系。這些合作不僅為公司帶來了先進的技術(shù)和資金支持,還幫助公司打開了新的市場。通過國際合作,Component Research Co的業(yè)務(wù)范圍逐漸擴展到全球各地。
隨著公司業(yè)務(wù)的不斷發(fā)展,Component Research Co意識到單一市場無法滿足其長期發(fā)展的需要。于是,公司開始尋求國際合作,與多家國際知名企業(yè)建立戰(zhàn)略合作關(guān)系。這些合作不僅為公司帶來了先進的技術(shù)和資金支持,還幫助公司打開了新的市場。通過國際合作,Component Research Co的業(yè)務(wù)范圍逐漸擴展到全球各地。
作為一家有社會責任感的企業(yè),F(xiàn)DI公司始終關(guān)注社會公益事業(yè)。公司積極參與扶貧、教育、環(huán)保等領(lǐng)域的公益活動,為社會做出了積極貢獻。同時,F(xiàn)DI還設(shè)立了獎學(xué)金和助學(xué)金,鼓勵和支持年輕人投身電子科技事業(yè)。這些舉措不僅提升了公司的社會形象,也為其贏得了廣泛的贊譽。
招聘WAP聯(lián)盟運營總監(jiān)和市場總監(jiān) 招聘WAP聯(lián)盟運營總監(jiān)和市場總監(jiān) WAP聯(lián)盟運營總監(jiān)和市場總監(jiān)(2名) 最低學(xué)歷:大專以上學(xué)歷工作經(jīng)驗:3年以上薪水范圍:月薪1萬到1萬5千(底薪 + 業(yè)績獎金)簡歷請發(fā):mw2009@fly4our.com 聯(lián)系電話:13381487182 聯(lián)系人:秦小姐 崗位職責: 1. ...… 查看全部問答∨ |
|
求用VS2005或者2008,用SerialPort類寫的 串口通信程序,及相關(guān)的說明 如題,本人急需學(xué)會這個東西,麻煩各位高手幫忙,不要轉(zhuǎn)載其它不是用這個類寫的東西進行回答,特別是接收這塊的代碼,請給個詳細點的流程介紹,比如 在這個里面寫的托管能起到什么左右,它和DataReceived這個事件之間的關(guān)系是個怎么樣的。謝謝~~不 ...… 查看全部問答∨ |
|
ARM上電時把FLASH中的數(shù)據(jù)LOAD到SDRAM中。 然后程序在SDRAM中運行。 那請問,ARM本身就帶有FLASH的驅(qū)動嗎? 要不然怎么能上電就能讀取FLASH呢?… 查看全部問答∨ |
UART的輸入引腳必須設(shè)置成GPIO_Mode_IN_FLOATING模式么? 如果設(shè)置成該模式的話,接收引腳必須外接上拉才能正確接收到數(shù)據(jù),否則外部輸入的數(shù)據(jù)將會被此引腳“吃掉”從而看 ...… 查看全部問答∨ |
如上圖說示,用51單片機做的電子萬年歷,顯示子程序顯示的結(jié)果,光標應(yīng)該總是在末尾,就如第一幅圖那樣,但是實際結(jié)果,每隔一定時間,光標總是會出現(xiàn)在第三幅圖所示的位置,然后又迅速跳動到末尾,我個人感覺好像是忙檢測的時間過長,導(dǎo)師顯示 ...… 查看全部問答∨ |
以前做的ADuCM360的ADC,發(fā)現(xiàn)除了ADC的處理時間外,如果進行下一次ADC,還要對某些寄存器進行設(shè)置。這樣連續(xù)轉(zhuǎn)換時的處理速度就比較慢。 再者,ADI的例程為了提高可讀性,就象C++中的“封裝”概念一樣,將函數(shù)做得有些煩瑣,并存在些判斷( ...… 查看全部問答∨ |
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- 人形機器人馬拉松背后的思考,兆易創(chuàng)新如何賦能機器人產(chǎn)業(yè)
- 一種基于STM32的智能柜控制器設(shè)計
- 小型傾轉(zhuǎn)旋翼機的無刷直流電機驅(qū)動器設(shè)計
- 超高速攝影機電控系統(tǒng)設(shè)計
- 基于GPS自動授時的無線智能控制器的設(shè)計
- 基于PTR2000的無線氣象信息采集系統(tǒng)設(shè)計
- Microchip推出MEC175xB系列器件,為嵌入式控制器引入硬件 抗量子攻擊能力
- 無人飛行器機載穩(wěn)定云臺控制系統(tǒng)的設(shè)計
- 匠芯創(chuàng)推出面向具身智能高性能實時處理器M7000
- 通用汽車轉(zhuǎn)向LFP電池,LG新能源和三星SDI擬在美建廠
- 蓋世汽車研究院:政策助推疊加技術(shù)迭代 全固態(tài)電池蓄勢待發(fā)
- 小鵬汽車董事長預(yù)測:2027年激光雷達非智能駕駛必備
- 解碼大眾汽車中國戰(zhàn)略 - 決戰(zhàn)智能化電氣化的三板斧
- 2025從具身智能大腦展望人形機器人發(fā)展
- “荊楚”人形機器人即將量產(chǎn),智能時代的新篇章!
- 小鵬純視覺方案:技術(shù)突圍與市場下沉的雙重博弈
- 為什么無人出租車能“零”事故,而智能駕駛輔助卻事故頻發(fā)?
- 重磅!一顆要顛覆全球智駕的芯片點亮了!
- 3D視覺技術(shù)為工業(yè)自動化帶來新“視界”
- 高性能手機設(shè)計如何實現(xiàn)?手機高校評估研討會為您揭曉答案!
- TI E2E中文社區(qū)年終回饋,15 塊 CC3200-LAUNCHXL 開發(fā)板免費申請中……測評贏好禮嘍!
- 有獎直播|TI 使用 DLP® 微型投影技術(shù)設(shè)計增強現(xiàn)實智能眼鏡
- 智慧六月 潛伏在EEWORLD里的一休哥
- 已結(jié)束|Maxim IO-Link通信協(xié)議設(shè)計方案詳解,5大優(yōu)勢助你輕松聯(lián)網(wǎng)!
- PI 電源小課堂|無 DC-DC 變換實現(xiàn)多路高精度輸出反激電源
- 【摸黑搶樓】贏大禮,關(guān)于示波器的狂想曲!正式開搶!!!
- 兆易GD32450I-EVAL免費測評試用
- NI白皮書下載《如何克服復(fù)雜待測設(shè)備的生產(chǎn)測試挑戰(zhàn)》
- 有多少人過年放假是按照法定假放的!!!
- 使用Tiva C系列M4芯片的困難到底在哪里?
- 運放選擇
- 發(fā)動機ECU診斷測試信號轉(zhuǎn)接器
- 二手開發(fā)板,IC呆料免費交易平臺www.dz-dailiao.cn,www.電子呆料.cn
- 軟件
- 2440如何關(guān)閉LCD背光!
- wince4.2系統(tǒng)啟動時停在了SchedInit函數(shù)中
- TI DLP技術(shù)的工業(yè)應(yīng)用與創(chuàng)新視頻——深入介紹DLP工業(yè)應(yīng)用, 解讀DLP創(chuàng)新,敬請觀看!
- STM32定時器1死區(qū)時間是怎么算出來的TIM1_BDTR