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

正文內(nèi)容

arm組合語言程式設(shè)計(jì)-展示頁

2024-09-13 15:00本頁面
  

【正文】 的有效位址。這種定址方式可以用一條指令完成般移最多 16個(gè)通用暫存器的值。 ? 在第四條指令中,將暫存器 R1的內(nèi)容加上暫存器 R2的內(nèi)容形成運(yùn)算元的有效位址,從而取得運(yùn)算元存入暫存器 R0中。 ? 在第二條指令中,將暫存器 R1的內(nèi)容加上 4形成運(yùn)算元的有效位址,從而取得運(yùn)算元存入暫存器 R0中,然後, R1的內(nèi)容自增 4個(gè)位元組。變址定址方式常用於存取某基底位址附近的位址單元。 ? 第二條指令將 R0的值般移到以 R1的值為位址的記憶體中。 ADD R0, R1, R2 ; R0←R1 + R2 25 ARM指令的定址方式 暫存器間接定址 ? 暫存器間接定址就是以暫存器中的值作為運(yùn)算元的位址,而運(yùn)算元本身存放在記憶體中。 ADD R0, R0,# 1 ; R0←R0 + 1 ADD R0, R0,# 0x3f ; R0←R0 + 0x3f 24 ARM指令的定址方式 暫存器定址 ? 暫存器定址就是利用暫存器中的數(shù)值作為運(yùn)算元,這種定址方式是各類微處理器經(jīng)常採用的一種方式,也是一種執(zhí)行效率較高的定址方式。例如以下指令: ? 在以上兩條指令中,第二個(gè)源運(yùn)算元即為立即數(shù),要求以 “ # ” 為首碼,對於以十六進(jìn)位表示的立即數(shù),還要求在 “ # ” 後加上 “ 0x” 或 “ amp。 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置位 無符號數(shù)大於或等於 0011 CC C清零 無符號數(shù)小於 0100 MI N置位 負(fù)數(shù) 0101 PL N清零 正數(shù)或零 0110 VS V置位 溢出 0111 VC V清零 未溢出 1000 HI C置位 Z清零 無符號數(shù)大於 1001 LS C清零 Z置位 無符號數(shù)小於或等於 1010 GE N等於 V 帶符號數(shù)大於或等於 1011 LT N不等於 V 帶符號數(shù)小於 1100 GT Z清零且( N等於 V) 帶符號數(shù)大於 1101 LE Z置位或( N不等於 V) 帶符號數(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)算元。 ? Thumb狀態(tài)的 LR映射到 ARM狀態(tài)的 R14。 ? Thumb狀態(tài)的 CPSR和 SPSR與 ARM狀態(tài)的 CPSR和 SPSR是一致的。每一種特權(quán)模式都有一組 SP,LR和 SPSR。 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)下暫存器集的子集。 ? Thumb指令與 ARM指令的時(shí)間效率和空間效率關(guān)係為: ? Thumb程式碼所需的存儲空間約為 ARM程式碼的 60%~ 70% ? Thumb程式碼使用的指令數(shù)比 ARM程式碼多約 30%~ 40% ? 若使用 32位的記憶體, ARM程式碼比 Thumb程式碼快約 40% ? 若使用 16位的記憶體, Thumb程式碼比 ARM程式碼快約 40%~ 50% ? 與 ARM程式碼相比較,使用 Thumb程式碼,記憶體的功耗會降低約 30% ? 若對系統(tǒng)的性能有較高要求,應(yīng)使用 32位元的存儲系統(tǒng)和 ARM指令集。 ? 大多數(shù)的 Thumb指令是無條件執(zhí)行的。 13 Thumb指令及應(yīng)用 ? Thumb指令集是 ARM指令集的一個(gè)子集,允許指令編碼為 16位元的長度。 ? 當(dāng)運(yùn)算元暫存器的狀態(tài)位元 0為 0時(shí),執(zhí)行 BX指令進(jìn)入 ARM狀態(tài)。當(dāng)運(yùn)算元暫存器的狀態(tài)位元 0為 1時(shí),執(zhí)行 BX指令進(jìn)入 Thumb狀態(tài)。 ? ARM和 Thumb之間狀態(tài)的切換不影響處理器的模式或暫存器的內(nèi)容。 11 PSR Mode位元與可使用暫存器 12 ARM和 Thumb之間狀態(tài)的切換 ? ARM處理器可在兩種工作狀態(tài)之間切換。在這些架構(gòu)系統(tǒng)中,可自由地使用能在 ARM和 Thumb狀態(tài)之間切換的指令。 ? T位元: ? T=0 指示 ARM執(zhí)行。 ? 中斷禁止位元: I 置 1則禁止 IRQ中斷。當(dāng)例外出現(xiàn)時(shí)改變控制位元。 ? SPSR用於保留 CPSR的狀態(tài)。 ? CPSR包含條件碼旗標(biāo),中斷禁止位元,當(dāng)前處理器模式以及其他狀態(tài)和控制資訊。 ? 3) 程式計(jì)數(shù)器 R15 ? 暫存器 R15用做程式計(jì)數(shù)器 (PC)。 ? 暫存器 R13通常用做堆疊指標(biāo),稱為 SP( Stack Pointer),每種例外模式都有自己的 R13。暫存器 R13,R14各有 6個(gè)分組的實(shí)體暫存器。暫存器 R8~R12沒有任何指定的特殊用途。若要存取特定的實(shí)體暫存器而不依賴當(dāng)前的處理器模式,則要使用規(guī)定的各字。 ? 2)分組暫存器 R8~R14 ? R8~ R14是分組暫存器。這意味著在所有處理器模式下,它們每一個(gè)都存取一樣的 32位元暫存器。 ? ARM處理器有 7種不同的處理器模式 ? 在每一種處理器模式下均有一組相應(yīng)的暫存器與之對應(yīng)。 ? 包括程式計(jì)數(shù)器( PC指標(biāo))。 ? 當(dāng)處理器工作在使用者模式時(shí),正在執(zhí)行的程式不能存取某些被保護(hù)的系統(tǒng)資源,也不能改變模式,除非例外 (exception)發(fā)生。 ? 模式改變 ? 在軟體控制下可以改變模式 ? 外部中斷或例外處理也可以引起模式發(fā)生改變。 ? Thumb指令集為 ARM指令集的功能子集,但與等價(jià)的 ARM程式碼相比較,可節(jié)省30%~ 40%以上的存儲空間。 ? 自動(dòng)增減迴圈 ? 在迴圈處理中使用位址的自動(dòng)增減來提高執(zhí)行效率。 ? 連續(xù)存取資料 ? 可用載入 /存儲指令連續(xù)傳輸資料,以提高資料的傳輸效率。1 ARM組合語言程式設(shè)計(jì) 2 ARM微處理器指令優(yōu)點(diǎn) ? 小晶片的面積低功耗 ? ARM架構(gòu)還採用了一些特別的技術(shù),在性能的前提下儘量縮小晶片的面積,並降低功耗。 ? 條件式指令 ? 所有的指令都可根據(jù)前面的執(zhí)行結(jié)果決定是否被執(zhí)行,從而提高指令的執(zhí)行效率。 ? 同時(shí)完成邏輯處理和移位元 ? 可在一條資料處理指令中同時(shí)完成邏輯處理和移位處理。 3 ARM微處理器的指令 ? ARM兩種指令集 ? ARM指令 ? 為 32位元的長度, ? Thumb指令 ? 為 16位元長度。 4 ARM處理器模式 ? ARM架構(gòu)支援 7種處理器模式。 ? 大多數(shù)應(yīng)用程式在使用者模式下執(zhí)行。 5 ARM支援的 7種工作模式 處理器模式 說明 User (usr) 正常程式執(zhí)行模式 FIQ (fiq) 支援高速資料般移或通道處理 IRQ (irq) 用於通用中斷處理 Supervisor (svc) 作業(yè)系統(tǒng)保護(hù)模式 Abort mode (abt) 實(shí)現(xiàn)虛擬記憶體和 /或記憶體保護(hù) Undefined (und) 支援硬體輔助運(yùn)算器的軟體仿真 System (sys) 執(zhí)行特權(quán)作業(yè)系統(tǒng)工作 6 ARM微處理器的暫存器結(jié)構(gòu) ? ARM處理器共有 37個(gè)暫存器,被分為若干個(gè)組 (BANK),這些暫存器包括: ? 31個(gè)通用暫存器。 ? 6個(gè)程式狀態(tài)暫存器 ? 用以標(biāo)識 CPU的工作狀態(tài)及程式的執(zhí)行狀態(tài),均為 32位元,目前只使用了其中的一部分。 7 ARM暫存器 ? 1)不分組暫存器 R0~R7 ? R0~R7是不分組暫存器。它們是真正的通用暫存器,沒有架構(gòu)所隱含的特殊用途。它們每一個(gè)存取的實(shí)體暫存器取決於當(dāng)前的處理器模式。 ? 暫存器 R8~R12各有兩組實(shí)體暫存器:一組為 FIQ模式,另一組為除了 FIQ以外的所有模式。 ? 只是使用 R8~R14來簡單地處理中斷。 1個(gè)用於使用者模式和系統(tǒng)模式,其他 5個(gè)分別用於 5種例外模式。 ? 暫存器 R14用作副程式鏈結(jié)暫存器,也稱為 LR(。 8 ARM暫存器 9 程式狀態(tài)暫存器 (Program Status Register ) ? 有一個(gè) Current Program Status Register (CPSR) ? 在所有處理器模式下都可以存取當(dāng)前的程式狀態(tài)暫存器 CPSR。 ? 有五個(gè) Saved Program Status Registers (SPSRs) ? 每種例外模式都有一個(gè)程式狀態(tài)保存暫存器 SPSR。 10 程式狀態(tài)暫存器 ? 條件碼旗標(biāo) : ? N, Z, C, V 大多數(shù)指令可以測試這些條件碼旗標(biāo)以決定程式指令如何執(zhí)行 ? 控制位元 : ? 最低 8位元 I, F, T和 M位元用做控制位元。當(dāng)處理器在特權(quán)模式下也可以由軟體改變。 F置 1則禁止 FIQ中斷。 T=1指示 Thumb執(zhí)行。 ? 模式位元: ? M0, M1, M2, M3和 M4 (M[4:0]) 是模式位元 .這些位元決定處理器的工作模式。 ? 在 Thumb狀態(tài)下,程式計(jì)數(shù)器 PC使用位元 1選擇另一個(gè)半字。 ? 進(jìn)入 Thumb狀態(tài)。 ? 如果處理
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1