软件中断调用

DOS功能调用

DOS中断号范围:0x20H~0x3FH,总共32个中断向量

INT 21H
  1. 01H号子功能: 等待从键盘输入一个字符,同时将该字符显示在显示器上
    入口参数:无
    出口参数:AL=按键的ASCII码

  2. 02H号子功能: 显示一个字符
    入口参数:DL=待显示字符的ASCII码
    出口参数:无

  3. 07H号子功能: 等待从键盘输入一个字符,但该字符不显示在显示器上,不响应CTRL_C
    入口参数:无
    出口参数:AL=按键的ASCII码

  4. 08H号子功能: 等待从键盘输入一个字符,同时将该字符显示在显示器上,响应CTRL_C
    入口参数:无
    出口参数:AL=按键的ASCII码

  5. 09H号子功能: 显示字符串,响应CTRL_C
    入口参数:DS:DX=字符串首地址,字符串必须以’$'为结束标志
    出口参数:无

  6. 0AH号子功能:等待从键盘输入字符串,并保存在输入数据缓冲区,同时在屏幕上显示
    入口参数:DS:DX=输入数据缓冲区首地址,回车键为结束符,回车键’0DH’保存在缓冲区中,缓冲区首单元预置接收的字符个数(包括回车键),BUF+1单元有0AH功能写入实际接收字符个数,因此缓冲区大小应大于等于接收字符(包括回车键)个数+2。
    出口参数:AL=按键的ASCII码

  7. 0BH号子功能:查询有无键盘输入,响应CTRL_C
    入口参数:无
    出口参数:AL=0,无输入;AL=FFH,有输入。

  8. 4CH号子功能:结束正在运行的程序,并返回DOS系统
    入口参数:AL=返回码(或者不设置)
    出口参数:无

  9. 25H号子功能:写入中断向量
    入口参数:AH=25H,AL=中断类型码;DS:DX=要写入的中断向量
    出口参数:无

  10. 35H号子功能:读取中断向量
    入口参数:AH=35H,AL=中断类型码
    出口参数:ES:BX=中断向量

注意:

  • DOS中断参数总结:单字节参数(1)输入用DL,(2)输出用AL
  • DOS功能调用要注意DOS重入问题,若程序中开启了中断且在中断服务函数中调用了DOS功能函数,主程序中应避免使用DOS功能调用,而用BIOS相关功能替换
BIOS功能调用

BIOS中断号范围:0x10H~0x1FH,总共16个中断向量

INT 16H (键盘中断)
  1. 00H号子功能:读取输入的一个字符,无回显,响应CTRL_C,无输入则等待
    入口参数:无
    出口参数:AL=输入字符的ASCII码,若AL=0,则AH=输入键的扩展码

  2. 01H号子功能:查询键盘缓冲区
    入口参数:无
    出口参数:

    • Z标志=0,表示有输入,键代码仍留在键盘缓冲区中,此时AL=输入字符的ASCII码,AH=输入字符的扩展码
    • Z标志=1,表示无输入
  3. 02H号子功能:读取当前转换键状态
    入口参数:无
    出口参数:

    • AL=键盘状态字
    • AL7位置1表示Insert键有效(被奇数次按下)
    • AL6位置1表示Caps Lock键有效(相应的指示灯亮)
    • AL5位置1表示Num Lock键有效(相应的指示灯亮)
    • AL4位置1表示Scroll Lock键有效(相应的指示灯亮)
    • AL3位置1表示按下Alt键
    • AL2位置1表示按下Ctrl键
    • AL1位置1表示按下左Shift键
    • AL0位置1表示按下右Shift键
INT 10H(屏幕中断)
  1. 00H号子功能:设置屏幕显示方式
    入口参数:
    - AL=0 --> 40 * 25 黑白文本方式
    - AL=1 --> 40 * 25 彩色文本方式
    - AL=2 --> 80 * 25 黑白文本方式
    - AL=3 --> 80 * 25 彩色文本方式

  2. 02H号子功能:预置光标位置
    入口参数:BH=显示页号,DH=行号,DL=列号
    出口参数:无

  3. 03H号子功能:读取光标的当前位置
    入口参数:BH=显示页号
    出口参数:

    • CH、CL=光标顶部扫描线、底部扫描线的行号
    • DH、DL=光标在屏幕上的行、列号
  4. 05H号子功能:设置当前显示页
    入口参数:AL=显示存储器页号0~7
    出口参数:在屏幕上显示出指定显示页的字符(只对文本方式有效)

  5. 08H子功能:读取光标所在位置的字符及其属性
    入口参数:BH=显示页号
    出口参数:

    • AH=光标所在位置的字符属性
    • AL =光标所在位置的字符的ASCII码,如果没有对应字符的ASCII码则AL置0
  6. 0EH子功能号:显示一个字符
    入口参数:AL=待显示字符的ASCII码
    出口参数:无

INT 1AH
  1. INT 1AH的0H号子功能:调用读取日时钟计数器中的计数值

  2. INT 1AH的1H号子功能:调用预置日时钟计数器中的计数值

  3. INT 1CH型中断功能:BIOS为1CH型中断设计的服务程序只有一条IRET指令,由08H型日时钟中断服务程序调用

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值