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

正文內(nèi)容

嵌入式系統(tǒng)概論—基于32位微處理器與實時操作系統(tǒng)第四講-展示頁

2024-10-10 21:09本頁面
  

【正文】 V指令語法: 〈 指令 〉 {〈 cond} {S} Rd, N 例: PRE r0= 5 , r2=6 MOV r0, r2 POST r0=6 ,r2=6 MOV r0, r2 r0 := r2 MVN r0, r2 r0 := not r2 13 桶形移位器 ALU 桶形移位器 Rd 結(jié)果 N 預(yù)處理 未預(yù)處理 Rm Rn 14 桶形移位器的使用 ? PRE r0=8, r2=5 ? MOV r0 ,r2, LSL 2(邏輯左移兩位: r22=r5*4) ? POST r0=20, r2=5 15 數(shù)據(jù)處理指令 ? 移位操作 ?在任何數(shù)據(jù)處理指令中 ,第二個寄存器操作數(shù)可以有應(yīng)用該操作數(shù)的移位操作 . ?邏輯移位 ?LSL:邏輯左移 ?字的最小位空位清零 ?LSR:邏輯右移字的最大位空位清零 . 16 桶形移位器操作 ? LSL:邏輯左移( Logical Shift Left)。1 嵌入式系統(tǒng)概論 — 基于 32位微處理器與實時操作系統(tǒng) 第四講 ARM指令集與編程 北京航空航天大學(xué) 機器人研究所 魏洪興 2 指令長度 ? 指令集可以是以下任一種 ? 32 bits 長 (ARM狀態(tài) ) ? 16 bits 長 (Thumb 狀態(tài) ) ? ARM7TDMI 支持 3種數(shù)據(jù)類型 ? 字節(jié) (8bit) ? 半字 (16bit) ? 字 (32bit) ? 字必須被排成 4個字節(jié)邊界對齊 ,半字必須被排列成 2個字節(jié)邊界對齊 3 ARM 指令集的特點 ? 向后兼容:新版本增加指令,并保持指令向后兼容; ? Loadstore 結(jié)構(gòu) * ? load/store –從存儲器中讀某個值 ,操作完后再將其放回存儲器中 ? 只對存放在寄存器的數(shù)據(jù)進行處理; ? 對于存儲器中的數(shù)據(jù),只能使用 load/store指令進行存取 4 指令格式 ? 指令格式 ? 3 地址指令格式 ? 在 ARM狀態(tài)中使用 ? 例 指令語法 目標寄存器(Rd) 源寄存器 1(Rn) 源寄存器 2(Rm) ADD r3,r1,r2 r3 r1 r2 5 ARM 指令分類 ? 數(shù)據(jù)處理指令 – 使用和改變寄存器的值 ? 數(shù)據(jù)傳送指令 – 把存儲器的值拷貝到寄存器中 (load) or 把寄存器中的值拷貝到存儲器中 (store) ? 控制流指令 ? 分支 ? 分支和鏈接 , 保存返回的地址 ,以恢復(fù)最先的次序 ? 軟件中斷指令 ? 程序狀態(tài)寄存器指令 ? 協(xié)處理器指令 6 ARM指令編碼格式 ? 說明 ? Cond ? 指令執(zhí)行的條件編碼 ? Opcode ? 指令操作符編碼 ? S ? 決定指令的操作是否影響 CPSR的值 ? Rd ? 操作目標寄存器編碼 ? Rn ? 包含第一操作數(shù)的寄存器編碼 ? Shifter_operand ? 表示第二操作數(shù) cond 001 opcode s Rn Rd Shifter_operand 31 28 27 25 24 21 20 19 16 15 12 11 8 7 0 7 ARM指令集 8 數(shù)據(jù)處理指令 1 ? 數(shù)據(jù)處理指令的類別 ? 算術(shù)操作 ? 按位邏輯操作 ? 寄存器移位操作 ? 比較操作 ? 操作數(shù) : 32bits 寬 。 有 3種指定操作數(shù)的方式 ? 來自寄存器 ? 第二操作數(shù)可以是常數(shù) (立即數(shù) ) ? 移位寄存器操作數(shù) ? 結(jié)果 : 32bits 寬 , 放在寄存器中 ? 長乘法產(chǎn)生 64位結(jié)果 9 數(shù)據(jù)處理指令 – 2* cond 0 0 operand 2 opcode S Rn Rd 31 28 27 26 25 24 21 20 19 16 15 12 1 1 0 目的寄存器 第一操作寄存器 設(shè) 置操作 碼 算 術(shù) /邏輯 功能 8bit 立即 數(shù) 1 25 1 1 8 7 0 rot Rm 1 1 7 6 5 4 3 0 shift Rm 0 25 1 1 8 7 6 5 4 3 0 Rs Sh 0 1 0 Sh immediate alignment immediate shift length shift type second operand register 移位寄存器 長 度 10 數(shù)據(jù)處理指令 3 O p c o d e[ 2 4 : 2 1 ]M n e m o n i c M e a n i n g E f f e c t0 0 0 0 A N D L o g i c a l b i t w i s e A N D R d : = R n A N D O p 20 0 0 1 E O R L o g i c a l b i t w i s e e x c l u s i v e O R R d : = R n E O R O p 20 0 1 0 S U B S u b t r a c t R d : = R n O p 20 0 1 1 R S B R e v e r s e s u b t r a c t R d : = O p 2 R n0 1 0 0 A D D A d d R d : = R n + O p 20 1 0 1 A D C A d d w i t h c a r r y R d : = R n + O p 2 + C0 1 1 0 S B C S u b t r a c t w i t h c a r r y R d : = R n O p 2 + C 10 1 1 1 R S C R e v e r s e s u b t r a c t w i t h c a r r y R d : = O p 2 R n + C 11 0 0 0 T S T T e s t S c c o n R n A N D O p 21 0 0 1 T E Q T e s t e q u i v a l e n c e S c c o n R n E O R O p 21 0 1 0 C M P C o m p a r e S c c o n R n O p 21 0 1 1 C M N C o m p a r e n e g a t e d S c c o n R n + O p 21 1 0 0 O R R L o g i c a l b i t w i s e O R R d : = R n O R O p 21 1 0 1 M O V M o v e R d : = O p 21 1 1 0 B I C B i t c l e a r R d : = R n A N D N O T O p 21 1 1 1 M V N M o v e n e g a t e d R d : = N O T O p 211 數(shù)據(jù)處理指令 4 ADD r0, r1, r2 r0 := r1 + r2 ADC r0, r1, r2 r0 := r1 + r2 + C SUB r0, r1, r2 r0 := r1 r2 SBC r0, r1, r2 r0 := r1 r2 + C 1 RSB r0, r1, r2 r0 := r2 – r1 RSC r0, r1, r2 r0 := r2 – r1 + C 1 算術(shù)操作 按位邏輯操作 AND r0, r1, r2 r0 := r1 and r2 ORR r0, r1, r2 r0 := r1 or r2 EOR r0, r1, r2 r0 := r1 xor r2 BIC r0, r1, r2 r0 := r1 and (not) r2 寄存器移位 MOV r0, r2 r0 := r2 MVN r0, r2 r0 := not r2 比較操作 CMP r1, r2 set cc on r1 r2 CMN r1, r2 set cc on r1 + r2 TST r1, r2 set cc on r1 and r2 TEQ r1, r2 set cc on r1 xor r2 12 數(shù)據(jù)處理指令 MOV ? MOV指令是把一個數(shù) N送到目標寄存器中, N可以是寄存器,也可以是立即數(shù)。寄存器中字的低端空出的位補 0。寄存器中字的高端空出的位補 0。算術(shù)移位的對象是帶符號數(shù),在移位過程中必須保持操作數(shù)的符號不變。若源操作數(shù)為負數(shù),則字的高端空出的位補 1。從字的最低端移出的位填入字的高端空出的位。操作數(shù)右移一位,空位(位 [31])用原 C標志填充。ff r8 := r7[7:0], amp。 carry out to C 20 ? ARM指令可以通過添加適當?shù)臈l件碼 后綴 來達到條件執(zhí)行的目的。 CMP r3,0 CMP r3,0 BEQ skip ADDNE r0,r1,r2 ADD r0,r1,r2 skip ? 默認情況下,數(shù)據(jù)處理指令不影響 程序狀態(tài)寄存器 的條件碼標志位,但可以選擇通過添加“ S‖來影響標志位。 loop … SUBS r1,r1,1 BNE loop 條件執(zhí)行及標志位 ** 如果 Z標志清零則跳轉(zhuǎn) R1減 1,并設(shè)置標志位 21 Condition Codes 不等于( Not equal) 無符號的大于或等于 無符號的小于 負數(shù)( Minus) 等于( Equal) 溢出( Overflow) 沒溢出 無符號的大于 無符號的小于或大于 正數(shù)或零 小于( Less Than) 大于( Greater Than) 小于等于 總是執(zhí)行( Always) 大于等于 EQ NE CS/HS CC/LO PL VS HI LS GE LT GT LE AL MI VC Suffix 描述 Z=0 C=1 C=0 Z=1 測試的標志位 N=1 N=0 V=1 V=0 C=1 amp。 N=V Z=1 or N=!V ? 下表為所有可能的條件碼: ? 注意 :AL為默認狀態(tài),不需要單獨指出 22 條件執(zhí)行示例 ? 一系列的指令都使用條件指令 if (a==0) func(1)。把 func()函數(shù)的參數(shù)賦給 r0 BLEQ func ? 置標志位,再使用不同的條件碼 if (a==0) x=0 。 CMP r0,0 MOVEQ r1,0 MOVGT r1,1 ? 使用條件比較指令 if (a==4 || a==10) x=0。 r1 points to TABLE1 ADR r2, TABLE2 。 r1 points to TABLE1 ADR r2, TABLE2 。 33 多寄存器傳送指令的尋址模式 尋址模式 描述 起始地址 結(jié)束地址 Rn! IA 執(zhí)行后增加 Rn Rn+4*N4 Rn+4*N IB 執(zhí)行前增加 Rn+4 Rn+4*N Rn+4*N DA 執(zhí)行后減少 Rn4*N+4 Rn Rn4*N DB 執(zhí)行前減少 Rn4*N Rn4 Rn4*N 注:!決定 Rn的值是否隨著傳送而改變 34 例子 要求:保存 r1~r3到內(nèi)存地址 0x9000~0x900c,并且更新基址寄存器 r4 PRE: r1=0x00000001, r2=0x00000002, r3=0x00000003, r4=0x9000 執(zhí)行操作: STMIA r4!, {r1, r2, r3}(執(zhí)行后增加 ) POST: mem32[0x9000]=0x00000001 mem32[0x9004]=0x00000002 mem32[0x9008]=0x00000003 r4=0x900c r 1r 2寄 存 器0 x 0 0 0 0 9 0 0 0存 儲 器0 x 0 0 0 0
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1