int2h中断表

合集下载

51单片机中断号

51单片机中断号

51单片机中断号若51单片机使用C语言编程,51单片机中断号的排列顺序是按中断向量地址由低到高来排列中断号,不是按中断查询的优先级或者中断服务顺序的优先级来排列中断号的。

本内容简单介绍了C51单片机的中断号以及中断向量,方便大家了解和学习关键词:中断向量C51单片机一、中断号二、interrupt 和 using 在C51中断中的使用8051 系列 MCU 的基本结构包括:32 个 I/O 口(4 组8 bit 端口);两个16 位定时计数器;全双工串行通信;6 个中断源(2 个外部中断、2 个定时/计数器中断、1 个串口输入/输出中断),两级中断优先级;128 字节内置RAM;独立的 64K 字节可寻址数据和代码区。

中断发生后,MCU 转到 5 个中断入口处之一,然后执行相应的中断服务处理程序。

中断程序的入口地址被编译器放在中断向量中,中断向量位于程序代码段的最低地址处,注意这里的串口输入/输出中断共用一个中断向量。

8051的中断向量表如下:C51单片机的中断号以及中断向量C51单片机的中断号以及中断向量一、中断号外部中断0 0定时器T0 1外部中断1 2定时器T1 3串口中断 4二、interrupt 和 using 在C51中断中的使用8051 系列 MCU 的基本结构包括:32 个 I/O 口(4 组8 bit 端口);两个16 位定时计数器;全双工串行通信;6 个中断源(2 个外部中断、2 个定时/计数器中断、1 个串口输入/输出中断),两级中断优先级;128 字节内置RAM ;独立的 64K 字节可寻址数据和代码区。

中断发生后,MCU 转到 5 个中断入口处之一,然后执行相应的中断服务处理程序。

中断程序的入口地址被编译器放在中断向量中,中断向量位于程序代码段的最低地址处,注意这里的串口输入/输出中断共用一个中断向量。

8051的中断向量表如下:中断源 中断向量 上电复位 0000H 外部中断0 0003H 定时器0 溢出 000BH 外部中断1 0013H 定时器1 溢出 001BH 串行口中断 0023H 定时器2 溢出 002BH51单片机定时器中断号 [复制链接]admin849 主题 987 帖子 3106 积分 管理员 积分 3106 • 发消息 电梯直达楼主发表于 2013-11-10 23:37:34 | 只看该作者| | 有用的中断号知识void 表示函数类型interrupt 0 ←这里的0表示中断源编号using 1 ←这里的1表示选用的寄存器组别在MCS-51单片机中,单片机类型不同,中断源个数也有差别.例如8051有5个中断源,8052有6个中断源.现以8051为例中断源 中断服务入口地址 中断标志外部中断INT0 0003H IE0定时器T0 000BH TF0外部中断INT1 0013H IE1串行口TI/RI 00023H TI/RI中断优先级别从上到下依次降低interrupt 表示中断优先级,using表示所用工作寄存器组。

bios中断列表

bios中断列表

