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

正文內(nèi)容

arm編程技術(shù)(編輯修改稿)

2025-03-27 13:05 本頁面
 

【文章內(nèi)容簡介】 于數(shù)據(jù)表定義、文字池定義、數(shù)據(jù)空間分配等,同時也可完成已分配存儲單元的初始化。 該類偽指令有許多,這里只詳細介紹如下常用的偽指令,感興趣的可參考相關(guān)手冊。 ■ 聲明一個文字池: LTORG。 ■ 定義一個結(jié)構(gòu)化的內(nèi)存表的首地址: MAP。 ■ 定義結(jié)構(gòu)化內(nèi)存表中的一個數(shù)據(jù)域: FIELD。 ■ 分配一塊內(nèi)存空間,并用 0初始化: SPACE。 ■ 分配一段字節(jié)的內(nèi)存單元,并用指定的數(shù)據(jù)初始化: DCB。 ■ 分配一段半字的內(nèi)存單元,并用指定的數(shù)據(jù)初始化: DCW。 ■ 分配一段字的內(nèi)存單元,并用指定的數(shù)據(jù)初始化:DCD。 ■ 分配一段雙字的內(nèi)存單元,并用指定的數(shù)據(jù)初始化: DCQ。 ? 數(shù)據(jù)定義偽指令( 2) ( 1) LTORG: LTORG用于聲明一個文字池,在使用 LDR偽指令時,要在適當?shù)牡刂芳尤?LTORG聲明文字池,這樣就會把要加載的數(shù)據(jù)保存到文字池內(nèi),再用 ARM的加載指令讀出數(shù)據(jù)(如果沒有使用 LTORG聲明文字池,則匯編器會在程序末尾自動聲明)。 偽指令格式如下: 例 11 文字池舉例。 LTORGLDR R0, =0xFFFF5678 ;LDR偽指令,裝載0xFFFF5678給R0ADD R1, R1, R0MOV PC, LRLTORG ;聲明文字池,此地址存儲程序中用到的數(shù)據(jù)0xFFFF5678... ;其他代碼 ? 數(shù)據(jù)定義偽指令( 3) LTORG偽指令常放在無條件跳轉(zhuǎn)指令之后,或者子程序返回指令之后,這樣處理器就不會錯誤地將文字池中的數(shù)據(jù)當作指令來執(zhí)行。 ? 數(shù)據(jù)定義偽指令( 4) ( 2) MAP: MAP偽指令用于定義一個結(jié)構(gòu)化的內(nèi)存表的首地址。 此時內(nèi)存表的位臵計數(shù)器 {VAR}設臵為該地址值。{VAR}為匯編器的內(nèi)臵變量。 MAP也可用? ^?代替。 偽指令格式如下: 其中, expr為程序中的標號或數(shù)字表達式。base_register(基址寄存器)為可選項,當 base_register選項不存在時, expr的值即為內(nèi)存表的首地址,當該選項存在時,內(nèi)存表的首地址為 expr的值與 base_register的和。 MAP expr {, base_register} ? 數(shù)據(jù)定義偽指令( 5) 例 12 MAP指令。 MAP偽指令通常與 FIELD偽指令配合使用來定義結(jié)構(gòu)化的內(nèi)存表。 但 MAP、 FIELD偽指令僅僅是定義數(shù)據(jù)結(jié)構(gòu),它們并不初始化內(nèi)存單元的內(nèi)容。 MAP偽指令中的 base_register寄存器的值對于其后所有的 FIELD偽指令定義的數(shù)據(jù)域是默認使用的,直到遇到新的包含base_register項的 MAP偽指令。 MAP 0x00, R9 ;定義內(nèi)存表的首地址為R9Timer FIELD 4 ;定義數(shù)據(jù)域Timer,長度為4字節(jié)Attrib FIELD 4 ;定義數(shù)據(jù)域Attrib,長度為4字節(jié)String FIELD 100 ;定義數(shù)據(jù)域String,長度為100字節(jié) ... ADR R9, DataStart ;設置R9的值,即設置結(jié)構(gòu)化的內(nèi)存表地址 LDR R0, Attrib ;相當于LDR, R0, [R9, 4] ... ? 數(shù)據(jù)定義偽指令( 6) ( 3) FIELD: FIELD偽指令用于定義一個結(jié)構(gòu)化內(nèi)存表中的數(shù)據(jù)域。 FIELD也可用? ?代替。 偽指令格式如下: 其中 label為數(shù)據(jù)域標號, expr表示本數(shù)據(jù)域在內(nèi)存表中所占的字節(jié)數(shù)。 FIELD偽指令常與 MAP偽指令配合使用來定義結(jié)構(gòu)化的內(nèi)存表。 MAP偽指令定義內(nèi)存表的首地址, FIELD偽指令定義內(nèi)存表中的各個數(shù)據(jù)域,并可以為每個數(shù)據(jù)域指定一個標號供其他的指令引用。 例 13 MAP和 FIELD偽指令的使用。 {label} FIELD expr ? 數(shù)據(jù)定義偽指令( 7) 例 13 MAP和 FIELD偽指令的使用。 M A P 0 x 4 0 0 0 3 0 0 0 ; 定 義 內(nèi) 存 表 的 首 地 址 為 0 x 0 x 4 0 0 0 3 0 0 0C o u n t 1 F I E L D 4 ; 定 義 數(shù) 據(jù) 域 C o u n t 1 , 長 度 為 4 字 節(jié)C o u n t 2 F I E L D 4 ; 定 義 數(shù) 據(jù) 域 C o u n t 2 , 長 度 為 4 字 節(jié)C o u n t 3 F I E L D 4 ; 定 義 數(shù) 據(jù) 域 C o u n t 3 , 長 度 為 4 字 節(jié) . . . L D R R 1 , C o u n t 1 ; R 1 ← [ 0 x 0 x 4 0 0 0 3 0 0 0 + 0 x 0 0 ] S T R R 1 , C o u n t 2 ; R 1 → [ 0 x 0 x 4 0 0 0 3 0 0 0 + 0 x 0 4 ] ? 數(shù)據(jù)定義偽指令( 8) ( 4) SPACE: SPACE用于分配一塊內(nèi)存單元,并用 0初始化。 %與 SPACE同義。 偽指令格式如下: 其中, label為內(nèi)存塊起始地址標號, expr為所要分配的內(nèi)存字節(jié)數(shù)。 例 14 為 Buf變量申請空間。 { l a b e l } S P A C E e x p r A R E A D a t a R A M , D A T A , R E A D W R I T E ; 聲 明 數(shù) 據(jù) 段 D a t a R A MB u f S P A C E 1 0 0 0 ; 分 配 1 0 0 0 字 節(jié) 空 間 ? 數(shù)據(jù)定義偽指令( 9) ( 5) DCB、 DCW、 DCD、 DCQ: 這 4條偽指令都是用于分配一段內(nèi)存單元,并對該內(nèi)存單元初始化。唯一的區(qū)別是它們分配內(nèi)存單元的大小不同。 這一類偽指令的格式是: 其中標號 label字段是可有可無的,它表示分配的內(nèi)存起始地址,作用與指令語句前的標號相同。 Operand為操作數(shù),即內(nèi)存單元的初始化數(shù)據(jù)。 助記符( Mnemonic)字段說明所用偽指令的助記符,常用的有以下幾種: ■ DCB分配一段字節(jié)的內(nèi)存單元,其后的每個操作數(shù)都占有一個字節(jié),操作數(shù)可以為 128~ 255的數(shù)值或字符串。 { la b e l} M n e m o n ic O p e r a n d , . . . , O p e r a n d ? 數(shù)據(jù)定義偽指令( 10) ■ DCW分配一段半字的內(nèi)存單元,其后的每個操作數(shù)都占有兩個字節(jié),操作數(shù)是 16位二進制數(shù),取值范圍為32768~ 65535。 ■ DCD分配一段字的內(nèi)存單元,其后的每個操作數(shù)都占有 4個字節(jié),操作數(shù)可以是 32位的數(shù)字表達式,也可以是程序中的標號(因為程序中的標號代表地址,也是32位二進制數(shù)值)。 ■ DCQ分配一段雙字的內(nèi)存單元,其后的每個操作數(shù)都占有 8個字節(jié)。 例 15 分配內(nèi)存單元舉例(操作數(shù)可以是常數(shù),或者是表達式)。 ? 數(shù)據(jù)定義偽指令( 11) 匯編程序在匯編期間對存儲器進行內(nèi)存分配,分配結(jié)果如圖 ,其中 Addr代表一個隨機分配的內(nèi)存地址。圖 ,其中DCB偽指令定義的每個數(shù)據(jù)占用一個字節(jié)空間, DCW偽指令定義的每個數(shù)據(jù)占用兩個字節(jié)空間, DCD偽指令定義的每個數(shù)據(jù)占用 4個字節(jié)空間。 D A T A _ B D C B 1 0 , 4 , 0 x 3 3 , 3 * 2 0 ; 分 配 字 節(jié) 類 型 內(nèi) 存 單 元D A T A _ W D C W 1 0 0 0 , 0 x 1 0 0 0 ; 分 配 半 字 類 型 內(nèi) 存 單 元D A T A _ D D C D 0 x F F F D 0 0 ; 分 配 字 類 型 內(nèi) 存 單 元 ? 數(shù)據(jù)定義偽指令( 12) 圖 例 15內(nèi)存分配示意圖 …十 六 進 制數(shù) 據(jù) 表 示D A T A _ DD A T A _ WD A T A _ BF F F D 0 01 0 0 03 E 83 C3 34A A d d r + 0A d d r + 1A d d r + 2A d d r + 3A d d r + 4A d d r + 6A d d r + 8A d d r + C ? 數(shù)據(jù)定義偽指令( 13) 例 16 分配內(nèi)存單元舉例(操作數(shù)也可以是字符串)。 例 16的內(nèi)存分配結(jié)果如圖 ,用了 10個字節(jié)空間保存這個字符串,標號 MESSAGE指向該內(nèi)存塊的第一個地址。 MESSAGE DCB Hi, Monkey$ ;分配字節(jié)類型內(nèi)存單元 ? 數(shù)據(jù)定義偽指令( 14) 圖 例 16內(nèi)存分配示意圖 Hi,Monkey$…字 符 數(shù) 據(jù) 表 示M E S S A G E低 地 址 A d d r高 地 址A d d r + 9 ? 數(shù)據(jù)定義偽指令( 15) 例 17 向量中斷表(操作數(shù)還可以是程序中的標號)。 L D R P C , R e s e t A d d r
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1