; 安裝中斷7CH的中斷例程
; 功能:求一word型數據的平方
; 參數:(ax) = 要計算的數據
; 返回值:dx、ax中存放結果的高16位和低16位
; 舉例:2 * 123^2
assume cs:code
code segment
start:
;=====================================
mov ax, 0
mov es, ax
mov di, 200H ; 中斷程序寫入0000:0200地址
mov ax, cs
mov ds, ax
mov si, offset do7CH ; ds:si 指向7CH中斷開始
mov cx, offset do7CHend - offset do7CH
cld ; 遞增方向,寫入
rep movsb ; 7CH中斷代碼循環寫入es:di處
; 安裝7CH中斷
xor ax, ax
mov es, ax
mov word ptr es:[7CH*4], 200H ; 將0000:0200H地址寫入7CH中斷向量表中
mov word ptr es:[7CH*4 + 2], 0
;---- 測試程序 ---- begin
mov ax, 123
int 7CH ; 調用7CH中斷,計算ax中數據的平方
add ax, ax
adc dx, dx ; *2的高位,防止有進位
;---- 測試程序 ---- end
mov ax, 4C00H
int 21H
; 7CH中斷實現
do7CH: mul ax ; 計算ax中數據的平方
iret
do7CHend: nop
;=====================================
code ends
end start
供應用程序調用的中斷 (7CH - 平方運算)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.