13.1 int指令
int指令的格式为:int n,n为中断类型码,它的功能是引发中断过程。
CPU执行int n指令,相当于引发一个n号中断的中断过程,执行过程如下:
(1)取中断类型码n;
(2)标志寄存器入栈,IF=0,TF=0;
(3)CS、IP入栈;
(4)(IP)=(n*4),(CS)=(n*4+2)。
从此处转移去执行n号中断的中断处理程序。
可以在程序中使用int指令调用任何一个中断的中断处理程序。例如,下面的程序:
assume cs:code
code segment
start:mov ax,0b800h
mov es,ax
mov byte ptr es:[12*160+40*2],'!'
int 0
code ends
end start
这个程序在Windows 2000中的DOS方式下执行时,将在屏幕中间显示一个”!“,然后显示“Divide overflow”后返回到系统中。“!”是我们编程显示的,而“Divide overflow”是由于我们在结尾使用了int 0指令。CPU执行int 0指令时,将引发中断过程,执行0号中断处理程序,而系统设置的0号中断处理程序的功能是显示“Divide overflow”,然后返回到系统。
可见,int指令的最终功能和call指令相似,都是调用一段程序。
一般情况下,系统将一些具有一定功能的子程序,以中断处理程序的方式提供给应用程序调用。我们在编程的时候,可以用int指令调用这些子程序。也可以自己编写一些中断处理程序供别人使用。我们可以将中断处理程序简称为中断例程。
13.2 编写供应用程序调用的中断例程
问题一:编写、安装中断7ch的中断例程。
功能:求一word型数据的平方。
参数:(ax)=要计算的数据。
返回值:dx、ax中存放结果的高16位和低16位。
应用举例:求2*3456^2
assume cs:code
code segment
start: mov ax,3456 ;(ax)=3456
int 7ch ;调用中断7ch的例程,计算ax中的数据的平方

本文详细介绍了汇编语言中的int指令,包括其功能、执行过程和实际应用。通过实例展示了如何编写和安装中断例程,如求平方和字符串转大写。同时探讨了BIOS和DOS提供的中断例程及其安装过程,以及它们在程序中的使用。
最低0.47元/天 解锁文章
3152

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



