⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 idt.asm

📁 一个小型操作系统
💻 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 + -