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

正文內(nèi)容

第3章arm體系結(jié)構(gòu)-文庫吧資料

2025-01-20 20:14本頁面
  

【正文】 ]:保留 注意 :對(duì)于 MMU,其實(shí)只和 CP15的寄存器的 0、 9位有關(guān) ARM MMU的操作 65 R2 地址變換表基址寄存器 (類型: ARMv3:只寫, ARMv4:讀寫) 位 [31:14]:變換表基地址,定位界限為 16KB U N P / S B Z P1 43 1變 換 表 基 地 址0ARM MMU的操作 66 R3 域訪問控制寄存器: (類型: ARMv3:只寫, ARMv4:讀寫) D 1 1 D 1 0 D 9 D 8891 01 1D 1 4 D 1 3 D 1 21 21 31 4D 3 D 2 D 1 D 00123D 7 D 6 D 5 D 44567D 1 52 32 42 52 62 72 82 9 1 51 61 71 81 92 02 12 23 03 1數(shù)據(jù)的含義如下: 00 不允許訪問,任何訪問將產(chǎn)生域錯(cuò)誤 01 客戶( Client)使用域,根據(jù)段和頁描述符的訪問權(quán)限檢驗(yàn) 10 保留 11 管理( Manager)使用域,不檢查訪問許可位,任何都不會(huì)產(chǎn)生域錯(cuò)誤 ARM MMU的操作 67 R5 故障狀態(tài)寄存器: (類型: ARMv3:只讀, ARMv4:讀寫) 891 0域 狀 態(tài)03U N P / S B Z PD473 10Bit[8]: 0 Bits[7:4]:當(dāng)錯(cuò)誤發(fā)生時(shí),確定 16個(gè)域中 (D15–D0) 哪個(gè)被訪問。如果數(shù)據(jù)不在存儲(chǔ)空間內(nèi), MMU將產(chǎn)生頁面錯(cuò)誤中斷。此表稱作 TLB(轉(zhuǎn)換旁置緩沖區(qū) )。 MMU在處理器中實(shí)現(xiàn)內(nèi)存管理的功能,完成物理地址到虛擬地址的映射。除 R0R7外, PUSH指令還可以存儲(chǔ)連接寄存器 R14,并且 POP指令可以加載程序指令 PC。 多寄存器加載和存儲(chǔ)指令 ? LDM和 STM指令可以將任何范圍為 R0R7的寄存器子集加載或存儲(chǔ)。 ? 除 CMP指令 外對(duì) R8~R15操作 均不改變 標(biāo)志位。 ? 訪問寄存器 R8R15外,受到一定的限制。 在大多數(shù)情況下,操作的結(jié)果須放入其中一個(gè)操作數(shù)寄存器中,而不是第三個(gè)寄存器中。 54 運(yùn)行速度和存儲(chǔ)器空間的比較 ? Thumb 代碼所需的存儲(chǔ)空間約為 ARM 代碼的 60%~ 70% ? Thumb 代碼使用的指令數(shù)比 ARM 代碼多約 30%~ 40% ? 若使用 32 位的存儲(chǔ)器, ARM 代碼比Thumb 代碼快約 40% ? 若使用 16 位的存儲(chǔ)器, Thumb 代碼比ARM 代碼快約 40%~ 50% ? 與 ARM 代碼相比較,使用 Thumb 代碼,存儲(chǔ)器的功耗會(huì)降低約 30% 55 Thumb指令集和 ARM指令集區(qū)別 分支指令 ? 程序相對(duì)轉(zhuǎn)移,特別是 條件轉(zhuǎn)移與 ARM代碼下的轉(zhuǎn)移相比,在范圍上受更多的限制,轉(zhuǎn)向子程序是無條件的轉(zhuǎn)移。 所有的 Thumb 指令都有對(duì)應(yīng)的 ARM 指令 , 而且Thumb 的編程模型也對(duì)應(yīng)于 ARM 的編程模型 , 按照規(guī)則編程時(shí)可實(shí)現(xiàn)相互調(diào)用 。 Thumb 指令集是 ARM 指令集的一個(gè)子集 , 允許指令編碼為 16 位的長度 。聲明代碼區(qū) SWI_WriteC EQU 0 ;輸出 r0中的字符 SWI_Exit EQU 11 ;程序結(jié)束 ENTRY ;代碼入口 START ADR r1,TEXT ; r1“ Hello World” LOOP LDRB r0,[r1],1 。 — BKPT 斷點(diǎn)中斷指令 BKPT 指令的格式為: BKPT 16 位的立即數(shù) BKPT 指令產(chǎn)生軟件斷點(diǎn)中斷 , 可用于程序的調(diào)試 。 操作系統(tǒng)在 SWI 的異常處理程序中提供相應(yīng)的系統(tǒng)服務(wù) , 指令中 24 位的立即數(shù)指定用戶程序調(diào)用系統(tǒng)例程的類型 。什么意思???? 50 ARM 的協(xié)處理器指令 主要用于 ARM 處理器初始化 ARM 協(xié)處理器的數(shù)據(jù)處理操作,以及在 ARM 處理器的寄存器和協(xié)處理器的寄存器之間傳送數(shù)據(jù),和在 ARM 協(xié)處理器的寄存器和存儲(chǔ)器之間傳送數(shù)據(jù)。 45 ARM指令集:跳轉(zhuǎn)指令 跳轉(zhuǎn)實(shí)現(xiàn)的兩種方法: 1)使用專門的跳轉(zhuǎn)指令 2)直接向 PC寫入跳轉(zhuǎn)地址 (保存斷點(diǎn), 4GB連續(xù)線性地址空間) ARM 指令集中的跳轉(zhuǎn)指令可以完成 從當(dāng)前指令向前或向后的 32MB 的地址空間的跳轉(zhuǎn), 包括以下 4 條指令: ? B 跳轉(zhuǎn)指令,例如: B Label ;程序無條件跳轉(zhuǎn)至 Label處 ? BL 帶返回的跳轉(zhuǎn)指令 ? BLX 帶返回和狀態(tài)切換的跳轉(zhuǎn)指令 ? BX 帶狀態(tài)切換的跳轉(zhuǎn)指令 46 ARM指令集:數(shù)據(jù)處理指令 傳送指令: 寄存器之間數(shù)據(jù)傳輸 ? MOV 數(shù)據(jù)傳送指令 ? MVN 數(shù)據(jù)取反傳送指令 比較指令: 不保存結(jié)果,只更新CPSR,即使不加 S也自動(dòng)更新 ? CMP 比較指令 ? CMN 反值比較指令 ? TST 位測試指令 ? TEQ 相等測試指令 算術(shù)指令: 保存結(jié)果,更新 CPSR標(biāo)志位 ? ADD 加法指令 ? ADC 帶進(jìn)位加法指令 ? SUB 減法指令 ? SBC 帶借位減法指令 ? RSB 逆向減法指令 ? RSC 帶借位的逆向減法指令 ? AND 邏輯與指令 ? ORR 邏輯或指令 ? EOR 邏輯異或指令 ? BIC 位清除指令 47 ARM指令集:乘法指令 乘法指令與乘加指令: ? MUL 32 位乘法指令 ? MLA 32 位乘加指令 ? SMULL 64 位有符號(hào)數(shù)乘法指令 ? SMLAL 64 位有符號(hào)數(shù)乘加指令 ? UMULL 64 位無符號(hào)數(shù)乘法指令 ? UMLAL 64 位無符號(hào)數(shù)乘加指令 例如: MLAS R0,R1,R2,R3 。 ④ 注意:以上 ARM尋址模式是適用于所有 ARM體系的,包括 ARM7的馮 .諾依曼結(jié)構(gòu)和 ARM9及以上的哈佛結(jié)構(gòu)。 ② ARM尋址的字加載 存儲(chǔ)尋址是 4字節(jié)對(duì)齊,半字加載是 2字節(jié)對(duì)齊,不對(duì)齊不能訪問。 注意: 不要以為空堆棧就是沒有內(nèi)容的堆棧,滿堆棧就是沒有空間的堆棧。 當(dāng)堆棧指針 指向最后壓入堆棧的數(shù)據(jù)時(shí) ,稱為滿堆棧( Full Stack),而當(dāng)堆棧指針 指向下一個(gè)將要放入數(shù)據(jù)的空位置時(shí) ,稱為 空堆棧( Empty Stack)。跳轉(zhuǎn)到子程序 NEXT處執(zhí)行 ……. NEXT ……. MOV PC, LR 。 41 ARM的尋址模式 6 跳轉(zhuǎn)尋址 相對(duì)尋址 以程序計(jì)數(shù)器 PC當(dāng)前值為基地址,指令中的標(biāo)號(hào)作為偏移量,將兩者相加之后得到操作數(shù)的有效地址。 這種尋址方式可以 用一條指令完成傳送最多 16 個(gè)通用寄存器的值。 注意:“!”表示數(shù)據(jù)傳輸完畢后,更新基址寄存器的值,但基址寄存器不能為 R15—PC。采用變址尋址方式的指令常見有以下幾種形式,如下所示: 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 中。 39 ARM的尋址模式 4 基址變址尋址 基址變址尋址 就是將寄存器(該寄存器一般稱作基址寄存器)的內(nèi)容與指令中給出的地址偏移量相加,從而得到一個(gè)操作數(shù)的有效地址。 例如以下指令: LDR R0, [R1] ; R0←[R1] STR R0, [R1] ; [R1]←R0 第一條指令將以 R1 的值為地址的存儲(chǔ)器中的數(shù)據(jù)傳送到 R0 中。以下指令: ADD R0, R1, R2 ; R0←R1 + R2 該指令的執(zhí)行效果是將寄存器 R1和 R2的內(nèi)容相加,其結(jié)果存放在寄存器 R0中。例如以下指令: ADD R0, R0,# 1 ; R0←R0 + 1 ADD R0, R0,# 0x3f ; R0←R0 + 0x3f 在以上兩條指令中,第二個(gè)源操作數(shù)即為立即數(shù), 要求以“?!睘榍熬Y,對(duì)于以十六進(jìn)制表示的立即數(shù),還要求在“#”后加上“ 0x”或“ ”。 35 ARM指令系統(tǒng)的概述 條件碼 助記符后綴 標(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置位 無符號(hào)數(shù)大于 1001 LS C清零 無符號(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í)行
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1