汇编高手进,最好懂中断的进

来源:百度知道 编辑:UC知道 时间:2024/06/27 14:06:51
此题小弟颇感为难,老师和我们一样烂,那也就教不出
什么高手了(声明老师第一年代课,且是汇编,我们郁闷中)!!
现将题目要求做如下说明:
利用DOS保留的空中断类型号45H作为新增加的软中断类型号,其功能 是将AX中的十六位无符号二进制数以四位十六进制形式输出!!!
最好是数据段定义和堆栈段定义齐全,经运行成功,有注释最好!!
不胜感激!!!!
做出的有追加分。
先谢谢了。。。

哈,正好做过这个题目,给你加了注释,看看吧
功能是增加45H号中断,利用新增的中断显示出datbuf中的16进制数。
inter45是编写的中断服务程序,它的功能是将AX中的十六位无符号二进制数以四位十六进制形式输出。
stack segment stack
db 20 dup(0)
stack ends

data segment
datbuf dw 1234h,5678h,9abch,0efffh,8000h,0,0ah,0dh,0fh
n = ($-datbuf)/2
tab db '0123456789ABCDEF'
buf db 4 dup(0),'H$'
data ends

code segment
assume cs:code,ss:stack,ds:data
begin: mov ax,seg intr45
mov ds,ax
mov dx,offset intr45
mov ax,2545h
int 21h ;利用25H功能调用将45H号中断的中断服务程序地址写入中断向量表
mov ax,data
mov ds,ax
lea si,datbuf ;si指向带显示数据
mov cx,n ;显示次数
lopa: mov ax,[si] ;取得一个数据
int 45h ;调用45H号中断,显示数据
mov ah,2
mov dl,' '
int 21h ;显示空格,与下