;┌─────────────────────────────────┐;│BIOS 呼叫INT 10H,AH=00H │;│设定屏幕影相模式│;│? (AL) <= 模式码(正常为03h) │;│模式码: 分辨率颜色数目页数地址│;│文00H: 40*25 16 色8 页B8000H~B87CFH │;│字01H: 80*25 16 色8 页B8000H~B87CFH │;│模02H: 80*25 16 色8 页B8000H~B8F9FH │;│式03H: 80*25 16 色8 页B8000H~B8F9FH │;│07H: 80*25 2 色8 页B8000H~B8F9FH │;│分辨率颜色数目页数地址│;│绘04H: 320*200 4 色1 页B8000H~BBF3FH │;│图05H: 320*200 4 色1 页B8000H~BBF3FH │;│模06H: 640*200 2 色1 页B8000H~BBF3FH │;│式0DH: 320*200 16 色8 页A0000H~A1F3FH │;│0EH: 640*200 16 色4 页A0000H~A3E7FH │;│0FH: 640*350 2 色2 页A0000H~A6D5FH │;│10H: 640*350 16 色2 页A0000H~A6D5FH │;│11H: 640*480 2 色1 页A0000H~A95FFH │;│12H: 640*480 16 色1 页A0000H~A95FFH │;│13H: 320*200 256 色1 页A0000H~AF9FFH │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 10H,AH=01H │;│设定光标形状┌──┐│;│? (CH) <= 游标的启始线(0~15) ││<---- 启始线│;│? (CL) <= 游标的终止线(0~15) │││;│注:正常: CH=0DH,CL=0EH ││<---- 终止线│;│消失: CH=0FFH,CL=0FFH └──┘│;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 10H,AH=02H │;│设定光标位置│;│? (DH) <= 游标的列数(0~24) │;│? (DL) <= 游标的行数(0~79) │;│? (BH) <= 页码│;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 10H,AH=03H │;│取得光标位置│;│? (BH) <= 页码┌──┐│;│游标的列数=> (DH) ││<---- 启始线│;│游标的行数=> (DL) │││;│游标的启始线=> (CH) ││<---- 终止线│;│游标的终止线=> (CL) └──┘│;│注:正常: CH=0DH,CL=0EH │;│消失: CH=0FFH,CL=0FFH │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 10H,AH=05H │;│画面页区的号择│;│? (AL) <= 页码│;└─────────────────────────────────┘;┌─────────────────────────────────┐;│INT 10h,AH=06H │;│把指定的窗口范围上卷│;│? (AL) <= 卷动的列数,若为0 则清除屏幕│;│? (BH) <= 卷动后空出位置放入的属性│;│? (CH) <= 卷动范围的左上坐标列│;│? (CL) <= 卷动范围的左上坐标行│;│? (DH) <= 卷动范围的右下坐标列│;│? (DL) <= 卷动范围的右下坐标行│;│┌─┬─┬─┬─┬─┬─┬─┬─┐│;│颜色属性: bh =│b7│b6│b5│b4│b3│b2│b1│b0││;│└─┴─┴─┴─┴─┴─┴─┴─┘│;│bit0~2 :字体颜色(0:黑,1:蓝,2:绿,3:青,4:红,5:紫,6:综,7:白) │;│bit3 :字体亮度(0:字体正常,1:字体高亮度) │;│bit4~6 :背景颜色(0:黑,1:蓝,2:绿,3:青,4:红,5:紫,6:综,7:白) │;│bit7 :字体闪烁(0:不闪烁,1:字体闪烁) │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│INT 10h,AH=07H │;│把指定的窗口范围下卷│;│? (AL) <= 卷动的列数,若为0 则清除屏幕│;│? (BH) <= 卷动后空出位置放入的属性│;│? (CH) <= 卷动范围的左上坐标列│;│? (CL) <= 卷动范围的左上坐标行│;│? (DH) <= 卷动范围的右下坐标列│;│? (DL) <= 卷动范围的右下坐标行│;│┌─┬─┬─┬─┬─┬─┬─┬─┐│;│颜色属性: bh =│b7│b6│b5│b4│b3│b2│b1│b0││;│└─┴─┴─┴─┴─┴─┴─┴─┘│;│bit0~2 :字体颜色(0:黑,1:蓝,2:绿,3:青,4:红,5:紫,6:综,7:白) │;│bit3 :字体亮度(0:字体正常,1:字体高亮度) │;│bit4~6 :背景颜色(0:黑,1:蓝,2:绿,3:青,4:红,5:紫,6:综,7:白) │;│bit7 :字体闪烁(0:不闪烁,1:字体闪烁) │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 10H,AH=08H │;│读取光标所在位置的字符及属性│;│? (BH) <= 页码│;│字符ascii => (AL) │;│字符的属性=> (AH) │;│┌─┬─┬─┬─┬─┬─┬─┬─┐│;│颜色属性: ah =│b7│b6│b5│b4│b3│b2│b1│b0││;│└─┴─┴─┴─┴─┴─┴─┴─┘│;│bit0~2 :字体颜色(0:黑,1:蓝,2:绿,3:青,4:红,5:紫,6:综,7:白) │;│bit3 :字体亮度(0:字体正常,1:字体高亮度) │;│bit4~6 :背景颜色(0:黑,1:蓝,2:绿,3:青,4:红,5:紫,6:综,7:白) │;│bit7 :字体闪烁(0:不闪烁,1:字体闪烁) │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 10H,AH=09H │;│写入字符及属性在光标所在位置,光标不动(绘图模式亦能使用) │;│? (AL) <= 欲写入的字符ascii │;│? (BL) <= 欲写入之字符的属性│;│? (CX word) <= 欲显示的次数│;│? (BH) <= 页码│;│┌─┬─┬─┬─┬─┬─┬─┬─┐│;│颜色属性: bl =│b7│b6│b5│b4│b3│b2│b1│b0││;│└─┴─┴─┴─┴─┴─┴─┴─┘│;│bit0~2 :字体颜色(0:黑,1:蓝,2:绿,3:青,4:红,5:紫,6:综,7:白) │;│bit3 :字体亮度(0:字体正常,1:字体高亮度) │;│bit4~6 :背景颜色(0:黑,1:蓝,2:绿,3:青,4:红,5:紫,6:综,7:白) │;│bit7 :字体闪烁(0:不闪烁,1:字体闪烁) │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 10H,AH=0AH │;│写入字符在光标所在位置,光标不动,属性不变(绘图模式亦能使用) │;│? (AL) <= 欲写入的字符ascii │;│? (CX word) <= 欲显示的次数│;│? (BH) <= 页码│;│? (BL) <= 前景颜色(绘图模式时) │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 10H,AH=0BH │;│设定文本模式(0~3)的边框颜色或绘图模式(4、5)的背景颜色│;│? (BL) <= 颜色属性│;│(1)文本模式(0~3):边框颜色,只用到低4bit,共16色│;│(2)绘图模式(4、5、6):背景颜色,只用到低4bit,共16色│;│bit0~2 :颜色(0:黑,1:蓝,2:绿,3:青,4:红,5:紫,6:综,7:白)│;│bit3 :为亮度(1:高亮度,0:正常) │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 10H,AH=0BH │;│设定绘图模式(4、5)的调色盘│;│? (BL) <= 调色盘(以0 bit 决定) │;│bit0 = 0 (黑、绿、红、黄) │;│= 1 (黑、青、紫、白) │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 10H,AH=0CH │;│在绘图模式下画一点│;│? (AL) <= 像点的颜色值│;│? (CX word) <= 坐标X 轴│;│? (DX word) <= 坐标Y 轴│;│? (BH) <= 页码│;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 10H,AH=0DH │;│在绘图模式下读点像值│;│? (CX word) <= 坐标X 轴│;│? (DX word) <= 坐标Y 轴│;│像点的颜色值=> (AL) │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 10H,AH=0EH │;│在文本模式或绘图模式下显示一字符,光标则右移一格│;│? (AL) <= 字符ascii │;│? (BH) <= 页码│;│? (BL) <= 前景颜色码(绘图模式时) │;│注:所谓TTY 就是类似打字机输出方式,每显示一字符,光标则右移一格,│;│当移到最后一行时,光标则至跳下一列的最左边开始,当移到最后一列│;│时,屏幕则上卷一列│;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 10H,AH=0FH │;│取得屏幕影相模式│;│每行字数=> (AH) │;│模式号码=> (AL) │;│使用页码=> (BH) │;│模式码: 分辨率颜色数目页数地址│;│文00H: 40*25 16 色8 页B8000H~B87CFH │;│字01H: 80*25 16 色8 页B8000H~B87CFH │;│模02H: 80*25 16 色8 页B8000H~B8F9FH │;│式03H: 80*25 16 色8 页B8000H~B8F9FH │;│07H: 80*25 2 色8 页B8000H~B8F9FH │;│分辨率颜色数目页数地址│;│绘04H: 320*200 4 色1 页B8000H~BBF3FH │;│图05H: 320*200 4 色1 页B8000H~BBF3FH │;│模06H: 640*200 2 色1 页B8000H~BBF3FH │;│式0DH: 320*200 16 色8 页A0000H~A1F3FH │;│0EH: 640*200 16 色4 页A0000H~A3E7FH │;│0FH: 640*350 2 色2 页A0000H~A6D5FH │;│10H: 640*350 16 色2 页A0000H~A6D5FH │;│11H: 640*480 2 色1 页A0000H~A95FFH │;│12H: 640*480 16 色1 页A0000H~A95FFH │;│13H: 320*200 256 色1 页A0000H~AF9FFH │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 10H,AX=1130H │;│读取VGA BIOS 中有关字形的信息│;│? (BH) <= 所要取的地址模式│;│取出的地址=> (ES:BP) │;│目前字形的高度=> (CX) │;│目前字形下屏幕列数-1 => (DL) │;│地址模式:00H:中断1FH 的地址│;│01H:中断43H 的地址│;│02H:8*14 字形表的地址│;│03H:8*8 字形表的地址│;│04H:8*8 ascii 值大于127 的字形表地址│;│05H:9*14 字形表的地址│;│06H:8*16 字形表的地址│;│07H:9*16 字形表的地址│;│注:中断向量1fh 的值亦是指向ascii 值大于127 的字形表地址│;│中断向量43h 的值则是指向目前屏幕模式所使用的字形表地址│;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 10H,AH=13H │;│显示一列字符串│;│? (AL) <= 写入模式│;│? (BL) <= 字符之属性│;│? (CX word) <= 字符串的长度│;│? (DH) <= 游标的坐标列数│;│? (DL) <= 游标的坐标行数│;│? (ES:BP) <= 存字符串内容的内存变量│;│? (BH) <= 页码│;│写入AL=00H:字符串的属性由BL 决定,所以CX 所指的长度以byte 为单位│;│模式AL=01H:同AL=00H,但光标会移到字符串尾端,未显示字符的位置│;│AL=02H:字符串属性由每字符的后面一个byte指定,故CX 单位为word │;│AL=03H:同AL=02H,但光标会移到字符串尾端,未显示字符的位置│;│┌─┬─┬─┬─┬─┬─┬─┬─┐│;│颜色属性: bl =│b7│b6│b5│b4│b3│b2│b1│b0││;│└─┴─┴─┴─┴─┴─┴─┴─┘│;│bit0~2 :字体颜色(0:黑,1:蓝,2:绿,3:青,4:红,5:紫,6:综,7:白) │;│bit3 :字体亮度(0:字体正常,1:字体高亮度) │;│bit4~6 :背景颜色(0:黑,1:蓝,2:绿,3:青,4:红,5:紫,6:综,7:白) │;│bit7 :字体闪烁(0:不闪烁,1:字体闪烁) │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 10H,AH=80H │;│倚天中文的控制│;│? (AL) <= 句柄,限输入数值,如下│;│控51H:释放中文30H:内码输入法74H:透通模式切换│;│制71H:释放中文31H:仓颉输入法4CH:条列模式(L) │;│码41H:切换为英文模式32H:简易输入法6CH:条列模式切换│;│61H:中英文模式切换33H:注音输入法48H:显示内码(H) │;│6EH:切换为中文模式34H:三角输入法68H:显示内码切换│;│43H:切换为中文输入35H:简捷输入法47H:图形卷动(G) │;│63H:中英文输入切换37H:行列输入法67H:图形卷动切换│;│46H:全角输入39H:电信输入法4DH:隐藏状态栏│;│66H:全角、半角切换54H:透通模式(T) 6DH:状态栏切换│;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 10H,AH=91H │;│检查是否有加载倚天中文│;│加载状态=> (AH != 91H 表有载入,AH = 91H 表未载入) │;│目前模式=> (DH),(bit7=0 表中文模式,bit7=1 表英文模式) │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 13H,AH=00H │;│重设磁盘驱动器,准备下一次I/O │;│? (DL) <= 驱动器号(A:00H,B:01H,C:80H,D:81H) │;│成功=> (C=0),(失败C=1,示误码如下) │;│AH=00H:成功AH=80H:floppy disk drive 未备妥│;│AH=05H:硬盘重置错误AH=AAH:hard disk drive 未备妥│;│AH=20H:磁盘控制器失误AH=BBH:所指定的磁盘驱动器找不到│;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 13H,AH=01H │;│读取磁盘驱动器状态│;│? (DL) <= 驱动器号(A:00H,B:01H,C:80H,D:81H) │;│成功=> (C=0),(失败C=1,示误码如下) │;│AH=00H:成功AH=0AH:硬盘的扇区损坏│;│AH=01H:不合法的磁盘驱动器命令AH=0BH:硬盘的磁道损坏│;│AH=02H:扇区损坏或地址栏有误AH=0CH:存取不存在的磁道│;│AH=03H:写保护贴纸未撕AH=10H:CRC/ECC错误│;│AH=04H:找不到指定的扇区AH=11H:数据读取错误,使用ECC校正│;│AH=05H:硬盘重置错误AH=20H:磁盘控制器失误│;│AH=06H:不是原来的磁盘AH=40H:寻找磁道错误│;│AH=07H:硬盘参数错误AH=80H:floppy disk drive 未备妥│;│AH=08HMA 忙碌中AH=AAH:hard disk drive 未备妥│;│AH=09HMA搬动记忆区越过64K AH=BBH:所指定的磁盘驱动器找不到│;│注:CRC为循环重复检查检,用来侦测磁盘上数据是否有误│;│ECC为错误校正码,是用来侦测并校正磁盘上的数据是否有误,ECC具有│;│自动更正错误功能,而且只有硬盘才有ECC │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 13H,AH=02H │;│读取扇区数据│;│? (DL) <= 驱动器号(A:00H,B:01H,C:80H,D:81H) │;│? (AL) <= 欲读取的扇区数│;│? (CH) <= 磁道号码,从0 开始,高2 bit 可存于cl 的b6、b7 │;│? (CL) <= 起始扇区编号,从1 开始│;│? (DH) <= 磁头号码,从0 开始│;│? (ES:BX) <= 欲储存数据的缓冲区内存变量│;│成功=> (C=0),(AL=真正读到的扇区数) │;│AH=00H:成功AH=0AH:硬盘的扇区损坏│;│AH=01H:不合法的磁盘驱动器命令AH=0BH:硬盘的磁道损坏│;│AH=02H:扇区损坏或地址栏有误AH=0CH:存取不存在的磁道│;│AH=03H:写保护贴纸未撕AH=10H:CRC/ECC错误│;│AH=04H:找不到指定的扇区AH=11H:数据读取错误,使用ECC校正│;│AH=05H:硬盘重置错误AH=20H:磁盘控制器失误│;│AH=06H:不是原来的磁盘AH=40H:寻找磁道错误│;│AH=07H:硬盘参数错误AH=80H:floppy disk drive 未备妥│;│AH=08H 忙碌中AH=AAH:hard disk drive 未备妥│;│AH=09H 搬动记忆区越过64K AH=BBH:所指定的磁盘驱动器找不到│;│注:CRC为循环重复检查检,用来侦测磁盘上数据是否有误│;│ECC为错误校正码,是用来侦测并校正磁盘上的数据是否有误,ECC具有│;│自动更正错误功能,而且只有硬盘才有ECC │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 13H,AH=03H │;│写数据到扇区内│;│? (DL) <= 驱动器号(A:00H,B:01H,C:80H,D:81H) │;│? (AL) <= 欲写入的扇区数│;│? (CH) <= 磁道号码,从0 开始,高2 bit 可存于cl 的b6、b7 │;│? (CL) <= 起始扇区编号,从1 开始│;│? (DH) <= 磁头号码,从0 开始│;│? (ES:BX) <= 已储存数据的缓冲区内存变量│;│成功=> (C=0),(AL=真正写入的扇区数) │;│AH=00H:成功AH=0AH:硬盘的扇区损坏│;│AH=01H:不合法的磁盘驱动器命令AH=0BH:硬盘的磁道损坏│;│AH=02H:扇区损坏或地址栏有误AH=0CH:存取不存在的磁道│;│AH=03H:写保护贴纸未撕AH=10H:CRC/ECC错误│;│AH=04H:找不到指定的扇区AH=11H:数据读取错误,使用ECC校正│;│AH=05H:硬盘重置错误AH=20H:磁盘控制器失误│;│AH=06H:不是原来的磁盘AH=40H:寻找磁道错误│;│AH=07H:硬盘参数错误AH=80H:floppy disk drive 未备妥│;│AH=08H 忙碌中AH=AAH:hard disk drive 未备妥│;│AH=09H 搬动记忆区越过64K AH=BBH:所指定的磁盘驱动器找不到│;│注:CRC为循环重复检查检,用来侦测磁盘上数据是否有误│;│ECC为错误校正码,是用来侦测并校正磁盘上的数据是否有误,ECC具有│;│自动更正错误功能,而且只有硬盘才有ECC │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 13H,AH=04H │;│检查扇区结构是否完好│;│? (DL) <= 驱动器号(A:00H,B:01H,C:80H,D:81H) │;│? (AL) <= 欲检查的扇区数│;│? (CH) <= 磁道号码,从0 开始,高2 bit 可存于cl 的b6、b7 │;│? (CL) <= 起始扇区编号,从1 开始│;│? (DH) <= 磁头号码,从0 开始│;│成功=> (C=0),(失败C=1,示误码如下) │;│AH=00H:成功AH=0AH:硬盘的扇区损坏│;│AH=01H:不合法的磁盘驱动器命令AH=0BH:硬盘的磁道损坏│;│AH=02H:扇区损坏或地址栏有误AH=0CH:存取不存在的磁道│;│AH=03H:写保护贴纸未撕AH=10H:CRC/ECC错误│;│AH=04H:找不到指定的扇区AH=11H:数据读取错误,使用ECC校正│;│AH=05H:硬盘重置错误AH=20H:磁盘控制器失误│;│AH=06H:不是原来的磁盘AH=40H:寻找磁道错误│;│AH=07H:硬盘参数错误AH=80H:floppy disk drive 未备妥│;│AH=08HMA 忙碌中AH=AAH:hard disk drive 未备妥│;│AH=09HMA搬动记忆区越过64K AH=BBH:所指定的磁盘驱动器找不到│;│注:CRC为循环重复检查检,用来侦测磁盘上数据是否有误│;│ECC为错误校正码,是用来侦测并校正磁盘上的数据是否有误,ECC具有│;│自动更正错误功能,而且只有硬盘才有ECC │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 13H,AH=05H │;│将指定的扇区格式化,以轨为单位│;│? (DL) <= 驱动器号(A:00H,B:01H,C:80H,D:81H) │;│? (CH) <= 磁道号码,从0 开始,高2 bit 可存于cl 的b6、b7 │;│? (DH) <= 磁头号码,从0 开始│;│? (ES:BX) <= 指向扇区参数表的内存变量,共四byte,即CHRN │;│扇区参数表:C:磁柱编号(cylinder) R:扇区编号(Record) │;│H:磁头编号(head) N:每扇区的byte数(0:128,1:256 │;│2:512,3:1024) │;│成功=> (C=0),(失败C=1,示误码如下) │;│AH=00H:成功AH=0AH:硬盘的扇区损坏│;│AH=01H:不合法的磁盘驱动器命令AH=0BH:硬盘的磁道损坏│;│AH=02H:扇区损坏或地址栏有误AH=0CH:存取不存在的磁道│;│AH=03H:写保护贴纸未撕AH=10H:CRC/ECC错误│;│AH=04H:找不到指定的扇区AH=11H:数据读取错误,使用ECC校正│;│AH=05H:硬盘重置错误AH=20H:磁盘控制器失误│;│AH=06H:不是原来的磁盘AH=40H:寻找磁道错误│;│AH=07H:硬盘参数错误AH=80H:floppy disk drive 未备妥│;│AH=08HMA 忙碌中AH=AAH:hard disk drive 未备妥│;│AH=09HMA搬动记忆区越过64K AH=BBH:所指定的磁盘驱动器找不到│;│注:CRC为循环重复检查检,用来侦测磁盘上数据是否有误│;│ECC为错误校正码,是用来侦测并校正磁盘上的数据是否有误,ECC具有│;│自动更正错误功能,而且只有硬盘才有ECC │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 13H,AH=06H │;│将指定的磁道格式化,并设定损坏磁盘│;│? (DL) <= 驱动器号(A:00H,B:01H,C:80H,D:81H) │;│? (CH) <= 磁道号码,从0 开始,高2 bit 可存于cl 的b6、b7 │;│? (CL) <= 起始扇区编号,从1 开始│;│? (DH) <= 磁头号码,从0 开始│;│成功=> (C=0),(失败C=1,示误码如下) │;│AH=00H:成功AH=0AH:硬盘的扇区损坏│;│AH=01H:不合法的磁盘驱动器命令AH=0BH:硬盘的磁道损坏│;│AH=02H:扇区损坏或地址栏有误AH=0CH:存取不存在的磁道│;│AH=03H:写保护贴纸未撕AH=10H:CRC/ECC错误│;│AH=04H:找不到指定的扇区AH=11H:数据读取错误,使用ECC校正│;│AH=05H:硬盘重置错误AH=20H:磁盘控制器失误│;│AH=06H:不是原来的磁盘AH=40H:寻找磁道错误│;│AH=07H:硬盘参数错误AH=80H:floppy disk drive 未备妥│;│AH=08HMA 忙碌中AH=AAH:hard disk drive 未备妥│;│AH=09HMA搬动记忆区越过64K AH=BBH:所指定的磁盘驱动器找不到│;│注:CRC为循环重复检查检,用来侦测磁盘上数据是否有误│;│ECC为错误校正码,是用来侦测并校正磁盘上的数据是否有误,ECC具有│;│自动更正错误功能,而且只有硬盘才有ECC │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 13H,AH=07H │;│从指定的磁道位置,格式化磁盘│;│? (DL) <= 驱动器号(A:00H,B:01H,C:80H,D:81H) │;│? (CH) <= 磁道号码,从0 开始,高2 bit 可存于cl 的b6、b7 │;│? (CL) <= 起始扇区编号,从1 开始│;│? (DH) <= 磁头号码,从0 开始│;│成功=> (C=0),(失败C=1,示误码如下) │;│AH=00H:成功AH=0AH:硬盘的扇区损坏│;│AH=01H:不合法的磁盘驱动器命令AH=0BH:硬盘的磁道损坏│;│AH=02H:扇区损坏或地址栏有误AH=0CH:存取不存在的磁道│;│AH=03H:写保护贴纸未撕AH=10H:CRC/ECC错误│;│AH=04H:找不到指定的扇区AH=11H:数据读取错误,使用ECC校正│;│AH=05H:硬盘重置错误AH=20H:磁盘控制器失误│;│AH=06H:不是原来的磁盘AH=40H:寻找磁道错误│;│AH=07H:硬盘参数错误AH=80H:floppy disk drive 未备妥│;│AH=08HMA 忙碌中AH=AAH:hard disk drive 未备妥│;│AH=09HMA搬动记忆区越过64K AH=BBH:所指定的磁盘驱动器找不到│;│注:CRC为循环重复检查检,用来侦测磁盘上数据是否有误│;│ECC为错误校正码,是用来侦测并校正磁盘上的数据是否有误,ECC具有│;│自动更正错误功能,而且只有硬盘才有ECC │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 13H,AH=08H │;│取得磁盘驱动器的磁道参数│;│? (DL) <= 驱动器号(A:00H,B:01H,C:80H,D:81H) │;│磁面的磁道数减1 => (CH) 及(CL 的bit6、bit7) │;│磁道的扇区数=> (CL 的bit0 ~ bit5) │;│磁面数减1 => (DH) │;│磁盘驱动器数量=> (DL) │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 13H,AH=17H │;│设定磁盘驱动器型式│;│? (DL) <= 驱动器号(A:00H,B:01H) │;│? (AL) <= 磁盘驱动器型式│;│磁盘驱动器型式:AL=01H:使用360K 磁盘驱动器,工作360K 的磁盘│;│AL=02H:使用1.2M 磁盘驱动器,工作360K 的磁盘│;│AL=03H:使用1.2M 磁盘驱动器,工作1.2M 的磁盘│;│AL=04H:使用720K 磁盘驱动器,工作720K 的磁盘│;│AL=05H:使用1.44M 磁盘驱动器,工作1.44M 的磁盘│;│成功=> (C=0),(失败C=1,示误码如下) │;│AH=00H:成功AH=0AH:硬盘的扇区损坏│;│AH=01H:不合法的磁盘驱动器命令AH=0BH:硬盘的磁道损坏│;│AH=02H:扇区损坏或地址栏有误AH=0CH:存取不存在的磁道│;│AH=03H:写保护贴纸未撕AH=10H:CRC/ECC错误│;│AH=04H:找不到指定的扇区AH=11H:数据读取错误,使用ECC校正│;│AH=05H:硬盘重置错误AH=20H:磁盘控制器失误│;│AH=06H:不是原来的磁盘AH=40H:寻找磁道错误│;│AH=07H:硬盘参数错误AH=80H:floppy disk drive 未备妥│;│AH=08HMA 忙碌中AH=AAH:hard disk drive 未备妥│;│AH=09HMA搬动记忆区越过64K AH=BBH:所指定的磁盘驱动器找不到│;│注:CRC为循环重复检查检,用来侦测磁盘上数据是否有误│;│ECC为错误校正码,是用来侦测并校正磁盘上的数据是否有误,ECC具有│;│自动更正错误功能,而且只有硬盘才有ECC │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 16H,AH=00H │;│由键盘读取按键,即由键盘缓冲区读取按键,会等待│;│按键的ascii 码=> (AL) │;│按键的scan 码=> (AH),(AH bit7=0 表按键中) 46h Scroll │;│01h Esc 19h P 28h ' " 37h Print 47h 7 Home │;│2~Bh 1~9,0 1Ah [ { 29h ` ~ 38h R Ctrl 48h 8 Up │;│0Ch - _ 1Bh ] } 2Ah L Shift 39h Space 49h 9 PgUp │;│0Dh = + 1Ch Enter 2Bh \ | 3Ah Caps 4Ah - │;│0Eh 1Dh Ctrl 2Ch Z 3Bh F1 4Bh 4 Left │;│0Fh Tab 1Eh A 2Dh X 3Ch F2 4Ch 5 │;│10h Q 1Fh S 2Eh C 3Dh F3 4Dh 6 Right │;│11h W 20h D 2Fh V 3Eh F4 4Eh + │;│12h E 21h F 30h B 3Fh F5 4Fh 1 End │;│13h R 22h G 31h N 40h F6 50h 2 Down │;│14h T 23h H 32h M 41h F7 51h 3 PgDn │;│15h Y 24h J 33h , < 42h F8 52h 0 Ins │;│16h U 25h K 34h . > 43h F9 53h . Del │;│17h I 26h L 35h / ? 44h F10 57h F11 │;│18h O 27h : 36h R Shift 45h Num 58h F12 │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 16H,AH=01H │;│检查键盘缓冲区是否有字符可读│;│读取状况=> (Z=0,有字符可读),(Z=1,缓冲区是空的) │;│按键的ascii 码=> (AL) │;│按键的scan 码=> (AH),(AL bit7=0 表按键中) 46h Scroll │;│01h Esc 19h P 28h ' " 37h Print 47h 7 Home │;│2~Bh 1~9,0 1Ah [ { 29h ` ~ 38h R Ctrl 48h 8 Up │;│0Ch - _ 1Bh ] } 2Ah L Shift 39h Space 49h 9 PgUp │;│0Dh = + 1Ch Enter 2Bh \ | 3Ah Caps 4Ah - │;│0Eh 1Dh Ctrl 2Ch Z 3Bh F1 4Bh 4 Left │;│0Fh Tab 1Eh A 2Dh X 3Ch F2 4Ch 5 │;│10h Q 1Fh S 2Eh C 3Dh F3 4Dh 6 Right │;│11h W 20h D 2Fh V 3Eh F4 4Eh + │;│12h E 21h F 30h B 3Fh F5 4Fh 1 End │;│13h R 22h G 31h N 40h F6 50h 2 Down │;│14h T 23h H 32h M 41h F7 51h 3 PgDn │;│15h Y 24h J 33h , < 42h F8 52h 0 Ins │;│16h U 25h K 34h . > 43h F9 53h . Del │;│17h I 26h L 35h / ? 44h F10 57h F11 │;│18h O 27h : 36h R Shift 45h Num 58h F12 │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 16H,AH=02H │;│取得键盘设定状态│;│键盘状态值=> (AL),如下│;│┌─┬─┬─┬─┬─┬─┬─┬─┐│;│al = │b7│b6│b5│b4│b3│b2│b1│b0││;│└─┴─┴─┴─┴─┴─┴─┴─┘│;│insert ─┘││││││└─right shift │;│caps lock ───┘││││└───left shift │;│num lock ─────┘││└─────ctrl │;│scroll lock ───────┘└───────alt │;│bit = 0 表off │;│bit = 1 表on │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 16H,AH=0DAH │;│设定大易输入法的切换摸式,或取得载入状况│;│? (AL) <= 0:退出大易输入模式,1:切换为大易输入模式,2:为内部使用│;│加载状态=> (AL=55AAH 表有加载) │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 17H,AH=00H │;│显示一个字符至打印机│;│? (AL) <= 字符ascii │;│? (DX word) <= 打印机编号│;│打印机状态值=> (AH),如下│;│┌─┬─┬─┬─┬─┬─┬─┬─┐│;│ah = │b7│b6│b5│b4│b3│b2│b1│b0││;│└─┴─┴─┴─┴─┴─┴─┴─┘│;│打印机忙碌? ─┘││││││└─久候不应? │;│取得回应? ───┘││││└───保留│;│纸用尽? ─────┘││└─────保留│;│所选打印机编号───────┘└───────I/O error? │;│(0:LPT1,1:LPT2) bit = 0 表否│;│bit = 1 表是│;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 17H,AH=01H │;│打印机初始化│;│? (DX word) <= 打印机编号│;│打印机状态值=> (AH),如下│;│┌─┬─┬─┬─┬─┬─┬─┬─┐│;│ah = │b7│b6│b5│b4│b3│b2│b1│b0││;│└─┴─┴─┴─┴─┴─┴─┴─┘│;│打印机忙碌? ─┘││││││└─久候不应? │;│取得回应? ───┘││││└───保留│;│纸用尽? ─────┘││└─────保留│;│所选打印机编号───────┘└───────I/O error? │;│(0:LPT1,1:LPT2) bit = 0 表否│;│bit = 1 表是│;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 17H,AH=02H │;│读取打印机状态│;│? (DX word) <= 打印机编号│;│打印机状态值=> (AH),如下│;│┌─┬─┬─┬─┬─┬─┬─┬─┐│;│ah = │b7│b6│b5│b4│b3│b2│b1│b0││;│└─┴─┴─┴─┴─┴─┴─┴─┘│;│打印机忙碌? ─┘││││││└─久候不应? │;│取得回应? ───┘││││└───保留│;│纸用尽? ─────┘││└─────保留│;│所选打印机编号───────┘└───────I/O error? │;│(0:LPT1,1:LPT2) bit = 0 表否│;│bit = 1 表是│;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 1AH,AH=00H │;│取得目前频率计数│;│频率的高word => (CX) │;│频率的低word => (DX) │;│注:将取得的单位除以18.2065 即可换算成秒│;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 1AH,AH=01H │;│设定目前频率计数│;│? (CX word) <= 频率高word │;│? (DX word) <= 频率低word │;│注:将计算出的秒数乘以18.2065 即可换算成频率计数单位│;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 1AH,AH=02H │;│取得系统时间,以packed BCD 表示│;│时=> (CH) │;│分=> (CL) │;│秒=> (DH) │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 1AH,AH=03H │;│设定系统时间,以packed BCD 表示│;│? (CH) <= 时│;│? (CL) <= 分│;│? (DH) <= 秒│;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 1AH,AH=04H │;│取得系统日期,以packed BCD 表示│;│年=> (CX) │;│月=> (DH) │;│日=> (DL) │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 1AH,AH=05H │;│设定系统日期,以packed BCD 表示│;│? (CX word) <= 年│;│? (DH) <= 月│;│? (DL) <= 日│;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 1AH,AH=06H │;│设定系统闹钟,以packed BCD 表示│;│? (CH) <= 时│;│? (CL) <= 分│;│? (DH) <= 秒│;│注:闹钟(设定:过了多久后),便会执行(INT 4AH) │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 1AH,AH=07H │;│关掉系统闹钟(disable) │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 1AH,AH=08H │;│取出系统闹钟,以packed BCD 表示│;│时=> (CH) │;│分=> (CL);│秒=> (DH) │;│开关=> (DL),(0:disable,1:enable、power off,2:enable、power on)│;│注:闹钟(设定:过了多久后),便会执行(INT 4AH) │;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 1AH,AH=0AH │;│取得日期数量│;│天数=> (CX) │;│注:自1980/01/01,到现在到底经过多少天│;└─────────────────────────────────┘;┌─────────────────────────────────┐;│BIOS 呼叫INT 1AH,AH=0BH │;│设定日期数量│;│? (CX word) <= 天数│;│注:自1980/01/01,到现在到底经过多少天。

