|
匯編器提供一些偽指令偽指令并不直接轉(zhuǎn)換成操作數(shù)而是用于調(diào)整存儲(chǔ)器中程序的位置
定義宏初始化存儲(chǔ)器等全部偽指令在表4.2 中給出
1 BYTE 保存字節(jié)到變量
BYTE 偽指令保存存儲(chǔ)的內(nèi)容到SRAM 中為了能提供所要保存的位置BYTE 偽指令前應(yīng)有
標(biāo)號(hào)該偽指令帶一個(gè)表征被保存字節(jié)數(shù)的參數(shù)該偽指令僅用在數(shù)據(jù)段內(nèi)見偽指令CSEG DSEG
和ESEG 注意必須帶一個(gè)參數(shù)字節(jié)數(shù)的位置不需要初始化
語法LABEL BYTE 表達(dá)式
2 CSEG 一代碼段
CSEG 偽指令定義代碼段的開始位置一個(gè)匯編文件包含幾個(gè)代碼段這些代碼段在匯 編時(shí)
被連接成一個(gè)代碼段在代碼段中不能使用BYTE 偽指令典型的缺省段為代碼段代碼段有一個(gè)
字定位計(jì)數(shù)器ORG 偽指令用于放置代碼段和放置程序存儲(chǔ)器指定位置的常數(shù)
CSEG 偽指令不帶參數(shù)
語法CSEG
表4.2 偽指令表
序號(hào) 偽指令 說 明 序號(hào) 偽指令 說 明
1 BYTE 保存字節(jié)到變量 10 ESEG E2PROM 段
2 CSEG 代碼段 11 EXIT 退出文件
3 DB 定義字節(jié)常數(shù) 12 INCLUDE 從指定文件開始讀
4 DEF 設(shè)置寄存器的符號(hào)名 13 LIST 打開列表文件
5 DEVICE 定義被匯編的器件 14 LISTMAC 打開宏表達(dá)式
6 DSEG 數(shù)據(jù)段 15 MACRO 宏開始
7 DW 定義字常數(shù) 16 NOLIST 關(guān)閉列表文件
8 ENDMACRO 宏結(jié)束 17 ORG 設(shè)置程序起始位置
9 EQU 符號(hào)相等于表達(dá)式 18 SET 賦值給一個(gè)標(biāo)號(hào)
3 DB 在程序存儲(chǔ)器或E2PROM 存儲(chǔ)器中定義字節(jié)常數(shù)
DB 偽指令保存數(shù)據(jù)到程序存儲(chǔ)器或E2PROM 存儲(chǔ)器中為了提供被保存的位置在DB 偽指令
前必須有標(biāo)號(hào)DB 偽指令可帶一個(gè)表達(dá)式表至少有一個(gè)表達(dá)式DB 偽指令必須放在代碼段或
E2PROM 段表達(dá)式表是一系列表達(dá)式用逗號(hào)分隔每個(gè)表達(dá)式必須是一128 255 之間的有效值
如果表達(dá)式有效值是負(fù)數(shù)則用8 位2 的補(bǔ)碼放在程序存儲(chǔ)器或E2PROM 存儲(chǔ)器中如果DB 偽指
令用在代碼段并且表達(dá)式表多于一個(gè)表達(dá)式則以兩個(gè)字節(jié)組合成一個(gè)字放在程序存儲(chǔ)器中
如果表達(dá)式表是奇數(shù)那么最后一個(gè)表達(dá)式將獨(dú)自以字格式放在程序存儲(chǔ)器中而不管下一行匯
編代碼是否是單個(gè)DB 偽指令
語法LABEL DB 表達(dá)式
4 DEF 設(shè)置寄存器的符號(hào)名
DEF 偽指令允許寄存器用符號(hào)代替一個(gè)定義的符號(hào)用在程序中并指定一個(gè)寄存器,一個(gè)寄
存器可以賦幾個(gè)符號(hào)符號(hào)在后面程序中能再定義
語法DEF 符號(hào)一寄存器
5 DEVICE 定義被匯編的器件
DEVICE 偽指令允許用戶告知匯編器被執(zhí)行的代碼使用那種器件如果使用該偽指令若在代
碼中有指定的器件不提供的指令則提示一個(gè)警告如果代碼段或E2PROM 段的尺寸大于被指定器
件的尺寸也提示警告如果不使用DEVICE 偽指令則假定器件提供所有的指令也不限制存儲(chǔ)
器尺寸
語法 .DEVICE AT90S1200 AT90S2313 AT90S4414 AT9OS8515
6 DSEG 一數(shù)據(jù)段
DSEG 偽指令定義數(shù)據(jù)段的開始一個(gè)匯編文件能包含幾個(gè)數(shù)據(jù)段這些數(shù)據(jù)段在匯編時(shí)
被連接成一個(gè)數(shù)據(jù)段一個(gè)數(shù)據(jù)段正常僅由BYTE 偽指令和標(biāo)號(hào)組成數(shù)據(jù)段有自己的定
位字節(jié)計(jì)數(shù)器ORG 偽指令被用于在SRAM 指定位置放置變量DSEG 偽指令不帶參數(shù)
語法 .DSEG
7 DW——在程序存儲(chǔ)器和E2PROM 存儲(chǔ)器中定義字常數(shù)
DW 偽指令保存代碼到程序存儲(chǔ)器或E2PROM 存儲(chǔ)器為了提供被保存的位置在DW 偽指
令前必須有標(biāo)號(hào)DW 偽指令可帶一個(gè)表達(dá)式表至少有一個(gè)表達(dá)式DW 偽指令必須放在
代碼段或E2PROM 段表達(dá)式表是一系列表達(dá)式用逗號(hào)分隔每個(gè)表達(dá)式必須是一32 768
65 535 之間的有效值如果表達(dá)式有效值是負(fù)數(shù)則用 16 位2 的補(bǔ)碼放在程序存儲(chǔ)器中
語法LABEL .DW 表達(dá)式表
8·ENDMACRO 一宏結(jié)束
ENDMACRO 偽指令定義宏定義的結(jié)束該偽指令并不帶參數(shù)參見MACRO 宏定義偽指令
語法 .ENDMACRO
9 EQU——設(shè)置一個(gè)符號(hào)相等于一個(gè)表達(dá)式
EQU 偽指令賦一個(gè)值到標(biāo)號(hào)該標(biāo)號(hào)用于后面的表達(dá)式用EQU 偽指令賦值的標(biāo)號(hào)是一個(gè)
常數(shù)不能改變或重定義
語法 .EQU 標(biāo)號(hào)= 表達(dá)式
10 ESEG - E2PROM 段
ESEG 偽指令定義E2PROM 段的開始位置一個(gè)匯編文件包含幾個(gè)E2PROM 段這些E2PROM
段在匯編時(shí)被連接成一個(gè)E2PROM 段在E2PROM 段中不能使用BYTE 偽指令E2PROM 段有一
個(gè)字節(jié)定位計(jì)數(shù)器ORG 偽指令用于放置E2PROM 存儲(chǔ)器指定位置的常數(shù)ESEG 偽指令不帶參數(shù)
語法 .ESEG
11 EXIT——退出文件
EXIT 偽指令告訴匯編器停止匯編該文件正常情況下匯編器匯編到文件的結(jié)束如果
EXIT 出現(xiàn)在包括文件中則匯編器從文件中INCLUDE 偽指令行繼續(xù)匯編
語法 .EXIT
12·INCLUDE——包括另外的文件
INCLUDE 偽指令告訴匯編器從指定的文件開始讀然后匯編器匯編指定的文件直到文件
結(jié)束或遇到EXIT 偽指令一個(gè)包括文件也可能自己用INCLUDE 偽指令來表示
語法 .INCLUDE“文件名”
13 LIST——打開列表文件生成器
LIST 偽指令告訴匯編器打開列表文件生成器匯編器生成一個(gè)匯編源代碼地址和操作
代碼的文件列表列表文件生成器缺省值是打開該偽指令總是與NOLIST 偽指令一起出現(xiàn)
用于生成列表或匯編源文件有選擇的列表
語法 .LIST
14 LISTMAC——打開宏表達(dá)式
LISTMAC 偽指令告訴匯編器當(dāng)調(diào)用宏時(shí)用列表生成器在列表文件中顯示宏表達(dá)式
缺省值僅是在列表文件中顯示宏調(diào)用參數(shù)
語法 .LISTMAC
15 MACRCO 一宏開始
MACRO 偽指令告訴匯編器這是宏開始MACRO 偽指令帶宏名和參數(shù)當(dāng)后面的程序中寫
了宏名被表達(dá)的宏程序在指定位置被調(diào)用一個(gè)宏可帶10 個(gè)參數(shù)這些參數(shù)在宏定義中
用0 9 代表當(dāng)調(diào)用一個(gè)宏時(shí)參數(shù)用逗號(hào)分隔宏定義用ENDMACRO 偽指令結(jié)束
缺省值為匯編器的列表生成器僅列表宏調(diào)用為了在列表文件中包括宏表達(dá)式必須使
用 LISTMAC 偽指令在列表文件的操作代碼域內(nèi)宏用 a+ 作記號(hào)
語法 .MACRO 宏名
16 NOLIST--關(guān)閉列表文件生成器
NOLIST 偽指令告訴匯編器關(guān)閉列表文件生成器正常情況下匯編器生成一個(gè)匯編源
代碼地址和操作代碼文件列表缺省時(shí)為打開列表文件但是可用該偽指令禁止列表為
了使被選擇的匯編源文件部分產(chǎn)生列表文件該偽指令可以與LIST 偽指令一起使用
語法 .NOLIST
17 ORG 一設(shè)置程序起始位置
ORG 偽指令設(shè)置定位計(jì)數(shù)器一個(gè)絕對(duì)值設(shè)置的值為一個(gè)參數(shù)如果ORG 偽指令放在數(shù)
據(jù)段則設(shè)置SRAM 定位計(jì)數(shù)器如果該偽指令放在代碼段則設(shè)置程序存儲(chǔ)器計(jì)數(shù)器如
果該偽指令放在E2PROM 段則設(shè)置E2PROM 定位計(jì)數(shù)器如果該偽指令前帶標(biāo)號(hào)在相同
的源代碼行則標(biāo)號(hào)由參數(shù)值給出代碼和E2PROM 定位計(jì)數(shù)器的缺省值是零而當(dāng)匯編啟
動(dòng)時(shí) SRAM 定位計(jì)數(shù)器的缺省值是32 因?yàn)榧拇嫫髡加械刂窞?0 31 注意E2PROM 和
SRAM 定位計(jì)數(shù)器按字節(jié)計(jì)數(shù)而程序存儲(chǔ)器定位計(jì)數(shù)器按字計(jì)數(shù)
語法 .ORG 表達(dá)式
18 SET 設(shè)置一個(gè)與表達(dá)式相等的符號(hào)
SET 偽指令賦值給一個(gè)標(biāo)號(hào)這個(gè)標(biāo)號(hào)能用在后面的表達(dá)式中用SET 偽指令賦值的
標(biāo)號(hào)在后面的程序中能改變
語法 .SET 標(biāo)號(hào) = 表達(dá)式
4 ·1 3 表達(dá)式
匯編器包括一些表達(dá)式表達(dá)式由操作數(shù)運(yùn)算符和函數(shù)組成所有的表達(dá)式內(nèi)部為32
位
一操作數(shù)
1 用戶定義的標(biāo)號(hào)該標(biāo)號(hào)給出了放置標(biāo)號(hào)位置的定位計(jì)數(shù)器的值
2 用戶用SET 偽指令定義的變量
3 用戶用EQU 偽指令定義的常數(shù)
4 整數(shù)常數(shù)包括下列幾種形式
·十進(jìn)制缺省值 10 255
·十六進(jìn)制數(shù)二進(jìn)制表示法0x0a,$0a,0xff.$ff
二進(jìn)制數(shù)0b0O00101O,0bllllllll
5 PC 程序存儲(chǔ)器定位計(jì)數(shù)器的當(dāng)前值
二 函 數(shù)
1 LOW 表達(dá)式返回一個(gè)表達(dá)式的低字節(jié)
2 HIGH 表達(dá)式返回一個(gè)表達(dá)式的第二個(gè)字節(jié)
3 BYTE2 表達(dá)式與HIGH 函數(shù)相同
4 BYTE3 表達(dá)式返回一個(gè)表達(dá)式的第三個(gè)字節(jié)
5 BYTE4 表達(dá)式返回一個(gè)表達(dá)式的第四個(gè)字節(jié)
6 LWRD 表達(dá)式返回一個(gè)表達(dá)式的 0 15 位
(7) HWRD 表達(dá)式返回一個(gè)表達(dá)式的 16 31 位
8 PAGE 表達(dá)式返回一個(gè)表達(dá)式的 16 21 位
9 EXP2 表達(dá)式返回2 表達(dá)式
10 LOG2 表達(dá)式返回LOG2 表達(dá)式的整數(shù)部分
|
|