idataparameter,51單片機(jī)所有偽指令
idataparameter,51單片機(jī)所有偽指令
正文
文章目錄
- idataparameter51單片機(jī)所有偽指令?
idataparameter51單片機(jī)所有偽指令?
MCS-51單片機(jī)常用偽指令
一)符號(hào)定義偽指令
符號(hào)定義名 用 法 說 明
EQU 為常量符號(hào)名等定義符號(hào)化常量名 符號(hào)名不能重名定義
= 為常量符號(hào)名等定義符號(hào)化常量名 符號(hào)名不能重名定義
DATA 用來為一個(gè)字節(jié)類型的符號(hào)定值 符號(hào)名不能重名定義
BYTE 用來為一個(gè)字節(jié)類型的符號(hào)定值 符號(hào)名不能重名定義
WORD 用來為一個(gè)字類型的符號(hào)定值 符號(hào)名不能重名定義
BIT 用來定義一個(gè)字位類型 符號(hào)名不能重名定義
SET 用來定義整數(shù)類型的符號(hào)名 符號(hào)名可重名定義
1. EQU(=) 指令
EQU 指令用于將一個(gè)數(shù)值或寄存器名賦給一個(gè)指定符號(hào)名。
指令格式: 符號(hào)名 EQU(=) 表達(dá)式
符號(hào)名 EQU(=) 寄存器名
經(jīng)過EQU 指令賦值的符號(hào)可在程序的其它地方使用以代替其賦值。
例如:MAX EQU 2000
則在程序的其它地方出現(xiàn)MAX就用2000 代替。
2. SET 指令
SET 指令類似于EQU 指令不同的是SET 指令定義過的符號(hào)可重定義。
指令格式:符號(hào)名 SET 表達(dá)式
符號(hào)名 SET 寄存器名
例如:MAX SET 2000
MAX SET 3000
3. BIT 指令
BIT 指令用于將一個(gè)位地址賦給指定的符號(hào)名。
指令格式:符號(hào)名 BIT 位地址
經(jīng)BIT 指令定義過的位符號(hào)名不能更改。
例如:X_ON BIT 60H ;定義一個(gè)安防位地址
X_OFF BIT 24h.2 ;定義一個(gè)安防位地址
4. DATA(BYTE) 指令
DATA 指令用于將一個(gè)內(nèi)部RAM 的地址賦給指定的符號(hào)名
指令格式:符號(hào)名 DATA 表達(dá)式
數(shù)值表達(dá)式的值應(yīng)在0~255 之間表達(dá)式必須是一個(gè)簡單再定位表達(dá)式。
例如:REGBUF DATA(BYTE) 40H
PORT0 DATA(BYTE) 80H
DATA與BYTE的區(qū)別: DATA與BYTE是相類似的偽指令。 當(dāng)程序運(yùn)行到DATA偽指令定義的符號(hào)名時(shí)該符號(hào)名將被顯示;而由BYTE定義的符號(hào)名不被顯示。
5. XDATA 指令
XDATA 指令用于將一個(gè)外部RAM 的地址賦給指定的符號(hào)名。
指令格式:符號(hào)名 XDATA 表達(dá)式
例如:RSEG XSEG1 ;選擇一個(gè)外部數(shù)據(jù)段
ORG 100H
MING DS 10 ;在標(biāo)號(hào)MING 處保留10 個(gè)字節(jié)
HOUR XDATA MING+5
MUNIT XDATA HOUR+5
6. IDATA 指令
IDATA 指令用于將一個(gè)間接尋址的內(nèi)部RAM 地址賦給指定的符號(hào)名。
指令格式:符號(hào)名 IDATA 表達(dá)式
例如:FULLER IDATA 60H
7. CODE 指令
用于將程序存儲(chǔ)器ROM 地址賦給指定的符號(hào)名。
指令格式:符號(hào)名 CODE 表達(dá)式
例如:RESET CODE 00H
8. SEGMENT 指令
SEGMENT 指令用來聲明一個(gè)再定位段和一個(gè)可選的再定位類型。
指令格式:再定位段型 SEGMENT 段類型(再定位類型)
段類型用于指定所聲明的段將處的儲(chǔ)存器地址空間 可用的段類型有CODE
/XDATA/DATA/IDATA 和BIT。
例如: FLAG SEGMENT BIT
PONITER SEGMENT IDATA
(二)保留和初始化存儲(chǔ)器空間
此指令用于在存儲(chǔ)器空間內(nèi)保留和初始化字、字節(jié)和位單元保留空間始于當(dāng)前地址的安防段和當(dāng)前偏移地址再定位段。
1. DS
以字節(jié)為單位在內(nèi)部和外部存儲(chǔ)器保留存儲(chǔ)器空間。
指令格式:[標(biāo)號(hào):] DS 數(shù)值表達(dá)式
DS 指令使當(dāng)前數(shù)據(jù)段的地址計(jì)數(shù)器增加表達(dá)式結(jié)果之值地址計(jì)數(shù)器與表達(dá)式結(jié)果之和不能超過當(dāng)前地址空間。標(biāo)號(hào)值將是保留區(qū)的安防個(gè)字節(jié)地址。
例如:ORG 0200H
CUNTER DS 10 ;COUNTER 的地址是0200H。
2. DBIT
在內(nèi)部數(shù)據(jù)區(qū)的BIT 段以位為單位保留存儲(chǔ)空間。
指令格式:[標(biāo)號(hào):] DBIT 數(shù)值表達(dá)式
其操作類似于DS。
3. DB
以給定表達(dá)式的值的字節(jié)形式初始化代碼空間。
指令格式:[標(biāo)號(hào):] DB 數(shù)值表達(dá)式
其操作類似于DS。
4. DW
以給定表達(dá)式的值的雙字節(jié)形式初始化代碼空間。
指令格式:[標(biāo)號(hào):] DB 數(shù)值表達(dá)式
其操作類似于DS。
(三)控制連接指令
控制連接偽指令共3 條用于表明當(dāng)前模塊中需要使用的外部函數(shù)名及可被其它模塊調(diào)用的函數(shù)名當(dāng)該函數(shù)用于讓C 調(diào)用時(shí)聲明時(shí)前要加下劃線“_”。
1. PUBLIC
聲明可被其它模塊使用的公共函數(shù)名。
指令格式:PUBLIC 符號(hào) [符號(hào)符號(hào)[······]]
PUBLIC 后可跟多個(gè)函數(shù)名用逗號(hào)格開。每個(gè)函數(shù)名都必須是在模塊內(nèi)定義過的。
例如:PUBLIC INTER_OUTER
其中_OUTER 可供C 調(diào)用。
2. EXTRN
EXTRN 是與PUBLIC 配套使用的要調(diào)用其它模塊的函數(shù)就必須先在模塊前聲明。
指令格式:EXTRN 段類型(符號(hào)符號(hào)······)
例如:EXTRN CODE (TONGXING,ZHUANHUAN)
調(diào)用外部TONGXING和ZHUANHUAN 程序。
3. NAME
用來給當(dāng)前模塊命名。
指令格式:NAME 模塊名
例如:NAME TIMER
定義一個(gè)模塊名為TIMER 的模塊。
(四)段選擇指令
用來選擇當(dāng)前段是安防段還是再定位段使用段選擇指令。
1. 安防段選擇指令
安防選擇指令有CSEG/DSEG/XSEG/ISEG 和BSEG分別選擇安防代碼段、內(nèi)部安防數(shù)據(jù)段、外部安防數(shù)據(jù)段、內(nèi)部間接尋址安防數(shù)據(jù)段和安防位尋址數(shù)據(jù)段。
指令格式如下:
CSEG [AT 安防地址表達(dá)式]
DSEG [AT 安防地址表達(dá)式]
XSEG [AT 安防地址表達(dá)式]
ISEG [AT 安防地址表達(dá)式]
BSEG [AT 安防地址表達(dá)式]
2. 再定位段選擇指令
再定位段選擇指令為RSEG用于選擇一個(gè)已在前面定義過的再定義段作為當(dāng)前段
指令格式:RSEG 段名
段名必須是在前面聲明過的再定位段。
例如:
DATAS SEGMENT DATA :聲明一個(gè)再定位DATA 段
CODES SEGMENT CODE ;聲明一個(gè)再定位CODE 段
BSEG AT 60H
RSEG CODES ;選擇前面聲明的再定位CODE 段作為當(dāng)前段。
(五)條件偽操作
條件偽操作格式:
IF 表達(dá)式
[ 程序塊1 ]
[ ELSE ]
[ 程序塊2 ]
ENDIF
當(dāng)IF指令中的表達(dá)式為真時(shí)被匯編的代碼段是程序塊1;當(dāng)IF指令中的表達(dá)式為假時(shí)被匯編的代碼段是程序塊2。 在一個(gè)條件結(jié)構(gòu)中僅有一個(gè)代碼段被匯編其它的則被忽略。
(六)宏處理操作
在源程序中如果有一段程序需要多次使用為使程序不重復(fù)書寫這段程序可用宏定義把所需要重復(fù)出現(xiàn)的程序塊定義成宏指令此后在宏指令出現(xiàn)的地方宏匯編程序總是自動(dòng)地把它們替換成相應(yīng)的代碼段。
(1) 宏指令格式
[ 宏指令名 ] MACRO [形式參數(shù)。。。]
代碼段
ENDM
在宏定義中使用了“形式參數(shù)“它們引用宏指令時(shí)被給出的一些名字或數(shù)值(實(shí)在參數(shù))所替換。使用形式參數(shù)給宏指令帶來了很大的靈活性。
(2) 宏調(diào)用格式
[ 宏指令名 ] [實(shí)在參數(shù)。。。]
注意: 1、當(dāng)有兩個(gè)以上的實(shí)參數(shù)時(shí)它們之間要用逗號(hào)空格或列表符隔開。
2、實(shí)參數(shù)項(xiàng)將對(duì)應(yīng)替換宏指令中形式參數(shù)。如果形式參數(shù)為標(biāo)號(hào)時(shí)則在宏調(diào)用中實(shí)參也應(yīng)為標(biāo)號(hào)且要求實(shí)參是安防的。如果宏定義中有自己的標(biāo)號(hào)則在宏調(diào)用時(shí)匯編程序自動(dòng)地把標(biāo)號(hào)變成安防的標(biāo)號(hào)。
(七)其他
(1) 替換名 ALTNAME
功能: 這一偽指令用來自定義名字以替換源程序中原來的保留字替換的保留字均可等效地用于子程序中。
格式: ALTNAME 保留字 自定義名
注意: 自定義名與保留字之間首字符必須相同。
(2)文件的鏈結(jié) INCLUDE
功能: 利用此偽指令可將一個(gè)源文件插入到當(dāng)前源文件中一起匯編安防終成為一個(gè)完整的源程序。
格式: INCLUDE [ 驅(qū)動(dòng)器名: ] [ 路徑名 ] 文件名
注意:1、文件名中若沒有擴(kuò)展名則系統(tǒng)默認(rèn)是。ASM(該文件必須是能打開的)。
2、被插入的源程序中不能包含END偽指令否則匯編會(huì)停止運(yùn)行。被鏈接文件的每一行在程序清單中以“I“開頭。
3、鏈接偽指令可有8級(jí)嵌套 若要求嵌套的多 則要修改 DOS 中的CONFIG。SYS文件的FILES參數(shù)。
返回:安防新聞
廣告咨詢:18215288822 采購熱線:18215288822
聲明:農(nóng)機(jī)大全所有(圖文、音視頻)均由用戶自行上傳分享,僅供網(wǎng)友學(xué)習(xí)交流,版權(quán)歸原作者。若您的權(quán)利被侵害,請(qǐng)聯(lián)系 56325386@qq.com 刪除。
載注明出處:http://www.121vipspeaking.com/news/291533.html