标签:windows 它的 别人 没有 class 可见 寄存器 cal 入栈
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).
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
这个程序在Windows2000 中的DOS方式下执行时,将在屏幕中显示一个“!”,然后显示“divide overflow‘ 后返回到系统中,”!“是我们编程显示的,而”dived overflow “是哪里来的呢?我们又没有做除法,不可能产生除法溢出。
程序是没有做除法,但是在结尾使用了int 0 指令 CPU执行int 0 指令时,将引发中断过程,执行0号中断处理程序,而系统设置的0号中断处理程序的功能是显示”divide overflow“然后返回到系统。
可见,int指令的最终功能和call指令相似,都是调用一段程序。
一般情况下,系统将一些具有一定功能的子程序,以中断处理程序的方式提供给应用程序调用。我们在变成的时候可以用int 指令调用这些子程序,当然也可以自己编写一些中断处理程序共别人使用。以后我们可以将中断处理程序简称为
中断例程。
标签:windows 它的 别人 没有 class 可见 寄存器 cal 入栈
原文地址:https://www.cnblogs.com/godoforange/p/10311272.html