娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

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  { }  { S }    ,


指令舉例:


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  { }  { S }   ,


指令舉例:

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  { }  { S }   ,,


指令舉例:


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  { }  { S }   ,,


指令舉例:

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  { }  { S }   ,,


指令舉例:


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  { }  { S }   ,,


指令舉例


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  { }  { S }   ,,


指令舉例:


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  { }  { S }   ,,


指令舉例:


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  { }  { S }   ,,


指令舉例:

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)的條件碼來進行操作.

關(guān)鍵字:ARM  指令集  數(shù)據(jù)處理指令 引用地址:ARM指令集(數(shù)據(jù)處理指令)

上一篇:ARM異常及中斷處理介紹(中斷是異常的一種)
下一篇:ARM之GPIO介紹(Exynos4412平臺)

推薦閱讀

? ? ? ? 丹麥是個很有意思的地方,地處日德蘭半島,南邊與德國接壤,北邊與斯堪的納維亞半島的北歐三國隔海相望。盡管不像冰島高冷,也不像挪威、芬蘭和瑞典緊抱在一起,但如果要選出北歐設(shè)計風格最具代表性的國家,丹麥通常是最先被想起來的。  ? ? ? ? 前幾年正值北歐風大潮,讓北歐現(xiàn)代、簡約、多彩的設(shè)計風格能夠全年完整的呈現(xiàn)給世...
負責提供安全數(shù)字化體驗的智能邊緣平臺阿卡邁技術(shù)公司(Akamai Technologies, Inc.,以下簡稱:Akamai)宣布其在“Forrester Wave?:2019年第四季度零信任eXtended生態(tài)系統(tǒng)平臺提供商評估”(The Forrester Wave?: Zero Trust eXtended Ecosystem Platform Providers, Q4 2019 evaluation)中被認定為“領(lǐng)導(dǎo)者”。Forrester根據(jù)包括當前產(chǎn)...
三星 Exynos 今日宣布,全新的三星 Exynos 1080 芯片將于 11 月 12 日在上海正式發(fā)布。  本月初,三星 Exynos 官方微博放出主題為 “激發(fā)創(chuàng)新進取 劍指 2030”的錄播視頻。視頻中透露下半年將會發(fā)布擁有旗艦級性能的三星 Exynos 1080 芯片。  據(jù)IT之家了解,Exynos 1080 芯片最大亮點是首批商用 5 納米制程工藝,同時...
從原來的拉線油門到現(xiàn)在的電子油門,從機械擋桿到電子擋桿,從機械液壓助力轉(zhuǎn)向再到電子助力轉(zhuǎn)向系統(tǒng),如今汽車的傳動和執(zhí)行機構(gòu)中純機械結(jié)構(gòu)的比重越來越低,逐步被靈活且響應(yīng)速度更快的電機和線控單元所替代。正是因為電控元件的比例上升,車輛的智能化程度才可以越來越高。但想要達到更高階的智能駕駛等級,車輛的底盤需要有一次大的變革。于是乎,長城...

史海拾趣

問答坊 | AI 解惑

請教

誰知道MM1007的技術(shù)資料.謝謝…

查看全部問答∨

招聘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. ...…

查看全部問答∨

驅(qū)動器緩沖器有什么用

PWM輸出到緩沖器,再到隔離電路,最后到驅(qū)動器緩沖器有什么用…

查看全部問答∨

求用VS2005或者2008,用SerialPort類寫的 串口通信程序,及相關(guān)的說明

如題,本人急需學(xué)會這個東西,麻煩各位高手幫忙,不要轉(zhuǎn)載其它不是用這個類寫的東西進行回答,特別是接收這塊的代碼,請給個詳細點的流程介紹,比如 在這個里面寫的托管能起到什么左右,它和DataReceived這個事件之間的關(guān)系是個怎么樣的。謝謝~~不 ...…

查看全部問答∨

ARM本身有FLASH的驅(qū)動程序?

ARM上電時把FLASH中的數(shù)據(jù)LOAD到SDRAM中。 然后程序在SDRAM中運行。 那請問,ARM本身就帶有FLASH的驅(qū)動嗎? 要不然怎么能上電就能讀取FLASH呢?…

查看全部問答∨

UART的輸入引腳必須設(shè)置成GPIO_Mode_IN_FLOATING模式么?

                                 如果設(shè)置成該模式的話,接收引腳必須外接上拉才能正確接收到數(shù)據(jù),否則外部輸入的數(shù)據(jù)將會被此引腳“吃掉”從而看 ...…

查看全部問答∨

請推薦TI汽車級3.3VCAN收發(fā)器

本帖最后由 dontium 于 2015-1-23 13:12 編輯 請推薦TI汽車級3.3VCAN收發(fā)器,謝謝! …

查看全部問答∨

用什么方法把DS1302寫進LCD12864里啊

用什么方法把DS1302寫進LCD12864里啊…

查看全部問答∨

LCD1602光標跳動問題

如上圖說示,用51單片機做的電子萬年歷,顯示子程序顯示的結(jié)果,光標應(yīng)該總是在末尾,就如第一幅圖那樣,但是實際結(jié)果,每隔一定時間,光標總是會出現(xiàn)在第三幅圖所示的位置,然后又迅速跳動到末尾,我個人感覺好像是忙檢測的時間過長,導(dǎo)師顯示 ...…

查看全部問答∨

怎樣提高ADuCM360系統(tǒng)的ADC速度

以前做的ADuCM360的ADC,發(fā)現(xiàn)除了ADC的處理時間外,如果進行下一次ADC,還要對某些寄存器進行設(shè)置。這樣連續(xù)轉(zhuǎn)換時的處理速度就比較慢。 再者,ADI的例程為了提高可讀性,就象C++中的“封裝”概念一樣,將函數(shù)做得有些煩瑣,并存在些判斷( ...…

查看全部問答∨
小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 珠海市| 平谷区| 静乐县| 平江县| 宁阳县| 清新县| 得荣县| 丽水市| 确山县| 海丰县| 中宁县| 榆树市| 二连浩特市| 墨竹工卡县| 太保市| 阿克| 阜平县| 辽宁省| 翼城县| 西乌珠穆沁旗| 大兴区| 巫溪县| 湘阴县| 新巴尔虎左旗| 景泰县| 尖扎县| 潞西市| 永善县| 茶陵县| 将乐县| 顺义区| 滨州市| 抚松县| 新宁县| 鸡东县| 岳池县| 龙海市| 女性| 惠水县| 德兴市| 左云县|