dos中断INT+21H大全

dos中断INT+21H大全
出口参数:AL=系统中当前的驱动器号
(3)、功能19H
功能描述:取当前缺省驱动器号
入口参数:AH=19H
出口参数:AL=驱动器号(0=A,1=B,...)
(4)、功能1BH和1CH
功能描述:获得驱动器的分配信息
入口参数:AH=1BH——为缺省驱动器
AH=1CH——为任意驱动器,DL=驱动器号(0=缺省,1=A,...)
入口参数:AH=46H
BX=文件或设备的句柄
CX=待重定向的文件句柄
出口参数:CF=0——重定向成功,否则,AX=错误号(04H或06H),其含义见错误代码表
(8)、功能4EH
功能描述:获取第一个与给定的文件名相匹配的文件
入口参数:AH=4EH
DS:DX=给定文件名的字符串
CX=搜索时使用的文件属性: 位0=1——只读 位1=1——隐含
2、目录控制功能(Directory-Control Function)**************************************************************
39H —创建目录
3AH —删除目录
3BH —设置当前目录
47H —读取当前目录
(1)、功能39H
2EH —设置校验标志36H —读取驱动器分配信息54H —读取校验标志
(1)、功能0DH
功能描述:清空当前的文件缓冲区,但在MS-DOS内,暂时写入缓冲区的数据将写入磁盘
入口参数:AH=0DH
出口参数:无
(2)、功能0EH
功能描述:指定当前驱动器
入口参数:AH=0EH
DL=驱动器号(0=A,1=B,...)

