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

正文內(nèi)容

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

2022-10-09 21:09:10 本頁面
 

【正文】 {r1,r4} POST: r1=0x00000002, r4=0x00000003, sp=0x0008000c 42 單數(shù) 據(jù)交換指令 SWAP ? 單數(shù)據(jù)交換 (SWAP) ? 在寄存器和外部存儲器之間交換字節(jié)或字 ? 讀存儲器和寫存儲器是是放在一起的 ?原子指令 ?執(zhí)行時不能中斷 ?當(dāng) ‘ LOCK’ 信號輸出操作時 ,外部存儲器管理單元被鎖定 ,當(dāng) ?多線程操作時使程序同步 (OS支持 ) ?鎖定 ?信號量 43 ? 在寄存器和存儲器之間,由一次存儲器讀和一次存儲器寫組成的原子操作。 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 9 0 0 4地 址r 3r 40 x 0 0 0 0 9 0 0 80 x 0 0 0 0 9 0 0 c35 多寄存器傳送尋址模式 r5 r1 r9’ r0 r9 STMIA r9!, {r0,r1,r5} 1000 16 100c 16 1018 16 r1 r5 r9 STMDA r9!, {r0,r1,r5} r0 r9’ 1000 16 100c 16 1018 16 r5 r9 STMDB r9!, {r0,r1,r5} r1 r0 r9’ 1000 16 100c 16 1018 16 r5 r1 r0 r9’ r9 STMIB r9!, {r0,r1,r5} 1000 16 100c 16 1018 16 36 例 1:將存儲器中的連續(xù)數(shù)據(jù)裝載到寄存器 ? PRE mem32[0x80018]=0x03, mem32[0x80014]=0x02, mem32[0x80010]=0x01, r0=0x00080010, r1=0x00000000, r2=0x00000000, r3=0x00000000 執(zhí)行指令: LDMIA r0!, {r1r3} ? POST r0=0x0008001c, r1=0x00000001, r2=0x00000002, r3=0x00000003 0x80020 0x00000005 0x8001c 0x00000004 0x80018 0x00000003 0x80014 0x00000002 0x80010 0x00000001 0x8000c 0x00000000 地址指針 存儲地址 數(shù)據(jù) r3=0x00000000 r2=0x00000000 r1=0x00000000 r0=0x80010 37 例 2:完成一個存儲器數(shù)據(jù)塊拷貝 ? 注: r9——存放源數(shù)據(jù)的起始地址 r10——存放目標(biāo)起始地址 r11——存放源結(jié)束地址 loop LDMIA r9!, {r0r7} 。 r1 points to TABLE1 ADR r2, TABLE2 。把 func()函數(shù)的參數(shù)賦給 r0 BLEQ func ? 置標(biāo)志位,再使用不同的條件碼 if (a==0) x=0 。 loop … SUBS r1,r1,1 BNE loop 條件執(zhí)行及標(biāo)志位 ** 如果 Z標(biāo)志清零則跳轉(zhuǎn) R1減 1,并設(shè)置標(biāo)志位 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 測試的標(biāo)志位 N=1 N=0 V=1 V=0 C=1 amp。 carry out to C 20 ? ARM指令可以通過添加適當(dāng)?shù)臈l件碼 后綴 來達到條件執(zhí)行的目的。操作數(shù)右移一位,空位(位 [31])用原 C標(biāo)志填充。若源操作數(shù)為負數(shù),則字的高端空出的位補 1。寄存器中字的高端空出的位補 0。 有 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送到目標(biāo)寄存器中, N可以是寄存器,也可以是立即數(shù)。 ? MOV指令語法: 〈 指令 〉 {〈 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)。 ? ASR:算術(shù)右移( Arithmetic Shift Right)。 ? ROR:循環(huán)右移( Rotate Right)。 17 數(shù)據(jù)處理指令 7 ? 移位操作 (cont’d) ?算術(shù)移位 ?ASR:算術(shù)右移 ?ASL:算術(shù)左移 ?循環(huán)移位 : ROR, RRX 18 數(shù)據(jù)處理指令 ? 立即數(shù)操作 : ? 移位寄存器操作數(shù) ? 第二個操作數(shù)在與第一個操作數(shù)合成之前 ,是服從于移位操作的 . ADD r3, r2, r1, LSL 3 r3 := r2 + 8 x r1 ADD r5, r5, r3, LSL r2 r5 := r5 + 2r2 x r3 ADD r3, r3, 3 r3 := r3 + 3 AND r8, r7, amp。 ? 這樣可以提高代碼密度,減少分支跳轉(zhuǎn)指令數(shù)目,提高性能。 Z=0 C=0
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1