DOS 用の TSR com ファイルの作成に問題があります。21 番目の割り込みで新しいハンドラを設定し、終了して常駐する必要があります。新しいハンドラーは、制御を古い割り込み 21h ハンドラーに転送する必要があります。割り込みベクトルを保存しましたが、正しく呼び出す方法がわかりません。ここにプログラムがあります:
.model tiny
.data
old_int21h dw ?, ?
.code
org 100h
start:
;saving old interrupt vector
mov ax, 3521h
int 21h
mov [old_int21h], bx
mov [old_int21h + 2], es
;setting new interrupt vector
cli
push ds
push cs
pop ds
lea dx, myint21h
mov ax, 2521h
int 21h
pop ds
sti
; TSR
lea dx, start
int 27h
myint21h proc
; doing something
; want to transfer control to an old interrupt 21h handler here. How?
iret
myint21h endp
end start