SOGO論壇
標題:
Dosassembly
[列印本頁]
作者:
mm117777
時間:
2012-7-8 01:02:41
標題:
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 ; 程式結束點
歡迎光臨 SOGO論壇 (https://oursogo.com/)
Powered by OURSOGO.COM