freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

arm組合語言程式設(shè)計(jì)(存儲(chǔ)版)

2024-10-11 15:00上一頁面

下一頁面
  

【正文】 92 ARM指令集 移位元指令 ROR操作 ? ROR操作的格式為: ? 通用暫存器, ROR 運(yùn)算元 ? ROR可完成對通用暫存器中的內(nèi)容進(jìn)行迴圈右移的操作,按運(yùn)算元所指定的數(shù)量向右迴圈移位,左端用右端移出的位來填充。 ? ARM的輔助運(yùn)算器指令主要用於 ARM處理器初始化 ARM輔助運(yùn)算器的資料處理操作,以及在 ARM處理器的暫存器和輔助運(yùn)算器的暫存器之間般移資料,和在 ARM輔助運(yùn)算器的暫存器和記憶體之間般移資料。其中, {L}選項(xiàng)表示指令為長讀取操作,如用於雙精度資料的傳輸。其中輔助運(yùn)算器操作碼 1和輔助運(yùn)算器操作碼 2為輔助運(yùn)算器將要執(zhí)行的操作,目的暫存器為 ARM處理器的暫存器,來源暫存器 1和來源暫存器 2均為輔助運(yùn)算器的暫存器。 。 99 ARM指令集 輔助運(yùn)算器指令 MRC指令 ? MRC指令的語法為: ? MRC{條件 } 輔助運(yùn)算器編碼,輔助運(yùn)算器操作碼 1,目的暫存器,來源暫存器 1,來源暫存器 2,輔助運(yùn)算器操作碼2。 ? 指令範(fàn)例: LDC P3, C4, [R0] ;將 ARM處理器的暫存器 R0所指向的記憶體中的字資料般移到輔助運(yùn)算器 P3的暫存器 C4中。 ? 操作範(fàn)例: MOV R0, R1, RRX2 ;將 R1中的內(nèi)容進(jìn)行帶擴(kuò)充的迴圈右移兩位後般移到 R0中。其中,運(yùn)算元可以是通用暫存器,也可以是立即數(shù)( 0~ 31)。 ? 例如,資料處理指令的第二個(gè)運(yùn)算元為暫存器時(shí),就可以加入移位元操作選項(xiàng)對它進(jìn)行各種移位操作。顯然,當(dāng)來源暫存器 1和目的暫存器為同一個(gè)暫存器時(shí),指令交換該暫存器和記憶體的內(nèi)容。 ? {類型 }為非堆疊型定址或堆疊型定址 73 非堆疊型定址 ? IA( Increment After) ?基底暫存器在存取後才增加 ? IB (Increment Before) ?基底暫存器在存取前即增加 ? DA (decrement After) ? 基底暫存器在存取後才減少 ? DB (decrement Before) ?基底暫存器在存取前即減少 74 ARM指令集 連續(xù)資料載入 /存儲(chǔ)指令 ? 堆疊型定址(應(yīng)用於程式堆疊資料結(jié)構(gòu)上) ? FD(Full Descending),滿遞減 ? FA(Full Ascending),滿遞增 ? ED(Empty Descending),空遞減 ? EA(Empty Ascending),空遞減 ? 堆疊指令範(fàn)例: STMFD R13!, {R0, R4R12, LR} ;將暫存器列表中的暫存器( R0, R4到 R12, LR)存入堆疊。 ? 指令範(fàn)例: STRB R0, [R1] ;將暫存器 R0中的位元組資料寫入以 R1為位址的記憶體中。 LDRH R0, [R1,# 8] ;將記憶體位址為 R1+ 8的半字資料讀入暫存器 R0,並將 R0的高 16位清零。該指令通常用於從記憶體中讀取 8位元的位元組資料到通用暫存器,然後對資料進(jìn)行處理。 LDR R0, [R1, R2] ;將記憶體位址為 R1+R2的字資料讀入暫存器 R0。其中,運(yùn)算元可以為通用暫存器或立即數(shù)。 ? 對於目的暫存器 Low,在指令執(zhí)行前存放 64位元加數(shù)的低 32位元,指令執(zhí)行後存放結(jié)果的低 32位。 ? 指令範(fàn)例: SMULL R0, R1, R2, R3 ; R0 = ( R2 R3)的低 32位 ; R1 = ( R2 R3)的高 32位 58 ARM指令集 乘法指令與乘加指令 SMLAL指令 ? SMLAL指令的語法為: ? SMLAL{條件 }{S} 目的暫存器 Low,目的暫存器低 High,運(yùn)算元 1,運(yùn)算元 2 ? SMLAL指令完成將運(yùn)算元 1與運(yùn)算元 2的乘法運(yùn)算,並把結(jié)果的低 32位元同目的暫存器 Low中的值相加後又放置到目的暫存器Low中,結(jié)果的高 32位元同目的暫存器 High中的值相加後又放置到目的暫存器 High中,同時(shí)可以根據(jù)運(yùn)算結(jié)果設(shè)定 CPSR中相應(yīng)的條件旗標(biāo)位元。 ? 指令範(fàn)例: BIC R0, R0,#% 1011 ; 該指令清除 R0 中的位 0、 和 3,其餘的位保持不變。 52 ARM指令集 資料處理指令 EOR指令 ? EOR指令的語法為: ? EOR{條件 }{S} 目的暫存器,運(yùn)算元 1,運(yùn)算元 2 ? EOR指令用於在兩個(gè)運(yùn)算元上進(jìn)行邏輯互斥運(yùn)算,並把結(jié)果放置到目的暫存器中。 ? 指令範(fàn)例: RSC R0, R1, R2 ; R0 = R2 – R1 ! C 50 ARM指令集 資料處理指令 AND指令 ? AND指令的語法為: ? AND {條件 }{S} 目的暫存器,運(yùn)算元 1,運(yùn)算元 2 ? AND指令用於在兩個(gè)運(yùn)算元上進(jìn)行邏輯與運(yùn)算,並把結(jié)果放置到目的暫存器中。該指令可用於有符號(hào)數(shù)或無符號(hào)數(shù)的減法運(yùn)算。它使用一個(gè)進(jìn)位元旗標(biāo)位元,這樣就可以做比 32位大的數(shù)的加法,注意不要忘記設(shè)定 S尾碼來更改進(jìn)位元旗標(biāo)。 ? 該指令實(shí)際完成運(yùn)算元 1和運(yùn)算元 2相加,並根據(jù)結(jié)果更改條件旗標(biāo)位元。其中 S選項(xiàng)決定指令的操作是否影響 CPSR中條件旗標(biāo)位元的值,當(dāng)沒有 S時(shí)指令不更新 CPSR中條件旗標(biāo)位元的值。以下指令: ?BL Label ;當(dāng)程式無條件跳移到標(biāo)號(hào) Label處執(zhí)行時(shí),同時(shí)將當(dāng)前的 PC值保存到 R14中 34 ARM指令集 跳移指令 BLX指令 ? BLX指令的語法為: ? BLX 目標(biāo)位址 ? BLX指令從 ARM指令集跳移到指令中所指定的目標(biāo)位址,並將處理器的工作狀態(tài)有 ARM狀態(tài)切換到Thumb狀態(tài),該指令同時(shí)將 PC的當(dāng)前內(nèi)容保存到暫存器 R14中。 ? BLX 帶返回和狀態(tài)切換的跳移指令。 ? 空遞增堆疊 ? 堆疊指標(biāo)指向下一個(gè)將要放入資料的空位置,且由低位址向高地址生成。這種定址方式可以用一條指令完成般移最多 16個(gè)通用暫存器的值。 ? 第二條指令將 R0的值般移到以 R1的值為位址的記憶體中。 16 Thumb暫存器 17 ARM記憶體格式 ? BIGENDIAN ? LITTLEENDIAN 18 ARM 指令格式 (Instruction Format)及種類 19 ARM指令及功能描述 助記符 指令功能描述 ADC 帶進(jìn)位元加法指令 ADD 加法指令 AND 邏輯與指令 B 跳移指令 BIC 位元清零指令 BL 帶返回的跳移指令 BLX 帶返回和狀態(tài)切換的跳移指令 BX 帶狀態(tài)切換的跳移指令 CDP 輔助運(yùn)算器資料操作指令 CMN 比較反值指令 CMP 比較指令 EOR 互斥指令 LDC 記憶體到輔助運(yùn)算器的資料傳輸指令 LDM 載入多個(gè)暫存器指令 LDR 記憶體到暫存器的資料傳輸指令 MCR 從 ARM暫存器到輔助運(yùn)算器暫存器的資料傳輸指令 MLA 乘加運(yùn)算指令 MOV 資料般移指令 20 ARM指令及功能描述 助記符 指令功能描述 MRC 從輔助運(yùn)算器暫存器到 ARM暫存器的資料傳輸指令 MRS 般移 CPSR或 SPSR的內(nèi)容到通用暫存器指令 MSR 般移通用暫存器到 CPSR或 SPSR的指令 MUL 32位元乘法指令 MLA 32位元乘加指令 MVN 資料取反般移指令 ORR 邏輯或指令 RSB 逆向減法指令 RSC 帶借位的逆向減法指令 SBC 帶借位減法指令 STC 輔助運(yùn)算器暫存器寫入記憶體指令 STM 連續(xù)記憶體字寫入指令 STR 暫存器到記憶體的資料傳輸指令 SUB 減法指令 SWI 軟體中斷指令 SWP 交換指令 TEQ 相等測試指令 TST 位元測試指令 21 指令的條件碼 條件碼 助記符尾碼 旗標(biāo) 含義 0000 EQ Z置位 相等 0001 NE Z清零 不相等 0010 CS C置位 無符號(hào)數(shù)大於或等於 0011 CC C清零 無符號(hào)數(shù)小於 0100 MI N置位 負(fù)數(shù) 0101 PL N清零 正數(shù)或零 0110 VS V置位 溢出 0111 VC V清零 未溢出 1000 HI C置位 Z清零 無符號(hào)數(shù)大於 1001 LS C清零 Z置位 無符號(hào)數(shù)小於或等於 1010 GE N等於 V 帶符號(hào)數(shù)大於或等於 1011 LT N不等於 V 帶符號(hào)數(shù)小於 1100 GT Z清零且( N等於 V) 帶符號(hào)數(shù)大於 1101 LE Z置位或( N不等於 V) 帶符號(hào)數(shù)小於或等於 1110 AL 忽略 無條件執(zhí)行 22 ARM指令的定址方式 ? 立即定址 (Immediate Addressing) ? 暫存器定址 (Register Addressing) ? 暫存器間接定址 (Register Indirect Addressing) ? 基址變址定址 (Index Addressing) ? 多暫存器定址 (Multiple Register Addressing) ? 堆疊定址 (Stack Addressing) 23 ARM指令的定址方式 立即定址 ? 立即定址也叫立即數(shù)定址,這是一種特殊的定址方式,運(yùn)算元本身就在指令中給出,只要取出指令也就取到了運(yùn)算元。 14 Thumb與 ARM和暫存器的比較 R0 R1 R2 R3 R4 R5 R6 R7 SP LR PC C P S R S P S R R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R1 1 R12 SP ( R13 ) L R(R14) PC(R 15) CPSR SPS R 高暫存器 Thu m b 狀態(tài) AR M 狀態(tài) 低暫存器 15 Thumb狀態(tài)的暫存器集 ? Thumb狀態(tài)下的暫存器集是 ARM狀態(tài)下暫存器集的子集。 ? 當(dāng)運(yùn)算元暫存器的狀態(tài)位元 0為 0時(shí),執(zhí)行 BX指令進(jìn)入 ARM狀態(tài)。在這些架構(gòu)系統(tǒng)中,可自由地使用能在 ARM和 Thumb狀態(tài)之間切換的指令。 ? SPSR用於保留 CPSR的狀態(tài)。暫存器 R13,R14各有 6個(gè)分組的實(shí)體暫存器。這意味著在所有處理器模式下,它們每一個(gè)都存取一樣的 32位元暫存器。 ? 模式改變 ? 在軟體控制下可以改變模式 ? 外部中斷或例外處理也可以引起模式發(fā)生改變。1 ARM組合語言程式設(shè)計(jì) 2 ARM微處理器指令優(yōu)點(diǎn) ? 小晶片的面積低功耗 ? ARM架構(gòu)還採用了一些特別的技術(shù),在性能的前提下儘量縮小晶片的面積,並降低功耗。 4 ARM處理器模式 ? ARM架構(gòu)支援 7種處理器模式。 7 ARM暫存器 ? 1)不分組暫存器 R0~R7 ? R0~R7是不分組暫存器。 ? 只是使用 R8~R14來簡單地處理中斷。 ? 有五個(gè) Saved Program Status Registers (SPSRs) ? 每種例外模式都有一個(gè)程式狀態(tài)保存暫存器 SPSR。 T=1指示 Thumb執(zhí)行。 ? 如果處理器在 Thumb狀態(tài)進(jìn)入例外,則當(dāng)例外處理( IRQ, FIQ,Undef, Abort和 SWI)返回時(shí),自動(dòng)切換到 Thumb狀態(tài)。 ? 若對系統(tǒng)的成本及功耗有較高要求,則應(yīng)使用 16位元的存儲(chǔ)系統(tǒng)和Thumb指令集。 ? Thumb狀態(tài)的 PC映射到 ARM狀態(tài)的 PC( R15)。例如以下指令: ? 第一條指令將以 R1的值為位址的記憶體中的資料般移到 R0中。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1