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

正文內(nèi)容

[教育學(xué)]第三章arm指令系統(tǒng)(編輯修改稿)

2025-02-17 13:10 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 {cond}SH Rd, 地址 ;加載指定地址上的有符號(hào)半字到 Rd中,高 16位用符號(hào)位擴(kuò)展。 STR{cond}H Rd, 地址 ;存儲(chǔ) Rd中的低 16位半字?jǐn)?shù)據(jù)。 存儲(chǔ)有符號(hào)數(shù)據(jù)和無(wú)符號(hào)數(shù)據(jù)之間沒有差別。 ( 2)兩點(diǎn)說(shuō)明: – 符 號(hào) 位 ——有符號(hào)字節(jié)或有符號(hào)半字的加載,用 “符號(hào)位 ”擴(kuò)展到 32位;無(wú)符號(hào)半字傳送是用 0擴(kuò)展到 32位。 – 地址對(duì)齊 ——對(duì)半字傳送的地址必須為偶數(shù)。非半字對(duì)齊的半字加載將使 Rd內(nèi)容不可靠;非半字對(duì)齊的半字存儲(chǔ)將使指定地址的 2字節(jié)存儲(chǔ)內(nèi)容不可靠。 ( 3)指令舉例 LDRSB R1, [R0, R3] ;將 R0+R3地址上的字節(jié)數(shù)據(jù)讀到R1,高 24位用符號(hào)位擴(kuò)展。 LDRSH R1, [R9] ;將 R9地址上的半字?jǐn)?shù)據(jù)讀出到 R1,高16位用符號(hào)位擴(kuò)展。 LDRH R6, [R2], 2 ;將 R2地址上的半字?jǐn)?shù)據(jù)讀出到 R6,高 16位用零擴(kuò)展,然后修改 R2=R2+2。 STRH R1, [R0, 2]! ;將 R1的數(shù)據(jù)保存到 R0+2地址中,只存儲(chǔ)低 2字節(jié)數(shù)據(jù),并且修改 R0=R0+2。 二、 多寄存器的存取指令 LDM和 STM指令 可以實(shí)現(xiàn)在一組寄存器和一塊連續(xù)的內(nèi)存單元之間存 /取數(shù)據(jù) 。 LDM為加載多個(gè)寄存器; STM為存儲(chǔ)多個(gè)寄存器 。 這兩條指令 , 允許傳送 16個(gè)寄存器 R0R15的任何子集或所有寄存器 。 指令格式 ? LDM{cond}模式 Rn{!}, reglist{^} ? STM{cond} 模式 Rn{!}, reglist{^} 指令格式說(shuō)明 ( 1) Rn: 表示基址寄存器 , 裝有傳送數(shù)據(jù)的初始地址 , Rn不允許為 R15( 即 PC) 。 ( 2) Rn后綴 “!”:表示最后的地址寫回到 Rn中 。 ( 3) Reglist: 表示寄存器列表 , 可包含多個(gè)序號(hào)連續(xù)的或者分離的寄存器 , 用 “, ”分開 。 – 格式例子: {R1, R2, R6~R9} – 列表寄存器和存儲(chǔ)器地址的關(guān)系規(guī)則: 編號(hào)低的寄存器對(duì)應(yīng)于存儲(chǔ)器中低地址單元 , 編號(hào)高的寄存器對(duì)應(yīng)于存儲(chǔ)器中高地址單元 。 ( 4) 后綴 “^”說(shuō)明 – 寄存器列表不包含 PC: 使用后綴 “^”進(jìn)行數(shù)據(jù)傳送且時(shí) , 加載/存儲(chǔ)的是用戶模式的寄存器 , 而不是當(dāng)前模式的寄存器 。 – 寄存器列表包含有 PC: 除了正常的多寄存器傳送外 , 還要將 SPSR拷貝到 CPSR中 。 該用法可用于異常處理返回 。 – 禁用情況: 后綴 “^”不允許在用戶模式或系統(tǒng)模式下使用 , 因?yàn)樗鼈儧]有 SPSR 。 ( 5)當(dāng) Rn在寄存器列表中且使用后綴“!” – 對(duì)于 STM指令,若 Rn為寄存器列表中的最低數(shù)字的寄存器,則會(huì)將 Rn的初值保存; – 其它情況下 Rn的加載值和存儲(chǔ)值不可預(yù)知。 ( 6)地址字對(duì)齊 ——這些指令尋址是字對(duì)齊的,即忽略地址位 [1:0]。 ( 7) 關(guān)于模式項(xiàng) LDM/STM的主要用途是現(xiàn)場(chǎng)保護(hù) 、 數(shù)據(jù)復(fù)制和參數(shù)傳送等 。 其模式有如下 8種 ( 前面 4種用于數(shù)據(jù)塊的傳輸 ( 為存儲(chǔ)操作 ) , 后面 4種是堆棧操作 ): ?IA: 先傳、后地址加 4; ?IB: 先地址加 4 、后傳; ?DA:先傳、后地址減 4; ?DB:先地址減 4 、后傳; ?FD: 滿遞減堆棧,先地址減 后傳,與 DB對(duì)應(yīng); ?ED: 空遞減堆棧,先傳、后地址減 4,與 DA對(duì)應(yīng); ?FA: 滿遞增堆棧,先地址加 后傳,與 IB對(duì)應(yīng); ?EA: 空遞增堆棧,先傳、后地址加 4,與 IA對(duì)應(yīng)。 ( 7) 關(guān)于模式項(xiàng) LDM/STM的主要用途是現(xiàn)場(chǎng)保護(hù) 、 數(shù)據(jù)復(fù)制和參數(shù)傳送等 。 其模式有如下 8種 ( 前面 4種用于數(shù)據(jù)塊的傳輸 ( 為加載寄存器 ), 后面 4種是堆棧操作 ): ?IA: 先傳、后地址加 4; ?IB: 先地址加 4 、后傳; ?DA:先傳、后地址減 4; ?DB:先地址減 4 、后傳; ?FD: 滿遞減堆棧,先減地址、后傳,與 IA對(duì)應(yīng); ?ED: 空遞減堆棧,先傳、后減地址,與 IB對(duì)應(yīng); ?FA: 滿遞增堆棧,先加地址、后傳,與 DA對(duì)應(yīng); ?EA: 空遞增堆棧,先傳、后加地址,與 DB對(duì)應(yīng)。 應(yīng)用舉例 ? LDMIA R0!, {R3 R9} ;加載 R0指向地址上的多字?jǐn)?shù)據(jù),保存到R3~R9中, R0值更新。 ? STMIA R1!, {R3 R9} ;將 R3~ R9的數(shù)據(jù)存儲(chǔ)到 R1指向的地址上,R1值更新 。 ? STMFD SP!, {R0 R7, LR} ;現(xiàn)場(chǎng)保存,將 R0~ R LR入棧, SP值更新 。 ? LDMFD SP!, {R0 R7, PC} ;恢復(fù)現(xiàn)場(chǎng),包括 CPSR,異常處理返回, SP值更新。 三、 單寄存器交換指令( SWP) SWP指令 用于將一個(gè)存儲(chǔ)單元 (該單元地址放在寄存器Rn中 )的內(nèi)容讀取到一個(gè)寄存器 Rd中,同時(shí)將另一個(gè)寄存器 Rm的內(nèi)容寫入到該存儲(chǔ)單元中。 指令格式 SWP{cond}{B} Rd, Rm, [Rn] – B為可選后綴 ,若有 B,則交換字節(jié),否則交換 32位字 – Rd為被加載的寄存器 – Rm的數(shù)據(jù) 用于存儲(chǔ)到 Rn所指的地址中 若 Rm與 Rd相同 ,則為寄存器與存儲(chǔ)器內(nèi)容進(jìn)行交換 – Rn為要進(jìn)行數(shù)據(jù)交換的存儲(chǔ)器地址, Rn不能與 Rd和Rm相同。 指令舉例 ? SWP R1, R1, [R0] ;將 R1的內(nèi)容與 R0指向的存儲(chǔ)單元的內(nèi)容進(jìn)行交換。 ? SWPB R1, R2, [R0] ;將 R0指向的存儲(chǔ)單元的內(nèi)容讀取 1字節(jié)數(shù)據(jù)到 R1中 (高 24位清零 ),并將 R2的內(nèi)容寫入到該內(nèi)存單元中 (最低字節(jié)有效 ) 數(shù)據(jù)處理指令 主要內(nèi)容 數(shù)據(jù)處理指令概述 算術(shù)運(yùn)算指令 邏輯運(yùn)算指令 數(shù)據(jù)傳送指令 比較指令 測(cè)試指令 數(shù)據(jù)處理指令概述 ARM數(shù)據(jù)處理指令的功能 主要完成寄存器中數(shù)據(jù)的算術(shù)和邏輯運(yùn)算操作 。 ARM數(shù)據(jù)處理指令的特點(diǎn) – 操作數(shù)來(lái)源: 所有的操作數(shù)要么來(lái)自寄存器,要么來(lái)自立即數(shù),不會(huì)來(lái)自存儲(chǔ)器。 – 操作結(jié)果: 如果有結(jié)果,則結(jié)果一定是為 32位寬、或 64位寬(長(zhǎng)乘法指令),并且放在一個(gè)或兩個(gè)寄存器中,不會(huì)寫入存儲(chǔ)器。 – 有第二個(gè)操作數(shù)(除了乘法指令) Operand2 :切記其三種形式:立即數(shù)、寄存器、寄存器移位。 – 乘法指令的操作數(shù): 全部是寄存器。 ARM數(shù)據(jù)處理指令分類 22條可分為 5類: – 算術(shù)運(yùn)算指令: ADD ADC SUB SBC RSB RSC MUL MLA UMULL UMLAL SMULL SMLAL – 邏輯運(yùn)算指令: AND ORR EOR BIC – 數(shù)據(jù)傳送指令: MOV MVN – 比較指令: CMP CMN – 測(cè)試指令: TST TEQ 上述指令只能對(duì)寄存器操作,不能針對(duì)存儲(chǔ)器。 數(shù)據(jù)處理指令對(duì)程序狀態(tài)寄存器 CPSR的影響 ( 1)選擇 “S”后綴問(wèn)題: 指令中可以選擇 s后綴,以影響狀態(tài)標(biāo)志。但是比較指令( cmp、 cmn、 tst和 teq)不需要后綴 S,它們總會(huì)直接影響 CPSR中的狀態(tài)標(biāo)志。 ( 2)對(duì) CPSR中標(biāo)志位的影響: – N標(biāo)志位: 如果結(jié)果為負(fù),則N標(biāo)志位置1;否則清0。 – Z標(biāo)志位: 如果結(jié)果為0,則Z標(biāo)志位置1;否則清0。 – C標(biāo)志位: 如果是加、減運(yùn)算指令或比較指令時(shí),C標(biāo)志位設(shè)置為ALU的進(jìn)位輸出;否則設(shè)置為移位器的移位輸出。如果不需要移位,則C保持不變。 – V標(biāo)志位: 在非加減操作中,V標(biāo)志位保持原值。在加減操作中,如果有溢出,則置1;不發(fā)生溢出,則清0。 ( 3)關(guān)于恢復(fù) CPSR原值問(wèn)題: 如果指令帶有 S后綴 (除了比較指令以外), 同時(shí)又以 PC為目標(biāo)寄存器進(jìn)行操作, ? 在異常模式下: 則操作的同時(shí)從 SPSR恢復(fù) CPSR。比如: – movs pc, 0xff /* cpsr = spsr。 pc = 0xff */ – adds pc, r1, 0xffffff00 /* cpsr = spsr。 pc = r1 + 0xffffff00 */ – ands pc, r1, r2 /* cpsr = spsr。 pc = r1 amp。 r2。 */ ? 在 user或者 system模式: 會(huì)產(chǎn)生不可預(yù)料的結(jié)果,因?yàn)樵谶@兩種模式下沒有 SPSR。 數(shù)據(jù)處理指令的二進(jìn)制編碼 add r0, r1, 0xff add r0, r1, r1, LSL r2 add r0, r1, r1, LSL 31 數(shù)據(jù)處理指令的詳細(xì)列表 (未含 6條乘法指令) 操作碼 [24: 21] 助記符 意 義 效 果 0000 AND 邏輯位與 Rd = Rn AND Op2 0001 EOR 邏輯位異或 Rd = Rn EOR Op2 0010 SUB 減 Rd = Rn Op2 0011 RSB 反向減 Rd = Op2 – Rn 0100 ADD 加 Rd = Rn + Op2 0101 ADC 帶進(jìn)位加 Rd = Rn + Op2 + C 0110 SBC 帶進(jìn)位減 Rd = Rn Op2 + C 1 0111 RSC 反向帶進(jìn)位減 Rd = Op2 Rn + C 1 1000 TST 測(cè)試 根據(jù) Rn AND Op2設(shè)置條件碼 1001 TEQ 測(cè)試相等 根據(jù) Rn EOR Op2設(shè)置條件 1010 CMP 比較 根據(jù) Rn Op2設(shè)置條件碼 1011 CMN 負(fù)數(shù)比較 根據(jù) Rn + Op2設(shè)置條件碼 1100 ORR 邏輯位或 Rd = Rn OR Op2 1101 MOV 傳送 Rd = Op2 1110 BIC 位清零 Rd = Rn AND NOT Op2 1111 MVN 求反 Rd = NOT Op2 算術(shù)運(yùn)算指令 一、加減運(yùn)算指令 ADD——加法運(yùn)算指令 指令格式 ADD{cond}{S} Rd, Rn, operand2 ADD指令將 operand2的數(shù)據(jù)與 Rn的值相加,結(jié)果保存到 Rd寄存器。 指令舉例 ADDS R1, R1, 1 ; R1= R1+1 ADDS R3, R1, R2, LSL 2 ; R3=R1+R22 ADC——帶進(jìn)位加法指令 指令格式 ADC{cond}{S} Rd, Rn, operand2 ADC指令將 operand2的數(shù)據(jù)與 Rn的值相加,再加上 CPSR中的 C條件標(biāo)志位,結(jié)果保存到 Rd寄存器。 指令舉例 ADDS R4, R0, R2 ;使用 ADC實(shí)現(xiàn) 64位加法 ADC R5, R1, R3 ; (R R4)= (R R0)+(RR2) SUB——減法運(yùn)算指令 指令格式 SUB{cond}{S} Rd, Rn, operand2 SUB指令用寄存器 Rn減去 operand2,結(jié)果保存到 Rd中。 指令舉例 SUBS R0, R0, l ; R0= R01 SUB R6, R7, 0x10
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1