📄 idt.asm
字号:
;FILENAME: TMPTSK.ASM
;-------------------------------------------------------------------------------------------------------
;中断描述符堆栈段
IDT_STACK_SEG SEGMENT PARA USE16 STACK
IDT_STACK_LEN = 256
DB IDT_STACK_LEN DUP(0)
IDT_STACK_SEG ENDS
;------------------------------------------------------------------------------------------------------
;中断描述符数据段
IDT_DATA_SEG SEGMENT PARA USE16
RUNNING_MSG DB 'TMPTSK IS RUNNING !$'
IDT_DATA_SEG ENDS
;------------------------------------------------------------------------------------------------------
;中断描述符代码段
IDT_CODE_SEG SEGMENT PARA USE16 'CODE'
ASSUME CS:IDT_CODE_SEG;,DS:IDT_DATA_SEG,SS:IDT_STACK_SEG
;自己编制的INT21H中断处理程序
INT21H:
_INT21H PROC FAR
PUSH ES
PUSHAD
CMP AH,09H
JE INT21H_09H
CMP AH,4CH
JE INT21H_4CH
JMP INT21H_END
;09H号功能调用
INT21H_09H:
MOV AX,VRAM_SEL
MOV ES,AX
MOV SI,DX
MOV DX,CX
MOV DH,0
PUSH DX
MOV CL,CH
MOV CH,0
MOV AX,CX
MOV CX,160
MUL CX
MOV BX,AX
POP DX
ADD BX,DX
MOV AH,0CEH;24H
INT21H_09H_01:
MOV AL,DS:[SI]
CMP AL,'$'
JE INT21H_END
MOV ES:[BX],AX
ADD BX,2
INC SI
JMP INT21H_09H_01
;;4CH号功能调用
INT21H_4CH:
POPAD
POP ES
IRETD
INT21H_END:
POPAD
POP ES
IRETD
_INT21H ENDP
;
IDT_CODE_LEN = $
IDT_CODE_SEG ENDS
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -