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

正文內(nèi)容

嵌入式系統(tǒng)第3章arm尋址方式與指令系統(tǒng)(參考版)

2025-05-16 01:07本頁面
  

【正文】 R0的第 0位和第 2位設(shè)置為 1,其余位不變 COMPUTER SCIENCE AND TECH。一般用于設(shè)置 Rn的特定幾位。保持 R0的第 0位和第 2位,其余位清 0 COMPUTER SCIENCE AND TECHNOLOGY 數(shù)據(jù)處理指令 16 16. ORR 邏輯或指令 ? 格式: ORR{cond}{S} Rd,Rn,op2。一般用于清除 Rn的特定幾位。R1= R2 R3的高 32位 +R1 ? 其中 R2, R3的值為 32位無符號數(shù) ? R1, R0的值為 64位無符號數(shù) COMPUTER SCIENCE AND TECHNOLOGY 數(shù)據(jù)處理指令 15 15. AND 邏輯與指令 ? 格式: AND{cond}{S} Rd,Rn,op2。 ? 例如: ? UMLAL R0,R1,R2,R3 ? 。R1= R2 R3的高 32位 ? 其中 R2, R3的值為無符號數(shù) COMPUTER SCIENCE AND TECHNOLOGY 數(shù)據(jù)處理指令 14 14. UMLAL 64位無符號數(shù)乘加指令 ? 格式: UMLAL {cond}{S} Rdl,Rdh,Rn,op2。 ? 例如: ? UMULL R0,R1,R2,R3 ? 。R1= R2 R3的高 32位 +R1 COMPUTER SCIENCE AND TECHNOLOGY 數(shù)據(jù)處理指令 13 13. UMULL 64位無符號數(shù)乘法指令 ? 格式: UMULL{cond}{S} Rdl,Rdh,Rn,op2。 ? 例如: ? SMLAL R0,R1,R2,R3 ? 。 ? 功能: Rdh Rdl= Rn op2+Rdh Rdl ? Rdh、 Rdl和 op2均為寄存器。R0= R2 R3的低 32位 ? 。 Rn和 op2的值為 32位的有符號數(shù)。R0= R1 R2+R3 COMPUTER SCIENCE AND TECHNOLOGY 數(shù)據(jù)處理指令 11 11. SMULL 64位有符號數(shù)乘法指令 ? 格式: SMULL{cond}{S} Rdl,Rdh,Rn,op2。 Rn、 op2和 op3的值為 32位的有符號數(shù)或無符號數(shù)。R0= R1 R2,結(jié)果影響寄存器 CPSR的值 COMPUTER SCIENCE AND TECHNOLOGY 數(shù)據(jù)處理指令 10 10. MLA 32位乘加指令 ? 格式: MLA{cond}{S} Rd,Rn,op2,op3。 Rn和 op2的值為 32位的有符號數(shù)或無符號數(shù)。 高 32位相減 COMPUTER SCIENCE AND TECHNOLOGY 數(shù)據(jù)處理指令 9 9. MUL 32位乘法指令 ? 格式: MUL{cond}{S} Rd,Rn,op2。 ? 例如: ? 前提條件與 SBC例子相同,操作數(shù) 1操作數(shù) 2的實(shí)現(xiàn)語句需改為: ? SUBS R0,R2,R4。 高 32位相減 COMPUTER SCIENCE AND TECHNOLOGY 數(shù)據(jù)處理指令 8 8. RSC 帶借位的反向減法指令 ? 格式: RSC{cond}{S} Rd,Rn,op2。 ? 64位的減法(第一個操作數(shù)減去第二個操作數(shù))可由以下語句實(shí)現(xiàn): ? SUBS R0,R2,R4。 ? SUB和 SBC生成進(jìn)位標(biāo)志的方式不同于常規(guī),如果需要借位則清除進(jìn)位標(biāo)志,所以指令要對進(jìn)位標(biāo)志進(jìn)行一個非操作。R0=R2左移 5位 R1 COMPUTER SCIENCE AND TECHNOLOGY 數(shù)據(jù)處理指令 7 7. SBC 帶借位減法指令 ? 格式: SBC{cond}{S} Rd,Rn,op2。R0=5R1 ? RSB R0,R1,R2 。 ? 功能: 同 SUB指令,但倒換了兩操作數(shù)的前后位置,即 Rd= op2Rn。R0=R1R2 ? SUB R0,R1,R2,LSL# 5 。 ? 例如: ? SUB R0,R1,# 5 。高 32位相加 COMPUTER SCIENCE AND TECHNOLOGY 數(shù)據(jù)處理指令 5 5. SUB 減法指令 ? 格式: SUB{cond}{S} Rd,Rn,op2。 ? 64位的加法可由以下語句實(shí)現(xiàn): ? ADDS R0,R2,R4 。該指令用于實(shí)現(xiàn)超過 32位的數(shù)的加法。R0=R1+R2左移 5位 COMPUTER SCIENCE AND TECHNOLOGY 數(shù)據(jù)處理指令 4 4. ADC 帶進(jìn)位加法指令 ? 格式: ADC{cond}{S} Rd,Rn,op2。R0=R1+5 ? ADD R0,R1,R2 。 ? 功能: Rd= Rn+op2 ? op2可以是寄存器,被移位的寄存器或立即數(shù)。 ? 例如: ? MVN R0,# 0 。R0=R1左移 5位 COMPUTER SCIENCE AND TECHNOLOGY 數(shù)據(jù)處理指令 2 2. MVN 數(shù)據(jù)取反傳送指令 ? 格式: MVN{cond}{S} Rd,op1。R0=5 ? MOV R0,R1 。 ? 功能: Rd= op1 ? op1可以是寄存器、被移位的寄存器或立即數(shù)。 ? 例: STMFD R13!, {R0,R1,R2,R3,R4}; LDMFD R13!, {R0,R1,R2,R3,R4} ? 第一條指令,將 R0- R4中的數(shù)據(jù)壓入堆棧,R13為堆棧指針; ? 第二條指令,將數(shù)據(jù)出棧,恢復(fù) R0- R4原先的值。 COMPUTER SCIENCE AND TECHNOLOGY 堆棧尋址 ? 堆棧尋址用于數(shù)據(jù)棧與寄存器組之間批量數(shù)據(jù)傳輸。 ? 例 : LDMIA R0, {R1R5}; STMIA R1, {R1R5}; ? 第一條指令從以 R0的值為起始地址的存儲單元中取出 5個字的數(shù)據(jù),第二條指令將取出的數(shù)據(jù)存入以 R1的值為起始地址的存儲單元中。該指令將以 R0為起始地址的 5個字?jǐn)?shù)據(jù)分別裝入 R1, R2, R3, R4, R5中。 ? 連續(xù)的寄存器間用“-”連接,否則用“,”分隔。 R0=[R1+R2] COMPUTER SCIENCE AND TECHNOLOGY 相對尋址 ? 相對尋址同基址變址尋址相似,區(qū)別只是將程序計(jì)數(shù)器 PC作為基址寄存器,指令中的標(biāo)記作為地址偏移量。 ? 例: LDR R0, [R1, # 5] 。 COMPUTER SCIENCE AND TECHNOLOGY ARM指令集的 5種位移操作 ? LSL邏輯左移 : Rx, LSL op1 ? LSR邏輯右移 : Rx, LSR op1 ? ASR算術(shù)右移 : Rx, ASR op1 ? ROR循環(huán)右移 : Rx, ROR op1 ? RRX帶擴(kuò)展的循環(huán)右移 : Rx, RRX 3 1003 1003 103 10C3 10 COMPUTER SCIENCE AND TECHNOLOGY 寄存器間接尋址 ? 寄存器中的值為操作數(shù)的物理地址 ,而實(shí)際的操作數(shù)存放在存儲器中 。 ? 移位的方式在指令中以助記符的形式給出,而移位的位數(shù)可用立即數(shù)或寄存器尋址方式表示。ARM指令普遍采用此種尋址方式。 ? 例 : ADD R0, R1, # 5; R0=R1+ 5 MOV R0, # 0x55; R0=0x55 ? 其中:操作數(shù) 5, 0x55就是立即數(shù),立即數(shù)在指令中要以 “ # ” 為前綴,后面跟實(shí)際數(shù)值。 ? ARM指令的條件域 cond有 16種類型。 ? 該指令的編碼格式為: 31~ 28 27~ 25 24~ 21 20 19~ 16 15~ 12 11~~~~~~~~~~0 cond opcode S Rn Rd op2 0000 001 0100 1 0001 0000 000000000010 COMPUTER SCIENCE AND TECHNOLOGY ARM指令的助記符 ? ARM指令在匯編程序中用助記符表示,一般ARM指令的助記符格式為: opcode{cond} {S} Rd,Rn,op2 其中: ? opcode 操作碼,如 ADD表示算術(shù)加操作指令; ? {cond} 決定指令執(zhí)行的條件域; ? {S} 決定指令執(zhí)行是否影響 CPSR寄存器的值; ? Rd 目的寄存器; ? Rn 第一個操作數(shù),為寄存器; ? op2 第二個操作數(shù)。為普通中斷向量分配空間 HandleRTC 4 HandleUTXD1 4 HandleUTXD0 4 . . . . . . HandleEINT3 4 HandleEINT2 4 HandleEINT1 4 HandleEINT0 4 。取出中斷向量的值,即服務(wù)程序的地址 str r9,[sp,8] ldmfd sp!,{r8r9,pc} 。HandleADC為普通中斷向量表的起始地址, add r9,r9,r8 。根據(jù) I_ISPR的值 b %B0 。 ? IRQ中斷服務(wù)程序代碼如下: IsrIRQ sub sp,sp,4 stmfd sp!,{r8r9} ldr r9,=I_ISPR ldr r9,[r9] 。將其寫入中斷向量 IRQ_SVC_VECTOR中 str r1,[r0] COMPUTER SCIENCE AND TECHNOLOGY bootloader源代碼外部中斷處理實(shí)例 ? 在 7種異常中斷中,外部中斷請求較特殊,它包括 26種中斷。此空間處為 RAM的地址 UDF_INS_VECTOR 4 SWI_SVC_VECTOR 4 INS_ABT_VECTOR 4 DAT_ABT_VECTOR 4 RESERVED_VECTOR 4 IRQ_SVC_VECTOR 4 FIQ_SVC_VECTOR 4 ldr r0, IRQ_SVC_VECTOR 。 ? IRQ_SVC_HANDLER處的代碼為: IRQ_SVC_HANDLER sub lr, lr, 4 stmfd sp!, {r0r3, lr} ldr r0, =IRQ_SVC_Vector ldr pc, [r0] COMPUTER SCIENCE AND TECHNOLOGY bootloader源代碼外部中斷處理實(shí)例 ? 中斷向量地址分配 (內(nèi)存表數(shù)據(jù)結(jié)構(gòu)說明): ? 中斷向量設(shè)置程序: MAP _ISR_STARTADDRESS 。0x0000001c ROM空間 COMPUTER SCIENCE AND TECHNOLOGY bootloader源代碼外部中斷處理實(shí)例 ? 在 IRQ_SVC_HANDLER中,處理器將通用寄存器和返回地址壓入堆棧,接著跳轉(zhuǎn)到外部中斷請求的中斷服務(wù)程序中。 b IRQ_SVC_HANDLER 。0x0000000c b DAT
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1