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

正文內(nèi)容

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

2024-10-02 21:09本頁面
  

【正文】 chang mode to UnderStack M[10011] ldr sp,=SVCStack 。chang mode to UnderStack M[10001] ldr sp,=FIQStack 。chang mode to UnderStack M[10010] ldr sp,=IRQStack 。chang mode to UnderStack M[10111] ldr sp,=AbortStack 。chang mode to UnderStack M[11011] ldr sp,=UndefStack 。 FIQStack 0。 AbortStack 2048。 (FIELD:預(yù)留 2KB的存儲(chǔ)空間 ) SVCStack 2048。 在程序中未使用該偽指令時(shí) , 局部變量的作用范圍為所在的 AREA, 而使用 ROUT后 , 局部變量的作用范圍為當(dāng)前 ROUT和下一個(gè) ROUT之間 。 ? : INCBIN 文件名 說明: INCBIN將一個(gè)數(shù)據(jù)文件或者目標(biāo)文件包含到當(dāng)前的源文件中, 編譯時(shí)被包含的文件不作任何變動(dòng)的存放在當(dāng)前文件中 , 編譯器從后面開始繼續(xù)處理 。 我們通常這樣使用這個(gè)偽指令:在某源文件中定義一些宏指令 , 用 MAP和 FIELD定義結(jié)構(gòu)化的數(shù)據(jù)類型 , 用 EQU定義常量的符號(hào)名稱 , 然后用 GET/INCLUDE將這個(gè)源文件包含到其他的源文件中 。 90 其他偽指令 Ⅶ ? : GET 文件名 說明: GET將一個(gè)源文件包含到當(dāng)前的源文件中 , 并將被包含的源文件在當(dāng)前位置展開進(jìn)行匯編處理 。 ? : 名稱 RN 表達(dá)式 說明: RN用于給一個(gè)寄存器定義一個(gè)別名 ,以便程序員記憶該寄存器的功能 。 與 IMPORT不同的是 , 如果當(dāng)前源文件實(shí)際上沒有引用該標(biāo)號(hào) , 該標(biāo)號(hào)就不會(huì)被加入到當(dāng)前文件的符號(hào)表中 。 編譯器在多數(shù)情況下將該標(biāo)號(hào)置為 0, 如果這個(gè)標(biāo)號(hào)被 B或 BL指令引用 , 則將 B或 BL指令替換為 NOP操作 。 不管當(dāng)前源文件是否使用過該標(biāo)號(hào) , 這個(gè)標(biāo)號(hào)都會(huì)加入到當(dāng)前源文件的符號(hào)表中 。 [,WEAK]可選項(xiàng)聲明其他文件有同名的標(biāo)號(hào) , 則該同名標(biāo)號(hào)優(yōu)先于該標(biāo)號(hào)被引用 。 如果表達(dá)式為 32位的常量 , 我們可以指定表達(dá)式的數(shù)據(jù)類型, 類型域可以有以下三種: CODE16/CODE32/DATA 88 其他偽指令 Ⅴ ? : EXPORT 標(biāo)號(hào) [,WEAK] 說明: EXPORT 在程序中聲明一個(gè)全局標(biāo)號(hào) , 該標(biāo)號(hào)可以被其他的文件中的代碼引用 。 87 其他偽指令 Ⅳ ? : END 說明:“ END” 告訴編譯器已經(jīng)到了源程序的結(jié)尾。 ? : ENTRY 說明: ENTRY用于指定匯編程序的入口 。 86 其他偽指令 Ⅲ ? 、 CODE32: CODE16/CODE32 說明: CODE16偽操作指示編譯器后面的代碼為 16位的 Thumb指令。 表達(dá)式的取值范圍為 0—— 31。 ? READWRITE:表示本段可讀寫 。 ? CODE:定義代碼段 。 屬性部分表示該代碼段 /數(shù)據(jù)段的相關(guān)屬性 , 多個(gè)屬性可以用 “ , ” 分隔 。 85 其他偽指令 Ⅱ ? : AREA 段名 屬性 , ?? 說明: AREA用于定義一個(gè)代碼段 、 數(shù)據(jù)段或者特定屬性的段 。 如果偽操作中沒有指定表達(dá)式 , 則編譯器會(huì)將當(dāng)前位置對(duì)齊到下一個(gè)字的位置 。 ? : ALIGN [表達(dá)式 [, 偏移量 ]] 說明: ALIGN偽操作可以通過填充字節(jié)使當(dāng)前的位置滿足一定的對(duì)齊方式 。 ? 4. MEXIT: MEXIT 說明: MEXIT用于從宏中退出 。 83 匯編控制偽指令 Ⅲ ? 3. WHILE、 WEND: WHILE 邏輯表達(dá)式 代碼段 WEND 說明: WHILE和 WEND偽指令能根據(jù)邏輯表達(dá)式的成立與否決定是否循環(huán)執(zhí)行這個(gè)代碼段 。 IF、 ELSE、 ENDIF可以分別用 “ [” 、 “ |” 、 “ ]” 代替 。 注意宏操作可以嵌套使用 , 并可以在編譯時(shí)用選項(xiàng)加以控制 。 MACRO和 MEND之間的代碼稱為宏定義體,在宏定義體的第一行聲明宏的原型,宏的原型包含宏名、所需的參數(shù)。 ? 9. FILED: 標(biāo)號(hào) FIELD 字節(jié)數(shù) 說明: FIELD用于定義一個(gè)結(jié)構(gòu)化內(nèi)存表中的數(shù)據(jù)域,“ ” 可用來代替 FILED。 79 數(shù)據(jù)定義偽指令 Ⅴ ? 7. SPACE: 標(biāo)號(hào) SPACE 表達(dá)式 說明: SPACE用于分配一片連續(xù)的存儲(chǔ)區(qū)域并初始化為 0,表達(dá)式為要分配的字節(jié)數(shù) ,SPACE也可用“%”代替。 DCFDU功能跟 DCFD類似 , 只是分配的存儲(chǔ)單元不嚴(yán)格字對(duì)齊 。 DCQU功能跟 DCQ類似 , 只是分配的存儲(chǔ)單元不嚴(yán)格字對(duì)齊?!?代替。 77 數(shù)據(jù)定義偽指令 Ⅲ ? 3. DCD/DCDU: 標(biāo)號(hào) DCD/DCDU 表達(dá)式 說明: DCD偽指令用于分配一塊 字 存儲(chǔ)單元并用偽指令中指定的表達(dá)式初始化,它定義的存儲(chǔ)空間是字對(duì)齊的。 其中 , 表達(dá)式可以為使用雙引號(hào)的字符串或0—— 255的數(shù)字 ,DCB可用 “ =” 代替 。 75 數(shù)據(jù)定義偽指令 Ⅰ ? 用于為數(shù)據(jù)分配存儲(chǔ)單元,同時(shí)也可完成已分配存儲(chǔ)單元的初始化。 74 符號(hào)定義偽指令 Ⅴ 4. RLIST ? 格式:名稱 RLIST {寄存器列表 } ? 說明: RLIST可用于對(duì)一個(gè)通用寄存器列表定義名稱 , 該名稱可在 ARM指令 LDM/STM中使用 。 72 符號(hào)定義偽指令 Ⅲ 2. GBLA、 GBLL、 GBLS ? 格式: GBLA/GBLL/GBLS 變量名 ? 說明: GBLA、 GBLL、 GBLS偽操作定義一個(gè)匯編程序中的全局變量, 并初始化 , 其中: ?GBLA定義一個(gè)全局?jǐn)?shù)字變量 , 并初始化為 0; ?GBLL定義一個(gè)全局邏輯變量 , 并初始化為 “ F” ; ?GBLS定義一個(gè)全局字符串變量 , 并初始化為空串; 這三條偽指令用于定義全局變量 , 因此在整個(gè)程序范圍內(nèi)變量名必須唯一 。 ? 用于定義局部變量的 LCLA、 LCLL、 LCLS; ? 用于定義全局變量的 GBLA、 GBLL、 GBLS ; ? 用于對(duì)變量賦值的 SETA、 SETL、 SETS ; ? 為通用寄存器列表定義名稱的 RLIST。 69 ?符號(hào)定義偽指令 ?數(shù)據(jù)定義偽指令 ?匯編控制偽指令 ?信息報(bào)告?zhèn)沃噶? ?宏指令以及其他偽指令 。 ? 核存在一個(gè)執(zhí)行狀態(tài) – Thumb狀態(tài) ? ARM和 Thumb之間切換使用 BX 指令 63 寫 Thumb匯編程序 ? Thumb不是一個(gè)“好” 指令集! ? 最好用編譯器來產(chǎn)生 ? 約束并不一致 ? 手動(dòng)編碼使用 ARM指令集比較好 ? 更多細(xì)節(jié),參看: ?ARM ―Architecture Reference Manual‖ 64 ADS與 ARM匯編程序設(shè)計(jì) 65 生成二進(jìn)制文件的過程 匯 編 程 序 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ī)定匯編語言的語法規(guī)則 ? ADS Vs. GNU ? 預(yù)編譯 (Preassembler) → 標(biāo)準(zhǔn)匯編語言 ? 編譯 → 二進(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) ? 偽指令:做為匯編語言的參數(shù),或被預(yù)編譯器識(shí)別,翻譯成標(biāo)準(zhǔn)匯編語言。 裝載 32 bit常數(shù) 62 0 15 31 0 ADDS r2,r2,1 ADD r2,1 32bit ARM 指令 16bit Thumb 指令 對(duì)于由編譯器產(chǎn)生的大部分指令: ?沒有條件執(zhí)行 ?源、目的寄存器必須相同 ?僅能使用低寄存器 ?常數(shù)大小有限制 ?不能使用在線移位器 關(guān)于 Thumb指令集 ? Thumb 是 16bit 指令集 ? 代碼密度優(yōu)化 (總代碼大小約為 ARM指令的 65%) ? 使用窄總線存儲(chǔ)器時(shí)可以大大提高性能。 或 ? LDR 指令,從數(shù)據(jù)池( Literal pools)讀取常數(shù)。 cache. FPU等系統(tǒng)控制器 ? 寄存器 ? 協(xié)處理器專用 ? ARM 控制數(shù)據(jù)流 ? 協(xié)處理器只包含數(shù)據(jù)處理和存貯器傳送操作 ? 協(xié)處理器數(shù)據(jù)操作 (CDP) ? 這類指令是用來告訴協(xié)處理器執(zhí)行某些內(nèi)部操作 ? 無結(jié)果返回 ARM,ARM并不等待操作完成 co n d 1 1 1 0 CRm31 28 27 24 23 20 19 16 15 12 1 1 8 7 5 4 3 0C o p 1 CRn CRd C P C o p 2 059 協(xié)處理器指令 ? ARM體系支持 16個(gè)協(xié)處理器 ? 針對(duì)每個(gè)協(xié)處理器的指令占用 ARM指令集中的固定部分 ? 如果相應(yīng)的協(xié)處理器不存在, 將發(fā)生一個(gè)未定義指令異常。 psr[_fields] = Rm 在這里: ? psr = CPSR or SPSR ? [_fields] = ‘fsxc’的任意組合 ? 也允許送一個(gè)立即數(shù)到 psr_fields ? MSR{cond} psr_fields,Immediate ? 用戶模式下,所有位均可以被讀取,但只有條件標(biāo)志位 (_)可被寫。 ? 語法: ? MRS{cond} Rd,psr 。 save work and link register STMFD r13!, {r0r2,r14} BL SUB2 .. LDMFD r13!, {r0r2,pc} SUB2: .. MOV pc, r14 。 SUBR entry point MOV pc, r14 。 branch to SUBR .. 。 n o o v e rf l o w o c c u rre d BVS Ov e rf l o w s e t S i g n e d i n te g e r o p e ra ti o n 。return from SWI handler LDMFD sp!, {r0r12,pc}^ 50 控制和分支指令 ? 控制指令 ? 分支和分支連接 ?跳到希望的指令中 ?保存當(dāng)前的 PC并返回 (with ‘L’ bit) ? 分支和交換 ?跳到期望的指令中與指令集交換 ?Rm[0] == 1: Subsequent inst. are THUMB. ?Rm[0] == 0: Subsequent inst. are ARM. co n d 1 0 1 L 2 4 b i t s i g n e d w o r d o f f se t31 28 27 25 24 23 0cond Rm 0 0 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 31 28 27 6 5 4 3 0 1 L 51 ? Branch : B{cond} label ? Branch with Link : BL{cond} subroutine_label ? 處理器把偏移量左移兩位,進(jìn)行符號(hào)擴(kuò)展后再與 PC相加 ?
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1