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

正文內(nèi)容

[經(jīng)濟學(xué)]第2章arm體系結(jié)構(gòu)(參考版)

2025-01-07 00:14本頁面
  

【正文】 R0=R0240 ,并影響標志位 SUBS R2,R1,R2 。R1=R1+R22 88 助記符 說明 操作 條件碼位置 ADD Rd, Rn, operand2 加法運算指令 Rd← Rn+operand2 ADD{cond}{S} SUB Rd, Rn, operand2 減法運算指令 Rd← Rnoperand2 SUB{cond}{S} RSB Rd, Rn, operand2 逆向減法指令 Rd← operand2Rn RSB{cond}{S} ADC Rd, Rn, operand2 帶進位加法 Rd← Rn+operand2+Carry ADC{cond}{S} SBC Rd, Rn, operand2 帶進位減法指令 Rd← Rnoperand2(NOT)Carry SBC{cond}{S} RSC Rd, Rn, operand2 帶進位逆向減法指令 Rd← operand2Rn(NOT)Carry RSC{cond}{S} 減法運算指令 ——SUB指令用寄存器 Rn減去 operand2, 結(jié)果保存到 Rd中 。 指令格式如下: ADD{cond}{S} Rd,Rn,operand2 應(yīng)用示例: ADDS R1,R1,1020 。R1=0xFFFFFF00 MVN R1,R2 。R3=R12,并影響標志位 MOV PC,LR 。R1= 0xF000000B MOV R0,R1 。 85 助記符 說明 操作 條件碼位置 MOV Rd,operand2 數(shù)據(jù)傳送 Rd← operand2 MOV{cond}{S} MVN Rd,operand2 數(shù)據(jù)非傳送 Rd← (~operand2) MVN{cond}{S} MOV指令將立即數(shù)或寄存器傳送到目標寄存器( Rd),可用于移位運算等操作。將 R2指向地址的半字數(shù)據(jù)存入 R6, 高 16位用 0擴展 。將 R0+R3地址上的字節(jié)數(shù)據(jù)存入 R1, 。將 R5指向地址的字數(shù)據(jù)存入 R2 STR R1,[R0,0x04] 。將指定地址上的半字數(shù)據(jù)讀入 Rd STR{cond}H Rd,地址 。將指定地址上的有符號字節(jié)讀入 Rd LDR{cond}SH Rd,地址 。將 Rd中的字節(jié)數(shù)據(jù)存入指定地址 81 ( 2) LDR和 STR—— 半字和有符號字節(jié)加載 /存儲指令 這類 LDR/STR指令可加載有符號半字或字節(jié) , 可加載 /存儲無符號半字 。將 Rd中的字數(shù)據(jù)存入指定地址 LDR{cond}B Rd,地址 。 指令格式如下: LDR{cond} Rd,地址 。若 R0R1, 則 R0=R0+1 ADDLS R1,R1,1 。 對應(yīng)的匯編代碼: CMP R0,R1 。 78 操作碼 條件助記符 標志 含義 0000 EQ Z=1 相等 0001 NE Z=0 不相等 0010 CS/HS C=1 無符號數(shù)大于或等于 0011 CC/LO C=0 無符號數(shù)小于 0100 MI N=1 負數(shù) 0101 PL N=0 正數(shù)或零 0110 VS V=1 溢出 0111 VC V=0 沒有溢出 1000 HI C=1,Z=0 無符號數(shù)大于 1001 LS C=0,Z=1 無符號數(shù)小于或等于 1010 GE N=V 有符號數(shù)大于或等于 1011 LT N!=V 有符號數(shù)小于 1100 GT Z=0,N=V 有符號數(shù)大于 1101 LE Z=1,N!=V 有符號數(shù)小于或等于 1110 AL 任何 無條件執(zhí)行 (指令默認條件 ) 1111 NV 任何 從不執(zhí)行 (不要使用 ) 79 C代碼: If(a b) a++。 所有的 ARM指令都可以條件執(zhí)行 , 而 Thumb指令只有 B( 跳轉(zhuǎn) ) 指令具有條件執(zhí)行 功能 。R1=R1+R13 SUB R1,R1,R2,LSR R3 。各項的說明如下: opcode:指令助記符; cond: 執(zhí)行條件; S:是否影響 CPSR寄存器的值; Rd:目標寄存器; Rn:第 1個操作數(shù)的寄存器; operand2:第 2個操作數(shù); 指令語法 目標寄存器( Rd) 源寄存器 1(Rn) 源寄存器 2(Rm) ADD r3,r1,r2 r3 r1 r2 例 : 72 靈活的使用第 2個操作數(shù) “ operand2”能夠提高代碼效率 。指令如 LDMED、 STMED等。指令如 LDMEA、 STMEA等; ?滿遞減:堆棧向下增長,堆棧指針指向內(nèi)含有效數(shù)據(jù)項的最低地址。 棧頂 SP? 棧頂 SP? 棧底 空堆棧 棧底 滿堆棧 0x12345678 0x12345678 棧頂 SP? 0x12345678 棧頂 SP? 壓棧 壓棧 69 堆棧尋址 ARM微處理器指令的尋址方式 所以可以組合出四種類型的堆棧方式: ?滿遞增:堆棧向上增長,堆棧指針指向內(nèi)含有效數(shù)據(jù)項的最高地址。 以下程序段完成子程序的調(diào)用和返回 , 跳轉(zhuǎn)指令 BL采用了相對尋址方式: BL NEXT ;跳轉(zhuǎn)到子程序 NEXT處執(zhí)行 …… NEXT …… MOV PC, LR ;從子程序返回 ARM微處理器指令的尋址方式 67 堆棧尋址 ?堆棧是一種數(shù)據(jù)結(jié)構(gòu) , 按先進后出 ( First In Last Out,F(xiàn)ILO) 的方式工作 , 使用一個稱作堆棧指針的專用寄存器指示當(dāng)前的操作位置 , 堆棧指針總是指向棧頂 。 以下指令: LDMIA R0, {R1, R2, R3, R4} ; R1←[R0] ; R2←[R0 + 4] ; R3←[R0 + 8] ; R4←[R0 + 12] ?該指令的后綴 IA表示在每次執(zhí)行完加載 /存儲操作后, R0按字長度增加,因此,指令可將連續(xù)存儲單元的值傳送到 R1~R4。 ARM微處理器指令的尋址方式 0x55 R2 R3 0x40000000 0xAA 0x4000000C LDR R2,[R3,0x0C] 0xAA 將 R3+0x0C作為地址裝載數(shù)據(jù) 65 多寄存器尋址 ?采用多寄存器尋址方式 , 一條指令可以完成多個寄存器值的傳送 。 ?在第三條指令中 , 以寄存器 R1的內(nèi)容作為操作數(shù)的有效地址 , 從而取得操作數(shù)存入寄存器 R0中 , 然后 , R1的內(nèi)容自增 4個字節(jié) 。采用變址尋址方式的指令常見有以下幾種形式,如下所示: LDR R0, [R1,# 4] ; R0←[R1 + 4] LDR R0, [R1,# 4]! ; R0←[R1 + 4]、 R1←R1 + 4 LDR R0, [R1] ,# 4 ; R0←[R1] 、 R1←R1 + 4 LDR R0, [R1, R2] ; R0←[R1 + R2] ?在第一條指令中 , 將寄存器 R1的內(nèi)容加上 4形成操作數(shù)的有效地址 , 從而取得操作數(shù)存入寄存器 R0中 。 ARM微處理器指令的尋址方式 0x55 R0 R2 0x40000000 0xAA 0x40000000 LDR R0,[R2] 0xAA 64 基址變址尋址 ?基址變址尋址就是將寄存器(該寄存器一般稱作基址寄存器)的內(nèi)容與指令中給出的地址偏移量相加,從而得到一個操作數(shù)的有效地址。 ?第二條指令將以 R1的值為地址的存儲器中的數(shù)據(jù)傳送到 R0中 。 ARM微處理器指令的尋址方式 0xAA 0x55 R2 R1 MOV R1,R2 0xAA 63 寄存器間接尋址 ?寄存器間接尋址就是以寄存器中的值作為操作數(shù)的地址,而操作數(shù)本身存放在存儲器中。 ARM微處理器指令的尋址方式 0x55 R0 MOV R0,0xFF00 程序存儲 MOV R0,0xFF00 0xFF00 從代碼中獲得數(shù)據(jù) 62 寄存器尋址 ?寄存器尋址就是利用寄存器中的數(shù)值作為操作數(shù),這種尋址方式是各類微處理器經(jīng)常采用的一種方式,也是一種執(zhí)行效率較高的尋址方式。這個操作數(shù)被稱為立即數(shù),對應(yīng)的尋址方式也就叫做立即尋址。例如,跳轉(zhuǎn)指令 B可以加上后綴 EQ變?yōu)?BEQ表示 “ 相等則跳轉(zhuǎn) ” ,即當(dāng) CPSR中的 Z標志置位時發(fā)生跳轉(zhuǎn)。 ?每一條 ARM指令包含 4位的條件碼,位于指令的最高 4位[31:28]。 ?ARM微處理器的指令集可以分為六大類 : 跳轉(zhuǎn)指令 數(shù)據(jù)處理指令 程序狀態(tài)寄存器( PSR)處理指令 加載 /存儲指令 協(xié)處理器指令和異常產(chǎn)生指令 ARM微處理器指令的分類 52 ARM微處理器指令表 1 助記符 指令功能描述 ADC 帶進位加法指令 ADD 加法指令 AND 邏輯與指令 B 跳轉(zhuǎn)指令 BIC 位清零指令 BL 帶返回的跳轉(zhuǎn)指令 BLX 帶返回和狀態(tài)切換的跳轉(zhuǎn)指令 BX 帶狀態(tài)切換的跳轉(zhuǎn)指令 ARM微處理器指令的分類 53 ARM微處理器指令表 2 助記符 指令功能描述 CDP 協(xié)處理器數(shù)據(jù)操作指令 CMN 比較反值指令 CMP 比較指令 EOR 異或指令 LDC 存儲器到協(xié)處理器的數(shù)據(jù)傳輸指令 LDM 加載多個寄存器指令 LDR 存儲器到寄存器的數(shù)據(jù)傳輸指令 MCR ARM寄存器到協(xié)處理器寄存器數(shù)據(jù)傳輸 ARM微處理器指令的分類 54 ARM微處理器指令表 3 助記符 指令功能描述 MLA 乘加運算指令 MOV 數(shù)據(jù)傳送指令 MRC 協(xié)處理器寄存器到 ARM寄存器數(shù)據(jù)傳輸 MRS 傳送 CPSR或 SPSR的內(nèi)容到通用寄存器 MSR 傳送通用寄存器到 CPSR或 SPSR的指令 MUL 32位乘法指令 MLA 32位乘加指令 MVN 數(shù)據(jù)取反傳送指令 ARM微處理器指令的分類 55 ARM微處理器指令表 4 助記符 指令功能描述 ORR 邏輯或指令 RSB 逆向減法指令 RSC 帶借位的逆向減法指令 SBC 帶借位減法指令 STC 協(xié)處理器寄存器寫入存儲器指令 STM 批量內(nèi)存字寫入指令 STR 寄存器到存儲器的數(shù)據(jù)傳輸指令 SUB 減法指令 ARM微處理器指令的分類 56 ARM微處理器指令表 5 助記符 指令功能描述 SWI 軟件中斷指令 SWP 交換指令 TEQ 相等測試指令 TST 位測試指令 ARM微處理器指令的分類 57 指令的條件域 ?當(dāng)處理器工作在 ARM狀態(tài)時,幾乎所有的指令均根據(jù) CPSR中條件碼的狀態(tài)和指令的條件域有條件的執(zhí)行。 ?我們需要處理所有的異常,盡管我們可以簡單的在某些異常處理程序處放置死循環(huán)。 ARM異常處理 45 程序 A IRQ服務(wù)程序 系統(tǒng)模式 IRQ模式 程序 寄存器組 圖示進入異常過程 1. 程序在系統(tǒng)模式下運行用戶程序,假定當(dāng)前處理器狀態(tài)為 Thumb狀態(tài)、允許 IRQ中斷; 用戶程序運行時發(fā)生 IRQ中斷,硬件完成以下動作: LR_sys SPSR_irq LR_irq LR PC CPSR SPSR SYS 1 ? 0 . . . ? ? ? ? MOD T F I . . . N Z C V ?置位 I位(禁止 IRQ中斷) ?清零 T位(進入 ARM狀態(tài)) ?設(shè)置 MOD位,切換處理器模式至 IRQ模式 ?將下一條指令的地址存入IRQ模式的 LR寄存器 ?將 CPSR寄存器內(nèi)容存入IRQ模式的 SPSR寄存器 ?將跳轉(zhuǎn)地址存入 PC,實現(xiàn)跳轉(zhuǎn) IRQ01BackAddr JumpAddr SYS 1 ? 0 . . . ? ? ? ? “?”表示對該位不關(guān)心 46 在異常處理結(jié)束后,異常處理程序完成以下動作: 程序 A IRQ服務(wù)程序 系統(tǒng)模式 IRQ模式 程序 寄存器組 圖示退出異常過
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1