中断向量表

中断向量表
西华大学电气信息学院 郑海春
3. 中断是开放的
在CPU内部有一个中断允许触发器(也即IF)。只有 当其为“1”时,CPU才能响应中断;若其为“0”,即 使INTR线上有中断请求,CPU也不响应。而这个触发 器的状态可由STI和CLI指令来改变。当CPU复位时, 中断允许触发器为“ 0”,即关中断,所以必须要用 STI 指令来开中断。当中断响应后,CPU 就自动关中 断,所以必须在中断服务程序中用STI指令来开中断。
西华大学电气信息学院 郑海春
中断向量表
西华大学电气信息学院 郑海春
• 中断向量:指示中断服务程序的入口地址,包括: 偏移地址IP 、段地址CS。
• 每个中断向量的低字是偏移地址、高字是段地址, 需占用4个字节(低对低,高对高)。
• 8086 微处理器从物理地址00000H开始到003FFH (1KB),依次安排各个中断向量,向量号从0到 255。 • 中断向量表: 256个中断向量所占用的1KB区域。 • 中断向量的存放首址=N×4
西华大学电气信息学院 郑海春
2.实现优先权排队
在系统中通常有多个中断源,会出现两个或更 多个中断源同时提出中断请求的情况,这样就 必须要设计者事先根据轻重缓急,给每个中断 源确定一个中断级别——优先权。当多个中断 源同时发出中断申请时,CPU能找到优先权级 别最高的中断源,响应它的中断请求;在优先 权级别最高的中断源处理完了以后,再响应级 别较低的中断源。
7.1.3 中断系统的功能
1.实现中断及返回 当某一中断源发出中断申请时,若允许响应这个中断 请求,CPU必须在现行的指令执行完后,把断点处的IP 和CS值(即下一条应执行的指令的地址)、各个寄存 器的内容和标志位的状态推入堆栈保留下来——称为 保护断点和现场。然后转到需要处理的中断源的服务 程序的入口,同时清除中断请求触发器。当中断处理 完后,再恢复被保留下来的各个寄存器和标志位的状 态(称为恢复现场),恢复IP和CS值(称为恢复断 点),CPU返回断点,继续执行主程序。

