int86

int86是一个函数名,功 能是通用8086软中断接口。

函数名: int86

功 能: 通用8086软中断接口

用 法: int int86(int intr_num, union REGS *inregs, union REGS *outregs);

程序例:

#include <stdio.h>

#include <conio.h>

#include <dos.h>

#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, &regs, &regs);

}

int main(void)

{

clrscr();

movetoxy(35, 10);

printf("Hello\n");

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 08H - 时钟中断

INT 09H - 键盘输入

INT 0BH - 串行通信口(COM2:)

INT 0CH - 串行通信口(COM1:)

INT 0DH - 并行通信口(LPT2:)

INT 0EH - 磁盘驱动器输入/输出

INT 0FH - 并行通信口(LPT1:)

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 - 用户时钟服务

INT 1DH - 指向显示器参数表指针

INT 1EH - 指向磁盘驱动器参数表指针

INT 1FH - 指向图形字符模式表指针

DOS中断

INT 20H - 终止程序运行

INT 21H - 字符功能调用、目录控制、文件操作、系统功能、进程控制、时间和日期功能

INT 22H - 终止处理程序的地址

INT 23H - Ctrl+C处理程序

INT 24H - 致命错误处理程序

INT 25H - 读磁盘扇区(忽略逻辑结构)

INT 26H - 写磁盘扇区(忽略逻辑结构)

INT 27H - 终止,并驻留在内存

INT 28H - DOS空闲

INT 2FH - 多重中断服务

INT 33H - 鼠标功能中断

相关词汇