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

正文內(nèi)容

下載ppt文檔--wenkub.com

2024-10-13 20:53 本頁面
   

【正文】 107 尋址范圍: ? 當(dāng)?shù)刂分凳欠亲謱R時,取值范圍- 255~ 255字節(jié)之間; ? 當(dāng)?shù)刂分凳亲謱R時,取值范圍- 1020~ 1020字節(jié)之間。 反匯編代碼 源程序 偽指令 實(shí)際指令 編譯器 實(shí)際指令 實(shí)際指令 7. ARM偽指令 105 ARM偽指令有四條: ? 小范圍地址讀取指令: ADR ? 中等范圍地址讀取指令: ADRL ? 大等范圍地址讀取指令: LDR ? 空操作指令: NOP 106 ADR 小范圍的地址讀取偽指令 指令格式: ADR {cond} Rm, addr 功能: ADR指令將基于 PC相對偏移的地址值或基于寄存器相對偏移的地址值讀取到寄存器中。 所以,在 SWI異常處理子程序中執(zhí)行 LDR R0, [LR,4]語句,實(shí)際就是把產(chǎn)生本次 SWI異常的 SWI指令的內(nèi)容 (如:SWI 0x98)裝進(jìn) R0寄存器。BIC R0,R0,0xff000000來獲得那個 24位立即數(shù) (LR中保存的是SWI 0x123456的下一條指令地址,也就是軟中斷返回地址 ),然后做進(jìn)一步處理 獲得 SWI指令的立即數(shù)(續(xù)) T_bit EQU 0x20 SWI_Handler STMFD SP!, {R0- R3, R12, LR};現(xiàn)場保護(hù) MRS R0, SPSR ;讀取 SPSR STMFD SP!, {R0} ;保存 SPSR TST R0, T_bit ;測試 T標(biāo)志位,CPSR第 M5位 ; T=1表明執(zhí)行 Thumb指令 LDREQH R0, [LR,- 2] ;若是 Thumb指令,則讀取指令碼 (16位 ) BICEQ R0, R0,0xFF00 ;取得 Thumb指令的 8位立即數(shù) LDRNE R0, [LR,- 4] ;若是 ARM指令,則讀取指令碼 (32位 ) BICNE R0, R0, 0xFF000000 ;取得 ARM指令的 24位立即數(shù) … LDMFD SP!, {R0- R3, R12, PC} ; SWI異常中斷返回 指令 指令所在地址 ADD R2, R1, R3 。本指令主要是為編寫操作系統(tǒng)而提供。 CPSR[7…0]=0xD3 ,即切換到管理模式 MSR CPSR_cxsf, R3 。 傳送 SPSR的內(nèi)容到 R2 96 MSR 狀態(tài)寄存器 寫指令 指令格式: 11010011 MSR {cond} CPSR|SPSR_fields, Rm|immed 功能: MSR指令用于將操作數(shù)的內(nèi)容傳送到程序狀態(tài)寄存器的 特定域中 。該指令用于處理器狀態(tài)切換。) 說明: B指令的跳轉(zhuǎn)范圍 :32M~+32M 88 BL 帶返回的分支指令 指令格式: BL {cond} label 功能: BL( Branch with Link)指令先將下一條指令的地址拷貝到 R14(即 LR鏈接寄存器 )中,然后跳轉(zhuǎn)到標(biāo)號指定地址運(yùn)行程序。 分支指令 BL 。未設(shè)置的掩碼位則表示不檢查。同樣,后面的指令就可以根據(jù)條件標(biāo)志位來決定是否執(zhí)行 。程序 Fun0 的入口地址 DCD Fun1 。 82 2020/11/23 CMP指令示例 : CMP R0, 10 CMP R0, 3 。 位測試指令 TEQ 。 對于比較指令, 不需要使用 S后綴就可以改變標(biāo)志位的值。 ? 該指令常用于將操作數(shù)的特定位取反的操作 EOR R0, R0, 0x0F ; R0=R0⊕ 0x0F,實(shí)現(xiàn)將 R0的低 4位按位取反 79 2020/11/23 BIC 位清除指令 指令格式: BIC {cond} {S} Rd, Rn, operand2 功能: BIC( BIt Clear)指令將 Rn的值和operand2的值的反碼進(jìn)行按位邏輯 ? 與 ? 操作,結(jié)果保存到目標(biāo)寄存器( Rd)。 求某 64位數(shù)據(jù)( R1, R0)的負(fù)數(shù)補(bǔ)碼并存放到( R3, R2) RSBS R2, R0, 0 RSC R3, R1, 0 76 AND 邏輯與指令 指令格式: AND {cond} {S} Rd, Rn, operand2 功能: 本指令將 Rn的值與 operand2的值進(jìn)行按位邏輯 ? 與 ? 操作,結(jié)果保存到目標(biāo)寄存器( Rd)。即 Rd = Rn operand2 !C 74 ? 使用 ARM處理器進(jìn)行 2個 64bit數(shù)的減法運(yùn)算。 72 ? 使用 ARM處理器進(jìn)行 2個 64bit數(shù)的加法運(yùn)算。 ? 算術(shù)運(yùn)算指令包括: ① ADD ——加法指令 ② SUB ——減法指令 ③ RSB ——逆向減法指令 ④ ADC ——帶進(jìn)位加法指令 ⑤ SBC ——帶借位減法指令 ⑥ RSC ——帶借位的逆向減法指令 邏輯運(yùn)算指令包括:① ND 邏輯 ? 與 ? 指令 ② ORR 邏輯 ? 或 ? 指令 ③ EOR 邏輯 ? 異或 ? 指令 ④ BIC——位清除指令 68 ADD 加法指令 指令格式: ADD {cond} {S} Rd, Rn, operand2 功能:本指令將 operand2的值與 Rn的值相加,結(jié)果保存到目標(biāo)寄存器( Rd)。 64 1 數(shù)據(jù)傳送指令 ? 數(shù)據(jù)傳送指令主要用于將一個寄存器中的數(shù)據(jù)傳送到另一個寄存器,或者將一個立即數(shù)傳送到寄存器,這類指令通常用來設(shè)置寄存器的初始值。 61 LDM/STM各種后綴尋址方式的比較 增長的方向 增長的先后 向上生長 向下生長 滿 空 滿 空 地址增加 指令執(zhí)行之前 STMIB STMFA LDMIB LDMED 指令執(zhí)行之后 STMIA STMEA LDMIA LDMFD 地址減少 指令執(zhí)行之前 LDMDB LDMEA STMDB STMFD 指令執(zhí)行之后 LDMDA LDMFA STMDA STMED 62 SWP —(單一數(shù)據(jù))寄存器和存儲器交換指令 ? SWP( SWaP data between registers and memory)指令用于將寄存器 Rn指向的存儲器單元的內(nèi)容讀取到寄存器 Rd中,同時將寄存器 Rm的內(nèi)容寫入到該存儲器單元中, Rd和 Rm可以是同一個寄存器。 指令格式: LDM{cond}模式 Rn{!}, reglist{^} STM{cond}模式 Rn{!}, reglist{^} 58 L D MS T M{ c o n d } 模 式 R n { ! } , r e g l i s t { ^ }讀 操 作LDM 寫 操 作STM 條 件 碼 , 使 指 令可 以 條 件 執(zhí) 行{cond} 〈 模式 〉 用 于 控 制 指 針 的 生長 方 向 和 空 滿 特 性指 針 寄 存 器 , 指 向 要 操 作 的 存儲 器 起 始 地 址 , 不 能 為 R 1 5Rn 控 制 是 否 修 改 指 針 寄 存 器 的 最 后 值{ ! } 操 作 寄 存 器 列 表 , 讀 操 作 時 為 目 標(biāo)寄 存 器 , 寫 操 作 時 為 源 寄 存 器reglist 寄 存 器 列 表 中 無 P C 時 用 于 控 制 用 戶 模 式 訪 問 ,否 則 用 S P S R 的 值 恢 復(fù) C P S R 寄 存 器{ ^} 59 〈 模式 〉 類型: ? 用于數(shù)據(jù)的存儲與讀取有以下幾種情況: IA 每次傳送后地址值加 IB 每次傳送前地址值加 DA 每次傳送后地址值減 DB 每次傳送前地址值減 ? 用于堆棧操作時有如下幾種情況: FD 滿遞減堆棧 ED 空遞減堆棧 FA 滿遞增堆棧 EA 空遞增堆棧 60 !后綴: 選用該后綴 , 則當(dāng)數(shù)據(jù)加載與存儲完畢后 , 將最后的地址寫入基址寄存器 , 否則基址寄存器的內(nèi)容不變。 不能使用后綴“ !”。 例如: LDR Rd, [Rn, 0x04]! LDR Rd, [Rn, 0x04] 55 ( 2)后索引 后索引也稱為后變址,后索引就是用基址寄存器的地址值尋址,找出操作數(shù)進(jìn)行操作, 操作完成后 , 再把地址偏移量和基址相加 /減 , 結(jié)果送到基址寄存器 , 作為下一次尋址的基址。如: LDR R0, [R1, R2] LDR R0, [R1, R2] 地址偏移量有如下幾種表示形式: 52 ( 3)寄存器及移位常數(shù) 這種格式由一個通用寄存器和一個立即數(shù)組成,寄存器中的數(shù)值可以根據(jù)指令中的移位標(biāo)志以及移位常數(shù)作一定的移位操作,生成一個地址偏移量。 ARM處理器是馮 ?諾依曼存儲結(jié)構(gòu),程序空間、 RAM空間及 I/O映射空間統(tǒng)一編址,除對 RAM操作以外,對外圍 IO、程序數(shù)據(jù)的訪問均要通過加載 /存儲指令進(jìn)行。 ? Operand2 第 2個操作數(shù),用于指定參與運(yùn)算的第 2個操作數(shù)。 ? cond 執(zhí)行條件,用于指定指令的執(zhí)行條件。 ( 3)條件后綴要測試的是執(zhí)行前的標(biāo)志位,而 S后綴是依據(jù)指令的結(jié)果改變條件標(biāo)志。 43 C代碼: if (a b) a++ ; else b++ ; 對應(yīng)的匯編代碼: CMP R0, R1 。 42 ① ADD R0, R1, R2 ② ADDS R0, R1, R2 ③ ADDEQS R0, R1, R2 指令 ① 不帶條件標(biāo)志 (無條件 AL),指令的執(zhí)行 不受條件標(biāo)志位的影響。 ③ ARM多寄存器的尋址模式 可以加快某些程序的執(zhí)行效率。 指令如 LDMFD、 STMFD等; ?空遞減 :堆棧向下增長 , 堆棧指針向堆棧下的第一個空位置 。 34 棧底 棧頂 棧區(qū) SP? 堆棧存儲區(qū) 棧頂 棧底 棧區(qū) ?SP 向下增長 向上增長 0x12345678 0x12345678 堆棧壓棧 堆棧壓棧 ?遞增堆棧和遞減堆棧 35 2020/11/23 棧頂 SP? 棧頂 SP? 棧底 空堆棧 棧底 滿堆棧 堆棧指針指向最后壓入的堆棧的有效數(shù)據(jù)項(xiàng) , 稱為 滿堆棧 ;堆棧指針指向下一個待壓入數(shù)據(jù)的空位置 , 稱為 空堆棧 。從子程序中返回 33 ARM的尋址模式 7 堆棧尋址 堆棧是一種數(shù)據(jù)結(jié)構(gòu) ,按 先進(jìn)后出 ( 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。 LDMIA R1!, {R2R7, R12} 。其中基址寄存器是程序計(jì)數(shù)器 PC,而不是通用的寄存器。 將 R1+R2指向的存儲器單元內(nèi)容 。 內(nèi)容加載到 R0中 STR R0, [R1, 4]! 。 在第二條指令中,將寄存器 R1 的內(nèi)容加上 4 形
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1