一、编写中断程序
1、调用movsb指令将中断处理程序载入内存的指定位置;
1)使用offset指令计算doIntEnd-doInt获取中断处理程序的代码长度;
2)doIntEnd位置使用nop指令。
2、修改中断向量表项为指定位置;
1)使用word ptr确定内存单元;
2)使用es=0来定位中断向量表首地址。
3、编写中断处理程序。
1)与普通子程序编写规则相同;
2)使用iret返回。
二、编写应用程序
1、与call调用子程序类似;
2、使用int命令调用相应中断码的中断;
3、可屏蔽中断只有在IF为1时才被响应。
三、实例:
编写、安装中断7ch的中断例程文章来源:https://www.toymoban.com/news/detail-725555.html
一、编写中断程序
E:\mywork\asm\pd03.asm
C:\>edit pd03.asm
; 功能:求一word型数据的平方
; 参数:(ax)=要计算的数据
; 返回值: dx,ax中存放结果的高16位和第16位
assume cs:code
code segment
start:
; 安装数据
mov ax,cs
mov ds,ax
mov ax,0
mov es,ax
mov cx,offset int7chEnd-offset int7ch
mov si,offset int7ch
mov di,200h
cld
rep movsb
;写入中断向量表
mov ax,0
mov es,ax
mov word ptr es:[7ch*4],200h
mov word ptr es:[7ch*4+2],0
mov ax,4c00h
int 21h
int7ch:
mul ax
iret
int7chEnd: nop
code ends
end start
C:\>
二、编写应用程序
E:\mywork\asm\pd02.asm
C:\>edit pd02.asm
; 求2*3456^2的值
assume cs:code
code segment
start:
mov ax,3456
int 7ch
add ax,ax
adc dx,dx
mov ax,4c00h
int 21h
code ends
end start
C:\>
三、编译、连接、运行
//先安装7ch中断程序pd03
C:\>pd03
//再调试应用程序pd02
C:\>debug pd02.exe
-u
076A:0009 B8004C MOV AX,4C00
-g 9
AX=8000
DX=016C
076A:0009 B8004C MOV AX,4C00
-q
C:\>
(全文完)文章来源地址https://www.toymoban.com/news/detail-725555.html
到了这里,关于汇编语言中断编程步骤的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!