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

正文內(nèi)容

arm體系結(jié)構(gòu)與指令集(參考版)

2025-03-11 12:38本頁(yè)面
  

【正文】 指令格式如下: BKPT immediate 2.?dāng)帱c(diǎn)中斷指令 本 章 小 結(jié) 本章對(duì) ARM處理器的體系結(jié)構(gòu)、寄存器組織、流水線(xiàn)、 ARM存儲(chǔ)、異常、 ARM處理器的尋址方式、 ARM處理器的指令集等內(nèi)容進(jìn)行了介紹,這些內(nèi)容是 ARM處理器理論的基本內(nèi)容,是系統(tǒng)軟硬件設(shè)計(jì)的基礎(chǔ)。 1.軟件中斷指令 ( 1)指令的語(yǔ)法格式 SWI{cond} immed_24 ( 2)指令舉例 斷點(diǎn)中斷指令 ( BreakPoint, BKPT)產(chǎn)生一個(gè)預(yù)取異常( Prefetch Abort),它常被用來(lái)設(shè)置軟件斷點(diǎn),在調(diào)試程序時(shí)十分有用。 協(xié)處理器指令 表 220 協(xié)處理器指令 助 記 符 操 作 CDP 協(xié)處理器數(shù)據(jù)操作 LDC 裝載協(xié)處理器寄存器 MCR 從 ARM寄存器傳數(shù)據(jù)到協(xié)處理器寄存器 MRC 從協(xié)處理器寄存器傳送數(shù)據(jù)到 ARM寄存器 STC 存儲(chǔ)協(xié)處理器寄存器 ARM指令集中提供了兩條產(chǎn)生異常的指令,通過(guò)這兩條指令可以用軟件的方法實(shí)現(xiàn)異常。 ( 2)協(xié)處理器數(shù)據(jù)傳送指令。 ARM協(xié)處理器指令可分為以下 3類(lèi)。 【例 27】 堆棧指令初始化。 ( 1)指令的語(yǔ)法格式 MSR{cond} PSR_field,immed_8r MSR{cond} PSR_field,Rm ( 2)指令舉例 2. MSR 【 例 25】 使能 IRQ中斷。 在 ARM處理器中,只有 MRS指令可以將狀態(tài)寄存器 CPSR或 SPSR讀出到通用寄存器中。 ( 1)語(yǔ)法格式 BLX target_add ( 2)指令的使用 3. BLX帶狀態(tài)切換的連接跳轉(zhuǎn)指令 BLX ARM指令集提供了兩條指令,可直接控制程序狀態(tài)寄存器( Program State Register,PSR)。若 Rm的 bit[0]為 1,則跳轉(zhuǎn)時(shí)自動(dòng)將CPSR中的標(biāo)志位 T置位,即把目標(biāo)地址的代碼解釋為 Thumb代碼;若 Rm的位 bit[0]為 0,則跳轉(zhuǎn)時(shí)自動(dòng)將 CPSR中的標(biāo)志位 T復(fù)位,即把目標(biāo)地址代碼解釋為 ARM代碼。 指令的語(yǔ)法格式: SWP{cond}B Rd,Rm,[Rn] 3.交換指令 SWP應(yīng)用 跳轉(zhuǎn)( B)和跳轉(zhuǎn)連接( BL)指令是改變指令執(zhí)行順序的標(biāo)準(zhǔn)方式。 單數(shù)據(jù)交換指令 表 217 交換指令 SWP 指 令 作 用 操 作 SWP 字交換 tmp=men32[Rn] mem32[Rn]=Rm Rd=tmp SWPB 字節(jié)交換 tmp=men8[Rn] mem8[Rn]=Rm Rd=tmp SWP指令用于將內(nèi)存中的一個(gè)字單元和一個(gè)指定寄存器的值相交換。交換指令是一個(gè)原子操作( Atomic Operation),也就是說(shuō),在連續(xù)的總線(xiàn)操作中讀 /寫(xiě)一個(gè)存儲(chǔ)單元,在操作期間阻止其他任何指令對(duì)該存儲(chǔ)單元的讀 /寫(xiě)。允許一條指令傳送 16個(gè)寄存器的任何子集或所有寄存器。 指令的語(yǔ)法格式: STM{cond}addressing_mode Rn, registers ? LDM/STM批量加載 /存儲(chǔ)指令可以實(shí)現(xiàn)在一組寄存器和一塊連續(xù)的內(nèi)存單元之間傳輸數(shù)據(jù)。 指令的語(yǔ)法格式: STM{cond}addressing_mode Rn{!}, registers 2. STM指令 STM指令將指令中寄存器列表中的各寄存器數(shù)值寫(xiě)入到連續(xù)的內(nèi)存單元中。 指令的語(yǔ)法格式: LDM{cond}addressing_mode Rn, registers_without_pc?? STM指令將指令中寄存器列表中的各寄存器數(shù)值寫(xiě)入到連續(xù)的內(nèi)存單元中。 當(dāng) PC包含在 LDM指令的寄存器列表中時(shí),指令從內(nèi)存中讀取的字?jǐn)?shù)據(jù)將被作為目標(biāo)地址值,指令執(zhí)行后程序?qū)哪繕?biāo)地址處開(kāi)始執(zhí)行,從而實(shí)現(xiàn)了指令的跳轉(zhuǎn)。 指令的語(yǔ)法格式: LDR{cond}H Rd,addr_mode 5. LDRH指令 STRH指令從寄存器中取出指定的 16位半字放入寄存器的低 16位,并將寄存器的高位補(bǔ)0。 指令的語(yǔ)法格式: STR{cond}B Rd,addr_mode 4. STRB指令 LDRH指令用于從內(nèi)存中將一個(gè) 16位的半字讀取到目標(biāo)寄存器。 ( 1)指令的語(yǔ)法格式 STR{cond} Rd,addr_mode ( 2)指令舉例 2. STR指令 LDRB指令根據(jù) addr_mode所確定的地址模式將一個(gè) 8位字節(jié)讀取到指令中的目標(biāo)寄存器 Rd。 3.單寄存器交換指令( Single Register Swap) 單寄存器的 Load/Store指令 表 214 單寄存器 Load/Store指令 指令 作 用 操 作 LDR 把一個(gè)字裝入一個(gè)寄存器 Rd←mem32[address] STR 將存儲(chǔ)器中的字保存到寄存器 Rd→mem32[address] LDRB 把一個(gè)字節(jié)裝入一個(gè)寄存器 Rd←mem8[address] STRB 將寄存器中的低 8位字節(jié)保存到存儲(chǔ)器 Rd→mem8[address] LDRH 把一個(gè)半字裝入一個(gè)寄存器 Rd←mem16[address] STRH 將寄存器中的低 16位半字保存到存儲(chǔ)器 Rd→mem16[address] LDRBT 用戶(hù)模式下將一個(gè)字節(jié)裝入寄存器 Rd←mem8[address] under user mode STRBT 用戶(hù)模式下將寄存器中的低 8位字節(jié)保存到存儲(chǔ)器 Rd→mem8[address] under user mode LDRT 用戶(hù)模式下把一個(gè)字裝入一個(gè)寄存器 Rd←mem32[address]under user mode STRT 用戶(hù)模式下將存儲(chǔ)器中的字保存到寄存器 Rd→mem32[address] ]under user mode LDRSB 把一個(gè)有符號(hào)字節(jié)裝入一個(gè)寄存器 Rd←sign{mem8[address]} LDRSH 把一個(gè)有符號(hào)半字裝入一個(gè)寄存器 Rd←sign{mem16[address]} LDR指令用于從內(nèi)存中將一個(gè) 32位的字讀取到目標(biāo)寄存器。它們?cè)谟脩?hù)級(jí)編程中很少用到。它們用于進(jìn)程的進(jìn)入和退出、保存和恢復(fù)工作寄存器以及復(fù)制存儲(chǔ)器中的一塊數(shù)據(jù)。數(shù)據(jù)項(xiàng)可以是字節(jié)、 16位半字或 32位字。 ARM指令中有 3種基本的數(shù)據(jù)傳送指令。指令將Rm和 Rs中的值做有符號(hào)數(shù)相乘, 64位乘積與RdHi、 RdLo相加,結(jié)果的低 32位保存到 RsLo中,高 32位保存到 RdHi中。指令將 Rm和 Rs中的值做有符號(hào)數(shù)相乘,結(jié)果的低 32位保存到 RsLo中,高32位保存到 RdHi中。指令將Rm和 Rs中的值做無(wú)符號(hào)數(shù)相乘, 64位乘積與RdHi、 RdLo相加,結(jié)果的低 32位保存到 RsLo中,高 32位保存到 RdHi中。它將 Rm和 Rs中的值做無(wú)符號(hào)數(shù)相乘,結(jié)果的低 32位保存到 RsLo中,高 32位保存到 RdHi中。 ( 1)指令的語(yǔ)法格式 MUL{cond}{S} Rd,Rm,Rs ( 2)指令舉例 1. MUL指令 MLA( Multiply Accumulate) 32位乘 —累加指令將 Rm和 Rs中的值相乘,再將乘積加上第 3個(gè)操作數(shù),結(jié)果的最低 32位保存到 Rd中。另外一些版本只將最低有效 32位存放到一個(gè)寄存器中。兩個(gè)32位二進(jìn)制數(shù)相乘的結(jié)果是 64位的積。 ( 1)指令的語(yǔ)法格式 ORR{cond}{S} Rd,Rn,shifter_operand ( 2) ORR指令舉例 15. ORR指令 BIC( Bit Clear)位清零指令,將寄存器 Rn的值與第 2個(gè)源操作數(shù) shifter_operand的值的反碼按位做“邏輯與”操作,結(jié)果保存到 Rd中。 ( 1)指令的語(yǔ)法格式 CMP{cond} Rn,shifter_operand ( 2) CMP指令舉例 13. CMP指令 CMN( Compare Negative)指令使用寄存器 Rn的值減去 operand2的負(fù)數(shù)值(加上operand2),根據(jù)操作的結(jié)果更新 CPSR中相應(yīng)的條件標(biāo)志位,以便后面的指令根據(jù)相應(yīng)的條件標(biāo)志來(lái)判斷是否執(zhí)行。以便后面的指令根據(jù)相應(yīng)的條件標(biāo)志來(lái)判斷是否執(zhí)行。 ( 1)指令的語(yǔ)法格式 TST{cond} Rn,shifter_operand ( 2) TST指令舉例 11. TST測(cè)試指令 TEQ( Test Equivalence)指令用于將一個(gè)寄存器的值和一個(gè)算術(shù)值做比較。 ( 1)指令的語(yǔ)法格式 RSC{cond}{S} Rd,Rn,shifter_operand ( 2) RSC指令舉例 10. RSC指令 TST( Test)測(cè)試指令用于將一個(gè)寄存器的值和一個(gè)算術(shù)值進(jìn)行比較。該指令從寄存器 Rn中減去 shifter_operand表示的數(shù)值,再減去寄存器 CPSR中 C條件標(biāo)志位的反碼[ NOT( Carry flag)],并將結(jié)果保存到目標(biāo)寄存器 Rd中,并根據(jù)指令的執(zhí)行結(jié)果設(shè)置 CPSR中相應(yīng)的標(biāo)志位。 ( 1)指令的語(yǔ)法格式 ADD{cond}{S} Rd,Rn,shifter_operand ( 2) ADD指令舉例 7. ADD指令 ADC指令將寄存器 shifter_operand的值加上 Rn表示的數(shù)值,再加上 CPSR中的 C條件標(biāo)志位的值,將結(jié)果保存到目標(biāo)寄存器 Rd中,并根據(jù)指令的執(zhí)行結(jié)果設(shè)置 CPSR中相應(yīng)的標(biāo)志位。 ( 1)指令的語(yǔ)法格式 SUB{cond}{S} Rd,Rn,shifter_operand ( 2) SUB指令舉例 5. SUB指令 RSB( Reverse Subtract)指令從寄存器shifter_operand中減去 Rn表示的數(shù)值,并將結(jié)果保存到目標(biāo)寄存器 Rd中,并根據(jù)指令的執(zhí)行結(jié)果設(shè)置 CPSR中相應(yīng)的標(biāo)志位。 ( 1)指令的語(yǔ)法格式 AND{cond}{S} Rd,Rn,shifter_operand ( 2)指令舉例 3. AND指令 EOR( Exclusive OR)指令將寄存器 Rn中的值和 shifter_operand的值執(zhí)
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1