int86是一个函数名,功能是通用8086
软中断接口。
函数简介
函数名: int86
用 法: int int86(int intr_num, union REGS *inregs, union REGS *outregs);
程序例:
#include
#include
#include
#define VIDEO 0x10
void movetoxy(int x, int y)
{
union REGS regs;
regs.h.ah = 2; /* set cursor postion */
regs.h.dh = y;
regs.h.dl = x;
regs.h. bh = 0; /* video page 0 */
int86(VIDEO, ®s, ®s);
}
int main(void)
{
clrscr();
movetoxy(35, 10);
return 0;
}
struct WORDREGS
{
unsigned int ax,bx,cx,dx,si,di,cflag,flags;
};
struct BYTEREGS
{
unsigned char al,ah,bl,bh,cl,ch,dl,dh;
};
union REGS
{
struct WORDREGS x;
struct BYTEREGS h;
};
中断号
x86中断直接系统服务(Direct System Service)
INT 00H - “0”作除数
INT 01H - 单步中断
INT 02H - 非屏蔽中断(NMI)
INT 03H - 断点中断
INT 04H - 算术溢出错误
INT 05H - 打印屏幕和BOUND越界
INT 06H - 非法指令错误
INT 07H - 处理器扩展无效
INT 09H - 键盘输入
INT 10H - 显示服务(Video Service)
INT 11H - 读取设备配置
INT 12H - 读取常规内存大小(返回值AX为内存容量,以K为单位)
INT 13H - 直接磁盘服务(Direct Disk Service)
INT 14H -
串行口服务(Serial Port Service)
INT 15H - 杂项系统服务(Miscellaneous System Service)
INT 16H - 键盘服务(Keyboard Service)
INT 17H -
并行口服务(Parallel Port Service)
INT 18H - ROM BASIC
INT 19H - 重启动系统
INT 1AH - 时钟服务(Clock Service)
INT 1BH - CTRL+BREAK处理程序
INT 1CH - 用户时钟服务
DOS中断
INT 20H - 终止程序运行
INT 21H - 字符功能调用、目录控制、文件操作、系统功能、进程控制、时间和日期功能
INT 22H - 终止处理程序的地址
INT 23H - Ctrl+C处理程序
INT 24H - 致命错误处理程序
INT 27H - 终止,并驻留在内存
INT 28H - DOS空闲
INT 2FH - 多重中断服务
INT 33H - 鼠标功能中断