8086偽指令(匯編語言程序格式)

8086偽指令(匯編語言程序格式)

ID:44870531

大?。?04.22 KB

頁數(shù):28頁

時間:2019-10-31

8086偽指令(匯編語言程序格式)_第1頁
8086偽指令(匯編語言程序格式)_第2頁
8086偽指令(匯編語言程序格式)_第3頁
8086偽指令(匯編語言程序格式)_第4頁
8086偽指令(匯編語言程序格式)_第5頁
資源描述:

《8086偽指令(匯編語言程序格式)》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。

1、8086偽指令(匯編語言程序格式)匯編語言程序中的語句可以由指令、偽指令和宏指令組成。上一章我們介紹了8086指令系統(tǒng)中的6類指令,每一條指令都對應一種CPU操作。偽指令又稱為偽操作,它是在對源程序匯編期間由匯編程序處理的操作,它們可以完成如處理器選擇、定義程序模式、定義數(shù)據(jù)、分配存儲區(qū)、指示程序結束等功能。宏指令是由用戶按照宏定義格式編寫的一段程序,其中語句可以是指令、偽指令,甚至是已定義的宏指令。宏指令將在第七章中介紹。偽指令和指令的區(qū)別在于,每一條指令必須生成機器代碼,然后在程序運行期間由CPU來執(zhí)行其操作;而偽指令是在匯編期間由

2、匯編程序執(zhí)行的操作命令,除了數(shù)據(jù)定義及存儲器分配偽指令分配存儲器空間外,其它偽指令不生成目標碼。和各種指令一樣,偽指令也是程序設計不可缺少的工具。下面介紹一些常用的偽指令。4.2.1段定義偽指令 段定義偽指令是表示一個段開始和結束的命令,80x86有兩種段定義的方式:完整段定義和簡化段定義,分別使用不同的段定義偽指令來表示各種段。4.2.1.1完整的段定義偽指令完整段定義偽指令的格式如下:段名SEGMENT  . ?。 。蚊鸈NDS段名由用戶命名。對于數(shù)據(jù)段、附加段和堆棧段來說,段內一般是存儲單元的定義、分配等偽指令語句;對于代碼段

3、中則主要是指令及偽指令語句。定義了段還必須說明哪個段是代碼段,哪個段是數(shù)據(jù)段。ASSUME偽指令就是建立段和段寄存器關系的偽指令,其格式為:ASSUME段寄存器名:段名,…段寄存器名必須是CS、DS、ES和SS中的一個,而段名必須是由SEGMENT定義的段名?!ざㄎ活愋停赫f明段的起始邊界值(物理地址)?!  そM合類型:說明程序連接時的段組合方法?!ゎ悇e:在單引號中給出連接時組成段組的類型名。連接程序可把相同類別的段的位置靠在一起。例4.1  ;***********************  data_seg1segment      

4、 ;定義數(shù)據(jù)段            .            .            .  data_seg1ends  ;***********************  data_seg2segment       ;定義附加段            .            .            .  data_seg2ends  ;***********************  code_segsegment       ;定義代碼段   assumecs:code_seg,ds:data_seg1,es:data_s

5、eg2  start:            ;程序執(zhí)行的起始地址  ;setDSregistertocurrentdatasegment     mov  ax,data_seg1  ;數(shù)據(jù)段地址     mov  ds,ax     ;存入DS寄存器  ;setESregistertocurrentextrasegment     mov  ax,data_seg2  ;附加段地址     mov  es,ax     ;存入ES寄存器            .            .            .  code_seg

6、ends        ;代碼段結束  ;**************************    end  start  由于ASSUME偽指令只是指定某個段分配給哪一個段寄存器,它并不能把段地址裝入段寄存器中,所以在代碼段中,還必須把段地址裝入相應的段寄存器中:  MOV   AX,DATA_SEG1   ;數(shù)據(jù)段地址  MOV   DS,AX      ;存入DS寄存器  MOV   AX,DATA_SEG2   ;附加段地址  MOV   ES,AX      ;存入ES寄存器  如果程序中還定義了堆棧段STACK_SEG,也

7、需要把段地址裝入SS中:  MOV   AX,STACK_SEG   ;堆棧段地址  MOV   SS,AX      ;存入ES寄存器  注意,在程序中不需要用指令裝入代碼段的段地址,因為在程序初始化時,裝入程序已將代碼段的段地址裝入CS寄存器了?! 榱藢Χ味x作進一步地控制,SEGMENT偽指令還可以增加類型及屬性的說明,其格式如下:  段名  SEGMENT [定位類型][組合類型]['類別']           .            .            .  段名  ENDS  []中的內容是可選的,一般情況下,這

8、些說明可以不用。但是,如果需要用連接程序把本程序與其他程序模塊相連接時,就需要提供類型和屬性的說明。表4.2.1·定位類型:說明段的起始邊界值(物理地址)。定位類型說明BYTE段可以從任何地址邊界開始WOR

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。