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

正文內(nèi)容

4第四章arm匯編語(yǔ)言程序設(shè)計(jì)-閱讀頁(yè)

2025-03-13 03:18本頁(yè)面
  

【正文】 is not the same as the way that the ALIGN directive is specified. Do not use ALIGN=0 or ALIGN=1 for code sections. 使用示例: AREA Init, CODE, READONLY ;該偽指令定義了一個(gè)代碼段 , 段名為Init, 屬性為只讀 AREA MyDATA,DATA,READONLY,ALIGN=14 。 其中 , 表達(dá)式的值用于指定對(duì)齊方式 ,可能的取值為 2的冪 , 如 16等 。 偏移量也為一個(gè)數(shù)字表達(dá)式 ,如果不是用在 AREA里的 ,應(yīng)該是 表達(dá)式 +偏移量 . 將兩個(gè)字節(jié)的數(shù)據(jù)放在同一個(gè)字的第一個(gè)字節(jié)和第四個(gè)字節(jié)中 ,帶 offset 的ALIGN對(duì)齊 : AREA offsetFxample, CODE DCB 0x31 。字對(duì)齊 DCB 0x32 。 code 。 code MOV pc,lr 。 now aligned on 8byte boundary rout2 。 CODE32偽指令通知編譯器 , 其后的指令序列為 32位的 ARM指令 。因此 , 在使用 ARM指令和 Thumb指令混合編程的代碼里 , 可用這兩條偽指令進(jìn)行切換 注意 :他們只通知編譯器其后指令的類(lèi)型 , 并不能對(duì)處理器進(jìn)行狀態(tài)的切換 。通知編譯器其后的指令為 32位的 ARM指令 LDR R0, = NEXT+ 1 。 在一個(gè)完整的匯編程序中至少要有一個(gè) ENTRY( 也可以有多個(gè) , 當(dāng)有多個(gè) ENTRY時(shí) , 程序的真正入口點(diǎn)由鏈接器指定 ) , 但在一個(gè)源文件里最多只能有一個(gè) ENTRY( 可以沒(méi)有 ) 。 語(yǔ)法格式: 名稱(chēng) EQU 表達(dá)式 {, 類(lèi)型 } 名稱(chēng) 必須頂格寫(xiě) EQU偽指令用于為程序中的常量 、 標(biāo)號(hào)等定義一個(gè)等效的字符名稱(chēng) , 類(lèi)似于 C語(yǔ)言中的# define。 EXPORT( 或 GLOBAL) 語(yǔ)法格式: EXPORT 標(biāo)號(hào) {[WEAK]} EXPORT偽指令用于在程序中聲明一個(gè)全局的標(biāo)號(hào) , 該標(biāo)號(hào)可在其他的文件中引用 。 標(biāo)號(hào)在程序中區(qū)分大小寫(xiě) [WEAK]選項(xiàng)聲明其他的同名標(biāo)號(hào)優(yōu)先于該標(biāo)號(hào)被引用 。 [WEAK]選項(xiàng)表示當(dāng)所有的源文件都沒(méi)有定義這樣一個(gè)標(biāo)號(hào)時(shí) , 編譯器也不給出錯(cuò)誤信息 , 在多數(shù)情況下將該標(biāo)號(hào)置為 0, 若該標(biāo)號(hào)為 B或 BL指令引用 , 則將 B或 BL指令置為 NOP操作 。 使用示例: AREA Init, CODE, READONLY EXTERN Main ;通知編譯器當(dāng)前文件要引用標(biāo)號(hào)Main, 但 Main在其他源文件中定義 ?? END GET( 或 INCLUDE) 語(yǔ)法格式: GET 文件名 GET偽指令用于將一個(gè)源文件包含到當(dāng)前的源文件中 , 并將被包含的源文件在當(dāng)前位置進(jìn)行匯編處理 。 GET偽指令只能用于包含 源文件 , 包含目標(biāo)文件需要使用 INCBIN偽指令 使用示例: AREA Init, CODE, READONLY GET ;通知編譯器當(dāng)前源文件包含源文件 GET C: \;通知編譯器當(dāng)前源文件包含源文件 C: \ ?? END 1 INCBIN 語(yǔ)法格式: INCBIN 文件名 INCBIN偽指令用于將一個(gè)目標(biāo)文件或數(shù)據(jù)文件包含到當(dāng)前的源文件中 , 被包含的文件不作任何變動(dòng)的存放在當(dāng)前文件中 ,編譯器從其后開(kāi)始繼續(xù)處理 。 采用這種方式可以方便程序員記憶該寄存器的功能 。 名稱(chēng)必須頂格寫(xiě) . 使用示例: Temp RN R0 ;將 R0定義一個(gè)別名 Temp 1 ROUT 語(yǔ)法格式: {名稱(chēng) } ROUT ROUT偽指令用于給一個(gè)局部變量定義作用范圍 。 1 NOP 語(yǔ)法格式: NOP 空操作 ,不影響 CPSR中的條件標(biāo)志位 匯編語(yǔ)言程序格式 1)在 ARM( Thumb)匯編語(yǔ)言程序中,以程序段為單位組織代碼。 3)段可以分為代碼段和數(shù)據(jù)段,代碼段的內(nèi)容為執(zhí)行代碼,數(shù)據(jù)段存放代碼運(yùn)行時(shí)需要用到的數(shù)據(jù)。 可執(zhí)行映象文件通常由以下幾部分構(gòu)成: — 一個(gè)或多個(gè)代碼段 , 代碼段的屬性為只讀 。 — 零個(gè)或多個(gè) 不包含 初始化數(shù)據(jù)的數(shù)據(jù)段 ,數(shù)據(jù)段的屬性為可讀寫(xiě) 。每一個(gè)匯編源程序結(jié)尾處都必須有一條 END偽指令 , 指示程序的結(jié)束 。 在程序中 , 使用指令: BL 子程序名 該指令 完成 : 將子程序的返回地址存放在連接寄存器 LR中 , 同時(shí)將程序計(jì)數(shù)器 PC指向子程序的入口點(diǎn) , 當(dāng)子程序執(zhí)行完畢需要返回調(diào)用處時(shí) , 只需要將存放在 LR中的返回地址重新拷貝給程序計(jì)數(shù)器 PC即可 。 子程序調(diào)用實(shí)例 : AREA Init, CODE, READONLY ENTRY Start BL PRINT_TEXT ┉┉ PRINT_TEXT ┉┉ MOV PC, BL ┉┉ END 匯編語(yǔ)言程序示例 I_ISPC EQU 0x1e00024 EXTINTPND EQU 0x1d20234 AREA MyIRQ_ISR, CODE, READONLY CODE32 。rPDATE地址為 0x1d2023c ldr r1,[r0] 。將 ((rPDATE)0x1f7)的結(jié)果送給rPDATE,PE3==1鈴不響 ldr r3,=0x400000 1 。%表示對(duì)局部標(biāo)號(hào)的引用 movs pc ,lr END 演講完畢,謝謝觀看!
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1