int指令
int指令:
int指令的执行过程:
1,取中断类型码n
2,标志寄存器入栈,IF = 0, TF = 0
3,CS,IP入栈
4,IP执行内存中断表的位置
从此处转去执行n号中断的中断处理程序
编写供应用程序调用的中断例程:
eg:编写,安装中断7ch的中断例程,实现求--word型数据的平方
功能:求--word型数据的平方
参数:ax 要计算的数据
返回值:dx,ax中存放结果的高16位和低16位
应用举例:求2 * 3456 ^ 2
assume cs:code
code segment
start:
mov ax, 3456;
int 7ch ;调用中断7ch的中断例程,计算ax内数据的平方
add ax, ax
adc dx, dx ;存放结果,将结果乘以2
mov ax, 4c00h
int 21h
code ends
end start
1,编程实现求平方功能的程序
2,安装程序,将其安装在0:200处
assume cs:codesg
code segment
mov ax, cs
mov ds, ax
mov si, offset sqr
mov ax, 0
mov es, ax
mov di, 200h
mov ox, offest sqrend - offest sqr
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
sqR:
mul ax
iret
sqrend:nop
code ends
end start
3,设置中断向量表,将程序的入口地址保存在7ch的表项中,使其成为中断7ch的中断例程
BIOS中断例程的应用:
显示a字符
assume cs:code
code segment
mov ah, 2; 置光标
mov bh, 0; 第0页
mov dh, 5; dh中放行号
mov dl, 12; dl中放列号
int 10h
mov ah, 9; 置光标
mov al, 'a';字符
mov bl, 11001010b;颜色属性
mov bx, 0; 第0页
mov cx, 3;字符重复个数
int 10h
mov ax, 4c00h
int 21h
code ends
end start