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