ASSUME CS:codesg
codesg SEGMENT
start:
MOV AX,CS
MOV DS,AX ;程序段地址
MOV SI,OFFSET DIV_s
MOV AX,0
MOV ES,AX
MOV DI,0200H ;保存中断处理程序的内存地址
MOV CX,OFFSET DIV_ok - OFFSET DIV_s ;得到中断处理程序的长度
CLD ;正向传送
REP MOVSb ;安装中断例程
MOV AX,0
MOV ES,AX
MOV WORD PTR ES:[7ch*4],0200h
MOV WORD PTR ES:[7ch+2],0000h ;设置中断向量表
MOV AX,4c00h
INT 21h
;功能:显示一个用0结束的字符串
;参数:(dh)=行号,(dl)=列号,(cl)=颜色,ds:si指向字符串首地址
DIV_s: PUSH AX
PUSH ES
PUSH SI
PUSH BX
PUSH DI
PUSH DX
MOV DX,0
MOV BX,0
MOV AX,0
MOV AL,DH
MOV DH,160
MUL DH
MOV DI,AX
MOV AX,0
MOV AL,DL
MOV DL,2
MUL DL
ADD DI,AX
MOV AX,0b800h
MOV ES,AX
DIV_s1: MOV AL,DS:[SI]
CMP AL,0
JE DIV_s2
MOV ES:[DI+BX],AL
MOV ES:[DI+BX+1],CL
INC SI
ADD BX,2
JMP SHORT DIV_s1
DIV_s2: pop DX
pop DI
POP BX
POP SI
POP ES
POP AX
IRET
DIV_ok: NOP
codesg ENDS
END start
汇编语言中断处理程序安装
本文介绍了一个使用汇编语言编写的中断处理程序的安装过程。该程序首先设置程序段地址,并通过复制指令将中断处理例程安装到内存中指定位置。接着,通过设置中断向量表来注册中断处理程序。

被折叠的 条评论
为什么被折叠?



