彙編簡化段定義

來源:互聯網
上載者:User

  1. 儲存模型偽指令

 表4.2.3 MASM 5.0和MASM 6.0支援的儲存模型:

儲存模型 功 能 適用作業系統
Tiny (微型) 所有資料和代碼都放在一個段內,其訪問都為NEAR型,整個程式≤64K,並會產生.COM檔案。 MS-DOS
Small (小型) 所有代碼在一個64KB的段內,所有資料在另一個64KB的段內(包括資料區段,堆棧段和附加段)。 MS-DOS
Windows
Medium (中型) 所有代碼>64K時可放在多個程式碼片段中,轉移或調用可為FAR型。所有資料限在一個段內,DS可保持不變。 MS-DOS
Windows
Compact(緊湊型) 所有代碼限在一個段內,轉移或調用可為NEAR型。資料>64K時,可放在多個段中。 MS-DOS
Windows
Large (大型) 允許程式碼片段和資料區段都可超過64K,被放置在有多個段內,所以資料和代碼都是遠訪問。 MS-DOS
Windows
Huge (巨型) 單個資料項目可以超過64K,其它同Large模型 MS-DOS
Windows
Flat (平展型) 所有代碼和資料放置在一個段中,但段地址是32位的,所以整個程式可為4GB。MASM 6.0支援該模型。 OS/2
WindowsNT
   注意:Small 模型是一般應用程式最常用的一種模型,因為只有一個程式碼片段和一個資料區段,所以資料和代碼都是近訪問的。這種模型的資料區段是指資料區段、堆棧段和附加段的總和。

  在DOS下用組合語言編程時,可根據程式的不同特點選擇前6種模型,一般可以選用SMALL模型。另外,TINY模型將產生COM程式,其他模型產生EXE程式。FLAT模型只能運行在32位x86 CPU上,DOS下不允許使用這種模型。當與進階語言混合編程時,兩者的儲存模型應當一致。

  2. 簡化的段偽指令

 表4.2.4 簡化段偽指令的格式如下表:

簡化段偽指令 功 能 注釋
.CODE [段名] 建立一個程式碼片段 段名為可選項,如不給出段名,則採用預設段名。對於多個程式碼片段的模型,則應為每個程式碼片段指定段名。
.DATA 建立一個資料區段 段名是:_DATA
.DATA? 建立無初值變數的資料區段 段名是:_BSS
.FARDATA [段名] 建立有初值的遠調用資料區段 可指定段名,如不指定,則將以FAR_DATA命名。
.FARDATA? [段名] 建立無初值的遠調用資料區段 可指定段名,如不指定,則將以FAR_BSS命名。
.CONST 建立唯讀常量資料區段 段名是:CONST
.STACK [大小] 建立一個堆棧段並指定堆棧段大小 段名是:stack。如不指定堆棧段大小,則預設值為1KB


  3.與簡化段定義有關的預定義符號

  下面的舉例說明預定義符號的使用方法。在完整的段定義情況下,在程式的一開始,需要用段名裝入資料區段寄存器,如例4.1中的
       mov   ax,data_seg1
       mov   ds,ax
  若用簡化段定義,則資料區段只用.data來定義,而並未給出段名,此時可用
       mov   ax,@data 
       mov   ds,ax
  這裡預定義符號@data就給出了資料區段的段名。

  4.簡化段定義舉例
  
 例4.3
   .MODEL   SMALL
   .STACK   100H    ; 定義堆棧段及其大小
   .DATA         ; 定義資料區段
       .
       .
       .

   .CODE         ; 定義程式碼片段
 START:           ; 起始執行地址標號
   MOV     AX, @DATA ; 資料區段地址
   MOV     DS, AX   ; 存入資料區段寄存器
       .
       .
       .

   MOV    AX, 4C00H
   INT    21H
   END    START    ; 程式結束

  從例4.3可以看出,簡化段定義比完整的段定義簡單得多。但由於完整的段定義可以全面地說明段的各種類型與屬性,因此在很多情況下仍需使用它。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.