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

正文內(nèi)容

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

  

【正文】 D sp!, {r1,r4} POST: r1=0x00000002, r4=0x00000003, sp=0x0008000c 42 單數(shù) 據(jù)交換指令 SWAP ? 單數(shù)據(jù)交換 (SWAP) ? 在寄存器和外部存儲(chǔ)器之間交換字節(jié)或字 ? 讀存儲(chǔ)器和寫存儲(chǔ)器是是放在一起的 ?原子指令 ?執(zhí)行時(shí)不能中斷 ?當(dāng) ‘ LOCK’ 信號(hào)輸出操作時(shí) ,外部存儲(chǔ)器管理單元被鎖定 ,當(dāng) ?多線程操作時(shí)使程序同步 (OS支持 ) ?鎖定 ?信號(hào)量 43 ? 在寄存器和存儲(chǔ)器之間,由一次存儲(chǔ)器讀和一次存儲(chǔ)器寫組成的原子操作。 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) 無(wú)符號(hào)的大于或等于 無(wú)符號(hào)的小于 負(fù)數(shù)( Minus) 等于( Equal) 溢出( Overflow) 沒(méi)溢出 無(wú)符號(hào)的大于 無(wú)符號(hào)的小于或大于 正數(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 測(cè)試的標(biāo)志位 N=1 N=0 V=1 V=0 C=1 amp。寄存器中字的高端空出的位補(bǔ) 0。 ? ROR:循環(huán)右移( Rotate Right)。r0:a,r1:x if (a0) x=1。 ? 通過(guò) SWI機(jī)制,運(yùn)行在用戶模式下的應(yīng)用程序,可請(qǐng)求操作系統(tǒng)執(zhí)行一系列特權(quán)操作。 ? 語(yǔ)法: ? MRS{cond} Rd,psr 。 72 符號(hào)定義偽指令 Ⅲ 2. GBLA、 GBLL、 GBLS ? 格式: GBLA/GBLL/GBLS 變量名 ? 說(shuō)明: GBLA、 GBLL、 GBLS偽操作定義一個(gè)匯編程序中的全局變量, 并初始化 , 其中: ?GBLA定義一個(gè)全局?jǐn)?shù)字變量 , 并初始化為 0; ?GBLL定義一個(gè)全局邏輯變量 , 并初始化為 “ F” ; ?GBLS定義一個(gè)全局字符串變量 , 并初始化為空串; 這三條偽指令用于定義全局變量 , 因此在整個(gè)程序范圍內(nèi)變量名必須唯一 。 79 數(shù)據(jù)定義偽指令 Ⅴ ? 7. SPACE: 標(biāo)號(hào) SPACE 表達(dá)式 說(shuō)明: SPACE用于分配一片連續(xù)的存儲(chǔ)區(qū)域并初始化為 0,表達(dá)式為要分配的字節(jié)數(shù) ,SPACE也可用“%”代替。 如果偽操作中沒(méi)有指定表達(dá)式 , 則編譯器會(huì)將當(dāng)前位置對(duì)齊到下一個(gè)字的位置 。 87 其他偽指令 Ⅳ ? : END 說(shuō)明:“ END” 告訴編譯器已經(jīng)到了源程序的結(jié)尾。 我們通常這樣使用這個(gè)偽指令:在某源文件中定義一些宏指令 , 用 MAP和 FIELD定義結(jié)構(gòu)化的數(shù)據(jù)類型 , 用 EQU定義常量的符號(hào)名稱 , 然后用 GET/INCLUDE將這個(gè)源文件包含到其他的源文件中 。chang mode to UnderStack M[10010] ldr sp,=IRQStack 。 FIQStack 0。 與 IMPORT不同的是 , 如果當(dāng)前源文件實(shí)際上沒(méi)有引用該標(biāo)號(hào) , 該標(biāo)號(hào)就不會(huì)被加入到當(dāng)前文件的符號(hào)表中 。 表達(dá)式的取值范圍為 0—— 31。 83 匯編控制偽指令 Ⅲ ? 3. WHILE、 WEND: WHILE 邏輯表達(dá)式 代碼段 WEND 說(shuō)明: WHILE和 WEND偽指令能根據(jù)邏輯表達(dá)式的成立與否決定是否循環(huán)執(zhí)行這個(gè)代碼段 ?!?代替。 ? 核存在一個(gè)執(zhí)行狀態(tài) – Thumb狀態(tài) ? ARM和 Thumb之間切換使用 BX 指令 63 寫 Thumb匯編程序 ? Thumb不是一個(gè)“好” 指令集! ? 最好用編譯器來(lái)產(chǎn)生 ? 約束并不一致 ? 手動(dòng)編碼使用 ARM指令集比較好 ? 更多細(xì)節(jié),參看: ?ARM ―Architecture Reference Manual‖ 64 ADS與 ARM匯編程序設(shè)計(jì) 65 生成二進(jìn)制文件的過(guò)程 匯 編 程 序 1 匯 編 程 序 2 匯 編 程 序 N編 譯 器 ( A s s e m b l e r )目 標(biāo) 文 件 1 目 標(biāo) 文 件 2 目 標(biāo) 文 件 N鏈 接 器 ( L i n k e r )二 進(jìn) 制 文 件66 編譯器的基本功能 ? 規(guī)定匯編語(yǔ)言的語(yǔ)法規(guī)則 ? ADS Vs. GNU ? 預(yù)編譯 (Preassembler) → 標(biāo)準(zhǔn)匯編語(yǔ)言 ? 編譯 → 二進(jìn)制文件 匯 編 程 序預(yù) 編 譯( P r e a s s e m b l e r )編 譯 器( A s s e m b l e r )二 進(jìn) 制 文 件編 譯 器67 預(yù)編譯 (Preassembler) ? 處理偽指令 (PseudoInstruction) ? 偽指令:做為匯編語(yǔ)言的參數(shù),或被預(yù)編譯器識(shí)別,翻譯成標(biāo)準(zhǔn)匯編語(yǔ)言。 branch to SUBR .. 。是否到達(dá)結(jié)束地址 BNE loop 。 CMP不需要增加 “ S‖就可改變相應(yīng)的標(biāo)志位。 ? LSR:邏輯右移( Logical Shift Right)。從字的最低端移出的位填入字的高端空出的位。 CMP r0,0 MOVEQ r1,0 MOVGT r1,1 ? 使用條件比較指令 if (a==4 || a==10) x=0。 ? 語(yǔ)法: ? SWI{cond} SWI number 47 軟件中斷 (SWI)執(zhí)行的操作 指令 名稱 執(zhí)行操作 SWI 軟件中斷 Lr_svc=SWI指令后面的指令地址 spsr_svc=cpsr pc=vectors+0x8 cpsr模式 =SVC cpsr I=1(屏蔽 IRQ中斷) 48 SWI中斷處理程序 ? 處理軟件中斷的代碼段稱為中斷處理程序( SWI Handler),中斷處理程序是通過(guò)執(zhí)行指令的地址獲取軟件中斷號(hào),指令地址是從 lr計(jì)算出來(lái)的; ? SWI號(hào)的確定方法: SWI_Number=SWI instructionand NOT(0xff00000000) 28 31 24 27 0 Cond 1 1 1 1 SWI number (ignored by processor) 23 條件域 49 SWI處理程序應(yīng)用示例 ? SWI_handler 。 Rd = psr ? MSR{cond} psr[_fields],Rm 。 73 符號(hào)定義偽指令 Ⅳ 3. SETA、 SETL、 SETS ? 格式:變量名 SETA/SETL/SETS 表達(dá)式 ? 說(shuō)明: SETA:給一個(gè)數(shù)字變量賦值; ?SETL:給一個(gè)邏輯變量賦值; ?SETS:給一個(gè)字符串變 Ⅳ 量賦值; 格式中的變量名必須為已經(jīng)定義過(guò)的全局或局部變量 , 表達(dá)式為將要賦給變量的值 。 ? 8. MAP: MAP 表達(dá)式 [, 基址寄存器 ] 說(shuō)明: MAP定義一個(gè)結(jié)構(gòu)化的內(nèi)存表的首地址 , “ ^ ” 可以用來(lái)代替 MAP。 偏移量也是個(gè)數(shù)字表達(dá)式 , 如果存在偏移量 , 則當(dāng)前位置的自動(dòng)對(duì)齊到: 2的表達(dá)式值次方+偏移量 。 ? : 名稱 EQU 表達(dá)式 [, 類型 ] 說(shuō)明: EQU用于將程序中的數(shù)字常量 、 標(biāo)號(hào) 、 基于寄存器的值賦予一個(gè)等效的名稱 , 這一點(diǎn)類似于 C語(yǔ)言中的# define, 可用 “ *” 代替 EQU。 GET/INCLUDE只能用于包含源文件 , 包含其他文件則需要使用 INCBIN偽指令 。let sp=IRQStack 設(shè)定快速中斷模式堆棧 : mrs r0,cpsr bic r0,r0,0x1f orr r1,r0,0x11|0xc0 msr cpsr_cxsf,r1 。 IRQStack 2048。 89 其他偽指令 Ⅵ ? : EXTERN 標(biāo)號(hào) [,WEAK] 說(shuō)明: EXTERN告訴編譯器所使用的標(biāo)號(hào)要在當(dāng)前源文件中引用 ,但該標(biāo)號(hào)是在其他的源文件中定義的 。 ? ALIGN=表達(dá)式:對(duì)齊方式為 2表達(dá)式次方 , 例如:表達(dá)式 =3, 則對(duì)齊方式為 8字節(jié)對(duì)齊 。 IF、 ELSE、 ENDIF偽指令可以嵌套使用 。 DCD也可用“ amp。 ? 是 ARM 指令集的一個(gè)子集。 o v e rf l o w o c c u rre d B GT Gre a te r th a n S i g n e d i n te g e r c o m p a ri s o n g a v e g re a te r th a n B GE Gre a te r o r e q u a l S i g n e d i n te g e r c o m p a ri s o n g a v e g re a te r o r equal B L T L e s s t h a n Si g n e d i n te g e r c o m p a ri s o n g a v e l e s s t h a n B L E L e s s o r e q u a l S i g n e d i n te g e r c o m p a ri s o n g a v e l e s s t h a n o r equal B HI Hi g h e r Un s i g n e d c o m p a ri s o n g a v e h i g h e r B L S L o w e r o r s a m e Un s i g n e d c o m p a ri s o n g a v e l o w e r o r s a m e 53 分支和鏈接指令 ? 分支子程序 (r14 serves as a link register) ? 嵌套子程序 BL SUBR 。存儲(chǔ) 32字節(jié)并更新 r10指針 CMP r9, r11 。 CMP r3,0 CMP r3,0 BEQ skip ADDNE r0,r1,r2 ADD r0,r1,r2 skip ? 默認(rèn)情況下,數(shù)據(jù)處理指令不影響 程序狀態(tài)寄存器 的條件碼標(biāo)志位,但可以選擇通過(guò)添加“ S‖來(lái)影響標(biāo)志位。寄存器中字的低端空出的位補(bǔ) 0。 ? RRX:擴(kuò)展為 1的循環(huán)右移( Rotate Right Extended by 1 place)。 CMP r0,4 CMPNE r0,10 MOVEQ r1,0 23 條件執(zhí)行 ? 所有的 ARM指令都可以 條 件 執(zhí) 行 ? 指令的 執(zhí) 行 與 否取 決 于 CPSR寄存器的 N, Z, C and V標(biāo) 志位 ? 所有的 Thumb指令都可以解 壓 成全部 條 件指令 ? Condition Field in instruction ? 0000 = EQ Z set (equal) ? 0001 = NE Z clear (not equal) ? 0010 = CS C set (unsigned higher or same) ? 0011 = CC C clear (unsigned lower) ? 0100 = MI N set (negative) ? 0101 = PL N clear (positive or zero) ? 0110 = VS V set (overflow) ? 0111 = VC V clear (no overflow) ? 1000 = HI C set a
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1