Dosassembly
不會受到保護模式的限制。
在表格一的PC的中斷表中,第21號中斷是保留給 MS DOS 使用的,因此,當您在 DOS 下撰寫組合語言時,通常會一直的呼叫21號中斷,以進行DOS的系統呼叫。表格 3.4顯示了部分的 DOS 中斷表。
表格一、DOS的中斷表
AH | 說明 | AH | 說明 |
0 | 讀取字元,回傳 AL=字元 | 2A | 取得系統日期 |
1 | 輸出字元,參數DL=字元 | 2B | 設定系統日期 |
2 | 從序列埠讀取字元 | … | |
3 | 寫出字元道序列埠 | 4B | 載入或執行程式 |
4 | 將字元寫到印表機 | 4C | 終止行程 |
… | … | ||
9 | 將字串寫入標準輸出 DS:DX = 字串的位址 | 7305h | 絕對磁碟的讀取與寫入 |
如果您安裝了 MS DOS 系統,就可以透過 int 21h中斷與 MS DOS 溝通,範例 3.17顯示了一個在 DOS 中使用 int 21h 中的 ah=9 號服務印出字串的方法。
範例一、利用DOS系統呼叫進行輸出入
組合語言 (Intel 語法)
code segment ; start 段開始位址
assume cs:code,ds:code ; 設定程式段及資料段
org 100h ; 起始位址
start: jmp begin ; 程式進入點
msg db 'Hello!$' ; 要印出的訊息
begin: mov dx,offset msg ; 設定參數 ds:dx = 字串起點
mov ah,9 ; 設定9號服務
int 21h ; 進行DOS系統呼叫
mov ax,4c00h ; 設定4C號服務
int 21h ; 進行DOS系統呼叫
code ends ; .code 段結束
end ; 程式結束點
page revision: 0, last edited: 24 Mar 2010 05:02
Post preview:
Close preview