DSP系统配置和中断_图文(精)

DSP系统配置和中断_图文(精)

第2章系统配置和中断介绍系统的配置寄存器和有关中断,并介绍用于增加中断请求容量的外设中断扩展(PIE寄存器。

2.1 系统配置概述系统配置和中断操作的内容包括:系统配置寄存器、中断优先级和中断向量表、外设中断扩展控制器(PIE、中断向量、中断响应的流程、中断响应的时间、CPU中断寄存器、外设中断寄存器、复位、无效地址检测、外部中断控制寄存器。

LF2407大部分的I/O口是多路复用的,复位时会被上拉为数字输入的模式。

2.2 系统配置寄存器对功能模块进行配置。

2.2.1 系统控制和状态寄存器(1)系统控制和状态寄存器-SCSR1,映射到数据存储器空间7018h 。

位15:保留位14:CLKSRC,CLKOUT引脚输出源选择0-CLKOUT引脚输出CPU时钟;1-CLKOUT引脚输出WDCLK时钟位13-12:LPM低功耗模式选择,指明在执行IDLE 指令后进入哪一种低功耗模式。

00-进入IDLE1(LPM0)模式;01-进入IDLE2(LPM1)模式;1x -进入HALT (LPM2)模式。

位11-9:PLL时钟预定标选择,对输入时钟选择倍频系数。

000-4;001-2;010-1.33;011-1;100-0.8;101-0.66;110-0.57;111-0.5位8:保留位7:ADC CLKEN,ADC模块时钟使能控制位位6:SCICLKEN, SCI模块时钟使能控制位位5:SPICLKEN, SPI模块时钟使能控制位位4:CANCLKEN, CAN模块时钟使能控制位位3:EVBCLKEN, EVB模块时钟使能控制位位2:EVACLKEN, EVA模块时钟使能控制位0:禁止模块时钟(节能);1:使能模块时钟,且运行位1:保留位0:ILLADR, 无效地址检测位当检测到一个无效地址时,该位被置1,该位需软件清除,写0即可。

初始化时该位写0。

注意:任何无效的地址会导致NMI事件发生。

(2)系统控制和状态寄存器2-SCSR2映射到数据存储器空间7019h 。

实验九 FIQ 中断

实验九   FIQ  中断

2009061324 韦兴魁实验九FIQ 中断【实验目的】1. 熟悉FIQ 的中断向量和中断源;2. 掌握中断控制单元P_INT_Ctrl,P_INT_Clear 的设置方法;3. 掌握FIQ 中断的编程方法。

【实验设备】1.装有Windows 系统和µ’nSP™IDE 集成开发环境的PC 机一台,µ’nSP™十六位单片机实验箱一个。

2. 本实验用到的实验箱硬件模块为:SPCE061A 核心及周边电路模块(包含32 个I/O 口),发光二极管电路模块。

【实验要求】1. 编程要求:编写一个汇编语言程序。

2. 实现功能:打开并设置TimerA 和TimerB 定时器,并打开它们的FIQ 中断,当有TimerA/B 的FIQ中断请求时,响应相应的中断服务程序,在中断服务中翻转I/O 端口输出电平,以控制接在I/O 端口的发光二极管的亮灭。

3. 实验现象:TimerA 定时长度为2s,当进入TimerA 的FIQ 中断后,翻转IOA 口低四位的输出电平以控制接在IOA 低四位端口的发光二极管;TimerB 定时长度为1s,当进入TimerB 的FIQ中断后,翻转IOB 口低四位的输出电平以控制接在IOB 低四位端口的发光二极管。

程序运行时,可以观察到接在IOA 低四位端口的发光二极管亮灭的周期为4s,而接在IOB 低四位端口的为2s。

【实验原理】1.FIQ 中断SPCE061A 单片机的中断系统有三种类型的中断:软件中断、异常中断和事件中断。

其中事件中断有14 个中断源,可采用两种方式:快速中断请求(FIQ 中断)和中断请求(IRQ 中断)。

在后面的几个实验主要针对事件中断进行练习。

FIQ 中断对应Fosc/1024、TMA、TMB 三个中断源,通过写P_INT_Ctrl 来允许中断,并通过INT FIQ 或者FIQ ON 开总中断,INT FIQ 与FIQ ON 不同的是:INT FIQ 的功能是允许FIQ 中断,关闭IRQ 中断;FIQ ON 的功能是允许FIQ 中断。

微机原理与接口技术课件 7.中断向量表(已看)

微机原理与接口技术课件 7.中断向量表(已看)

8259A的工作过程

8259A对中断请求的处理过程如下:

当某IRi有效时,IRR相应位置1 若有效的IRi未被屏蔽,则向CPU发出中断请求INT 检测到第1个INTA信号后,置ISRi=1,IRRi=0 检测到第2个INTA信号后,把ISRi=1中最高优先级 的中断类型码 n 放到DB上
19
可编程中断控制器8259A

PIC,Programmable Interrupt



可对8个中断源实现优先级控制 (单个管8个) 可扩展至对64个中断源实现优 先级控制(9个管64个) 可编程设置不同工作方式(多套 管理方案) 根据中断源向x86提供不同中断 类型码n(来访者1人1号) 引脚分配及功能见右图
的中断;

内部中断:由处理器电路或中断指令产生的中断,
如除0中断,int指令等。
4
8086的中断向量表




存放各类中断的中断服务程序的入口地址CS:IP(段 CS和偏移IP)——中断向量 表的地址位于内存的00000H~003FFH,大小为 1KB,共256个中断向量(中断向量表) 每个中断向量占用4 Bytes,低字为段内偏移IP,高 字为段基址CS 根据中断类型号n获得中断服务程序入口的方法: 中 断向量在IVT中的存放地址=4×n (中断向量地址)
中断指令 INT n
(n=0~255)
软件 硬件
外部/硬件中断请求
2
NMI
非屏蔽中断请求
可 屏 蔽
中 断 请 求
11
DB
3 中断逻辑
n 中断控 制器 8259A PIC
0
1
单步中断
内部排队 中断开关

中断向量表

中断向量表

中断向量表1、8088/8086中断向量表的作用是什么?【答】中断向量是中断服务程序的入口地址。

将所有中断向量集中放在一起,形成中断向量表。

8086系统有256个类型的中断源。

每个类型对应一个中断向量,一个中断向量由四个字节组成:2个高地址字节:存放中断服务程序的代码段的段值;2个低地址字节:存放中断服务程序的偏移地址。

中断向量表放在内存的地段地址0单元开始的单元:00000H~03FFFH。

2、什么叫中断向量?它放在哪里?对应于1CH的中断向量在哪里?如1CH中断程序从5110H:2030H开始,则中断向量应怎样存放?【答】中断向量是中断处理子程序的入口地址,它放在中断向量表中,由1ch*4=70h知中断向量存放在0000:0070处。

由于中断处理入口地址为5110:2030所以0070H,0071H,0072H,0073H这四个单元的值分别为30H,20H,10H,51H。

3、叙述可屏蔽中断的响应过程,一个可屏蔽中断或者非屏蔽中断响应后,堆栈顶部四个单元中是什么内容?【答】当CPU在INTR引脚上接受一个高电平的中断请求信号并且当前的中断允许标志为1,CPU就会在当前指令执行完后开始响应外部的中断请求,具体如下:1、从数据总线上读取外设送来的中断类型码,将其存入内部暂存器中;2、将标志寄存器的值推入堆栈;3、将标志寄存器中IF和TF清零;4、将断点保护到堆栈中;5、根据中断类型获取中断向量转入中断处理子程序;6、处理完后恢复现场。

响应后堆栈的顶部4个单元是IP,CS。

4、从8086/8088的中断向量表中可以看到,如果一个用户想定义某个中断,应该选择在什么范围?【答】从8086/8088的中断向量表中可以看出,由于系统占用了部分中断类型码,主要包括:(1)专用中断:0~4,占中断向量表000~013H。

(2)系统备用中断:5~31H(3)用户使用中断:32H~0FFH如果一个用户想定义一个中断,可以选择中断类型码32H-FFH,其中断向量在中断向量表的0C8H-01BFH。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

常用DOS(INT 21H)功能调用表收藏
AH功能调用参数返回参数
00
程序终止(同INT
20H)
CS=程序段前缀
01键盘输入并回显AL=输入字符02显示输出DL=输出字符
03异步通迅输入AL=输入数据04异步通迅输出DL=输出数据
05打印机输出DL=输出字符
06直接控制台I/O
DL=FF(输入)
DL=字符(输出)
AL=输入字符07键盘输入(无回显)AL=输入字符08
键盘输入(无回显)
检测Ctrl-Break
AL=输入字符09显示字符串
DS:DX=串地址
'$'结束字符串
0A键盘输入到缓冲区DS:DX=缓冲区首地址
(DS:DX)=缓冲区最大
字符数
(DS:DX+1)=实际输入
的字符数
0B检验键盘状态AL=00 有输入
实用标准文档
文案大全。

相关文档
最新文档