<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > ASM-51宏匯編應用指南

ASM-51宏匯編應用指南

作者: 時(shí)間:2012-05-12 來(lái)源:網(wǎng)絡(luò ) 收藏

2、6 宏處理操作

本文引用地址:http://dyxdggzs.com/article/171459.htm

在源程序中,如果有一段程序需要多次使用,為使程序不重復書(shū)寫(xiě)這段程序,可用宏定義把所需要重復出現的程序塊定義成宏指令,此后在宏指令出現的地方,宏程序總是自動(dòng)地把它們替換成相應的代碼段。

(1) 宏指令格式

[ 宏指令名 ] MACRO [形式參數,。。。]

代碼段

ENDM

在宏定義中,使用了“形式參數“,它們引用宏指令時(shí)被給出的一些名字或數值(實(shí)在參數)所替換。使用形式參數給宏指令帶來(lái)了很大的靈活性。

(2)宏調用格式

[ 宏指令名 ] [實(shí)在參數,。。。]

注意:1、當有兩個(gè)以上的實(shí)參數時(shí),它們之間要用逗號,空格或列表符隔開(kāi)。
2、實(shí)參數項將對應替換宏指令中形式參數。如果形式參數為標號時(shí),則在宏調用中,實(shí)參也應為標號,且要求實(shí)參是唯一的。如果宏定義中有自己的標號,則在宏調用時(shí),程序自動(dòng)地把標號變成唯一的標號。

2、7 其他

(1) 替換名 ALTNAME

功能: 這一偽指令用來(lái)自定義名字,以替換源程序中原來(lái)的保留字,替換的保留字均可等效地用于子程序中。

格式: ALTNAME 保留字 自定義名

注意: 自定義名與保留字之間首字符必須相同。

(2) 附加文件的鏈結 INCLUDE

功能: 利用此偽指令可將一個(gè)源文件插入到當前源文件中一起,最終成為一個(gè)完整的源程序。

格式: INCLUDE [ 驅動(dòng)器名: ] [ 路徑名 ] 文件名

注意:1、文件名中若沒(méi)有擴展名,則系統默認是。ASM(該文件必須是能打開(kāi)的)。

2、被插入的源程序中不能包含END偽指令,否則匯編會(huì )停止運行。被鏈接文件的每一行,在程序清單中以“I“開(kāi)頭。

3、鏈接偽指令可有8級嵌套, 若要求嵌套的多, 則要修改 DOS 中的

CONFIG。SYS文件的FILES參數。

3 宏匯編運行

3、1 系統運行環(huán)境

宏匯編要在IBM-PC及其兼容機上運行(至少128K字節的RAM);具有一個(gè)軟驅動(dòng)器或硬驅動(dòng)器,采用ANSI標準終端(包括鍵盤(pán),顯示控制器,打印機,至少一個(gè)RS-232異步通訊接口)。軟件有PC-DOS,MS-DOS 2。0 以上版本,ASM_51系統。

3、2 宏匯編程序的運行

以 8051 宏匯編為例,在DOS系統的提示符下鍵入

A> ASM51 文件名。ASM CR>

等錯誤的個(gè)數出現后 ,鍵入 CR> 變返回到DOS提示符下。8051的宏匯編與此相似。

4 匯編的使用

使用宏匯編是將8051源程序匯編生成列表輸出文件和目標代碼文件,供模擬/調試時(shí)使用。我們使用的宏匯編完全采用Inter標準助記符和行格式,因此在編寫(xiě)源程序時(shí),可以使用宏匯編中的偽指令, 以增加源程序的運行速度和可讀性。也可以直接用 Inter 標準助記符來(lái)編寫(xiě)源程序。再經(jīng)過(guò)宏匯編進(jìn)行匯編,便可得到列表輸出文件和目標代碼文件。

匯編的格式如下:

> ASM51 文件名。ASM [ 可選項 ]

其中可選項為: /L, /H, /S, /P, /N

/L 表示源程序匯編后不生成列表冊輸出文件(.LST),只顯示在屏幕上。

/H 表示源程序匯編后不生成目標代碼文件(.HEX)。

/S 表示源程序匯編后不生成符號表。

/P 表示源程序匯編后生成符號表。

/N 表示源程序匯編后,程序是連續的顯示。

如果沒(méi)有選擇項,則表示產(chǎn)生列表輸出文件和目標代碼文件,且在LST文件后面列出符號表。 生成的目標代碼便可以進(jìn)行模擬/調試,如果在模擬/調試中發(fā)現錯誤,則源程序要經(jīng)過(guò)修改,重新匯編,然后再進(jìn)行模擬/調試,直到完全正確。

若程序匯編過(guò)程中有錯誤,則給出出錯信息(出錯信息見(jiàn)附錄)。 生成的目標代碼可以進(jìn)行模擬/調試/燒寫(xiě)。

附錄 ASM-51 匯編出錯信息表

1 Address Out of Range 一個(gè)被計值的目標地址超出了當前語(yǔ)句的范圍。

2 Badly Formed Argument 數字規定的類(lèi)型中有非法數字存在。

3 Illefal Equale 有不允許的類(lèi)型約定。

4 Label Name Conflicts With Symbol Name 在程序中有兩個(gè)符號相同。

5 Label Address Changed On Pass 2。 源程序在此錯誤之前,還有一些錯誤。

6 Missing Argument in Expression 表達式中算術(shù)運算符后面沒(méi)有操作數。

7 Missing END Statrment 匯編的源程序結尾未發(fā)現END語(yǔ)句。

8 Multiply Defined Label 源程序中定義了兩個(gè)標號。

9 Unbalanced Parentheses 表達式中多余或缺少括號。

10 Undefined Symbol 語(yǔ)句中的符號名可能拼錯或未被定義。

11 Unrecognized Statemen or Undefined Argument 未定義參數的指令或代碼。

12 Value Out of Range 有一個(gè)非法的值來(lái)說(shuō)明一個(gè)有著(zhù)可能值限制的語(yǔ)句。


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: 指南 應用 匯編 ASM-51

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>