这只是一点准备工作。为了显示字符串,需要调用中断:int  0x10 (AH=0x13)。具体参数设置,参考我的归纳整理如下:

INT 10 (AH = 0)

-----------------
功能:设置显示方式
调用参数:
    AL = 00:40 * 25 黑白方式
         01:40 * 25 彩色方式
         02:80 * 25 黑白方式
         03:80 * 25 彩色方式
         04:320 * 200 彩色图形方式
         05:320 * 200 黑白图形方式
         06:640 * 200 黑白图形方式
         07:80 * 25 单色文本方式
         08:160 * 200 16色图形(PCjr)
         09:320 * 200 16色图形(PCjr)
         0A:640 * 200 16色图形(PCjr)
         0B:保留(EGA)
         0C:保留(EGA)
         0D:320 * 200 彩色图形(EGA)
         0E:640 * 200 彩色图形(EGA)
         0F:640 * 350 黑白图形(EGA)
         10:640 * 350 彩色图形(EGA)
         11:640 * 480 单色图形(EGA)
         12:640 * 480 16色图形(EGA)
         13:320 * 200 256色图形(EGA)
         40:80 * 30 彩色图形(CGE400)
         41:80 * 50 彩色图形(CGE400)
         42:640 * 400 彩色图形(CGE400)  
         
INT 10 (AH = 1)
---------------
功能:置光标类型
调用参数:
    CH(0-3) = 光标起始行
    CL(0-3) = 光标结束行
    
INT 10 (AH = 2)
----------------
功能:置光标位置
调用参数:
    BH = 页号
    DH,DL = 行,列
    
INT 10 (AH = 3)
----------------
功能:读光标位置
调用参数:
    BH = 页号
返回参数:
    CH = 光标起始行
    DH,DL = 行,列
    
INT 10 (AH = 4)
----------------
功能:读光笔位置
返回参数:
    AH = 0:光笔未触发
         1:光笔触发
    CH = 像素行
    BX = 像素列
    DH = 字符行
    DL = 字符列
    
INT 10 (AH = 5)
----------------
功能:置显示页
调用参数:
    AL = 页号
    
INT 10 (AH = 6)
----------------
功能:屏幕初始化或上卷
调用参数:
    AL = 上卷行数
         0:整个窗口空白
    BH = 卷入行属性
    CH = 左上角行号
    CL = 左上角列号
    DH = 右下角行号
    DL = 右下角列号
    
INT 10 (AH = 7)
---------------
功能:屏幕初始化或下卷
调用参数:
    AL = 下卷行数
         0:整个窗口空白
    BH = 卷入行属性
    CH = 左上角行号
    CL = 左上角列号
    DH = 右下角行号
    DL = 右下角列号
    
INT 10 (AH = 8)
----------------
功能:读光标位置的字符和属性
调用参数:
    BH = 显示页
返回参数:
    AH = 属性
    AL = 字符
    
INT 10 (AH = 9)
----------------
功能:在光标位置显示字符及其属性
调用参数:
    BH = 显示页
    AL = 字符
    BL = 属性
    CX = 字符重复次数
    
INT 10 (AH = A)
----------------
功能:在光标位置显示字符
调用参数:
    BH = 显示页
    AL = 字符
    CX = 字符重复次数
    
INT 10 (AH = B)
----------------
功能:置彩色调板(320 * 320 图形)
调用参数:
    BH = 彩色调板 ID
    BL = 和 ID 配套使用的颜色
    
INT 10 (AH = C)
----------------
功能:写像素
调用参数:
    DX = 行(0--199)
    CX = 列(0--639)
    AL = 像素值
    
INT 10 (AH = D)
----------------
功能:读像素
调用参数:
    DX = 行(0--199)
    CX = 列(0--639)
返回参数:
    AL = 像素值
    
INT 10 (AH = E)
----------------
功能:显示字符(光标前移)
调用参数:
    AL = 字符
    BL = 前景色
    
INT 10 (AH = F)
----------------
功能:取当前显示方式
返回参数:
    AH = 字符列数
    AL = 显示方式
    
INT 10 (AH = 13)
-----------------
功能:显示字符串(适用AT)
调用参数:                       ;返回参数
    ES:BP = 串地址
    CX = 串长度
    DH,DL = 起始行,列
    BH = 页号
    AL = 0,BL = 属性
    串:char,char,...           ;光标返回起始位置
    AL = 1,BL = 属性           ;光标跟随移动
    串:char,char,...
    AL = 2                     ; 光标返回起始位置
    串:char,char,...
    AL = 3                      ; 光标跟随移动
    串:char,char,...
    
INT 11 
------
功能:设备校验
返回参数:
    AX = 返回值
    bit0 = 1:配有磁盘
    bit1 = 1:80287 协处理器
    bit4,5 = 10:40 * 25 BW(彩色板)
             01:80 * 25 BW(彩色板)
             11:80 * 25 BW(黑白板)
    bit6,7 = 软盘驱动器
    bit9,10,11 = RS-232 板号
    bit12 = 游戏适配器
    bit14,15 = 打印机号
    
INT 12
-------
功能:测定存储器容量
返回参数:
    AX = 字节数(KB)
    
INT 13 (AH = 0)
----------------
功能:软盘系统复位

INT 13 (AH = 1)
----------------
功能:读软盘状态
返回参数:
    AL = 状态字节
    
INT 13 (AH = 2)
----------------
功能:读磁盘
调用参数:
    AL = 扇区数
    CH,CL = 磁道号,扇区号
    DH,DL = 磁头号,驱动器号
    ES:BX = 数据缓冲区地址
返回参数:
    成功:AH = 0,AL = 读取的扇区数
    失败:AH = 出错代码
    
INT 13 (AH = 3)
----------------
功能:写磁盘
调用参数:
    AL = 扇区数
    CH,CL = 磁道号,扇区号
    DH,DL = 磁头号,驱动器号
    ES:BX = 数据缓冲取地址
返回参数:
    成功:AH = 0, AL = 写入的扇区数
    失败:AH = 出错代码
    
INT 13 (AH = 4)
----------------
功能:检验磁盘扇区
调用参数:
    AL = 扇区数
    CH,CL = 磁道号,扇区号
    DH,DL = 磁头号,驱动器号
返回参数:
    成功:AH = 0,AL = 检验的扇区数
    失败:AH = 出错代码
    
INT 13 (AH = 5)
----------------
功能:格式化盘磁道
调用参数:
    ES:BX = 磁道地址
返回参数:
    成功:AH = 0
    失败:AH = 出错代码
    
INT 14 (AH = 0)
----------------
功能:初始化串行通讯口
调用参数:
    AL = 初始化参数
    DX = 通讯口号(0,1)
返回参数:
    AH = 通讯口状态
    AL = 调制解调器状态
    
INT 14 (AH = 1)
----------------
功能:向串行通讯口写字符
调用参数:
    AL = 字符
    DX = 通讯口号(0,1)
返回参数:
    写成功:AH(7) = 0
    写失败:AH(7) = 1
    AH(0-6) = 通讯口状态
    
INT 14 (AH = 2)
----------------
功能:从串行通讯口读字符
调用参数:
    DX = 通讯口号(0,1)
返回参数:
    读成功:AH(7) = 0, AL = 字符
    读失败:AH(7) = 1
    AH(0-6) = 通讯口状态
    
INT 14 (AH = 3)
----------------
功能:取通讯口状态
调用参数:
    DX = 通讯口号(0,1)
返回参数:
    AH = 通讯口状态
    AL = 调制解调器状态
    
INT 15 (AH = 0)
----------------
功能:启动盒式磁带马达

INT 15 (AH = 1)
----------------
功能:停止盒式磁带马达

INT 15 (AH = 2)
----------------
功能:磁带分块读
调用参数:
    ES:BX = 数据传输区地址
    CX = 字节数
返回参数:
    AH = 状态字节
         00:读成功
         01:冗余检验错
         02:无数据传输
         04:无引导
         08:非法命令
         
INT 15 (AH = 3)
----------------
功能:磁带分块写
调用参数:
    DS:BX = 数据传输区地址
    CX = 字节数
返回参数:
    同上
    
INT 16 (AH = 0)
----------------
功能:从键盘读字符
返回参数:
    AL = 字符码
    AH = 扫描码
    
INT 16 (AH = 1)
----------------
功能:读键盘缓冲区字符
返回参数:
    ZF = 0: AL = 字符码,AH = 扫描码
    ZF = 1: 缓冲区空
    
INT 16 (AH = 2)
----------------
功能:取键盘状态字节
返回参数:
    AL = 键盘状态字节
    
INT 17 (AH = 0)
----------------
功能:打印字符,回送状态字节
调用参数:
    AL = 字符
    DX = 打印机号
返回参数:
    AH = 打印机状态字节
    
INT 17 (AH = 1)
----------------
功能:初始化打印机,回送状态字节
调用参数:
    DX = 打印机号
返回参数:
    AH = 打印机状态字节
    
INT 17 (AH = 2)
----------------
功能:取状态字节
调用参数:
    DX = 打印机号
返回参数:
    AH = 打印机状态字节
    
INT 1A (AH = 0)
----------------
功能:读时钟
返回参数:
    CH:CL = 时:分
    DH:DL = 秒:1/100秒
    
INT 1A (AH = 1)
----------------
功能:置时钟
调用参数:
    CH:CL = 时:分
    DH:DL = 秒:1/100秒
    
INT 1A (AH = 2)
----------------
功能:读实时钟(适用AT)
返回参数:
    CH:CL = 时:分(BCD)
    DH:DL = 秒:1/100秒(BCD)
    
INT 1A (AH = 6)
----------------
功能:置报警时间(适用AT)
调用参数:
    CH:CL = 时:分(BCD)
    DH:DL = 秒:1/100秒(BCD)
    
INT 1A (AH = 7)
----------------
功能:清除报警(适用AT)

x01.os.1: BIOS 中断的更多相关文章

  1. x01.os.8: 加载内核

    在 x01.os.7 中,借助 freedos,学习了保护模式.但操作系统必须完成引导:boot, 加载内核:loader,kernel,进而管理process,memory,file等. 引导比较简 ...

  2. x01.os.9: 进程切换

    进入内核后,当然不能无所事事.先创建三个进程,分别打印 A,B,C.虽然只是简单的打印,但却是一切扩展的基础,不可等闲视之. 进程切换,涉及一系列的寄存器需要保护,于是,就有了 ProcessStac ...

  3. x01.os.7: 傻子一样的等

    傻子一样的等 昨日出差,办完事后,下午 2:30,准备进长途汽车站买票回家,被一人拦住,说可以带我进去,车马上就要开了,买票来不及.我以为是汽车司机,就跟了进去.进去后,他打了个电话,说 3:30 车 ...

  4. x01.os.14: 时间都去哪儿了

    时间都去哪儿了 老帕的“花儿为什么这样红”,三分钟引起六次欢呼,却败给了张碧晨.试想一下,如果是人气更高的陈冰,即使唱得和张碧晨一模一样,可能仍然不敌老帕,为什么张碧晨就能取胜呢?有这么个笑话:一人弹 ...

  5. x01.os.13: 文件系统

    停了两天电,忽然得空闲.找来破吉他,已然不成弦.           丁丁当当敲,敲到电来到.为把时间捡,熬夜三四点. 从我的置顶随笔 x01.Lab.Download 中下载 x01.os.12.t ...

  6. BIOS中断大全

    BIOS中断大全 BIOS中断:1.显示服务(Video Service——INT 10H)  00H —设置显示器模式0CH —写图形象素01H —设置光标形状0DH —读图形象素02H —设置光标 ...

  7. 2.2 BIOS中断

    BIOS中断 BIOS中断简介 计算机刚启动时,进入实模式下,此时操作系统跟硬件(例如键盘鼠标显卡等)交互通过BIOS进行的.通过调用中BIOS中断的方式来访问硬件设备. BIOS中断就不详细介绍了. ...

  8. 软盘相关知识和通过BIOS中断访问软盘

    一. 软盘基础知识介绍 (1) 3.5英寸软盘 3.5英寸软盘分为上下两面,每面有80个磁道,每个磁道又分为18个扇区,每个扇区大小为512个字节. 软盘大小计算: 2面 * 80磁道 * 18扇区 ...

  9. BIOS 中断大全

    BIOS中断: 1.显示服务(Video Service--INT 10H) 00H -设置显示器模式0CH -写图形象素  01H -设置光标形状0DH -读图形象素  02H -设置光标位置0EH ...

随机推荐

  1. JVM基本原理

    第一节 JVM内存模型 •堆栈简称栈,主要提供以下用途: –保存临时数据 –放置临时变量(局部.自动.堆栈) –保存调用现场 –方法返回值的传递 •堆主要提供以下用途: –存放对象(GC对象) –存放 ...

  2. Android 亮度调节

    最近在做一个App的设置项,亮度调节.真正做时,发现Android亮度调节比预想要复杂一些.其实目前网上已有不少这方面的资料,但有些博文具有一定误导性.在此将这块内容按照自己理解整理一下. 整体上看, ...

  3. 跨平台日志清理工具 Log-Cutter v2.0.1 RC-1 发布

    Log-Cutter 是JessMA开源组织开发的一个简单实用的日志切割清理工具.对于服务器的日常维护来说,日志清理是非常重要的事情,如果残留日志过多则严重浪费磁盘空间同时影响服务的性能.如果用手工方 ...

  4. ssh默认端口更改后,如何正常使用git?

    由于安全或者其它原因,我们可能会修改默认的SSH服务端口号,默认情况下,已有的git项目在pull或者push的时候会报错. 现在假设原来的项目的remote设置为git@domain.com:Pro ...

  5. Linux学习笔记17--Linux系统启动详解

    多数操作系统的启动流程: BIOS启动自检 ->MBR引导->执行引导程序GRUB->加载内核->执行init->runlevel   BIOS(Basic Input ...

  6. 06Mybatis_入门程序——根据用户的名字模糊查询返回List集合

    本篇论文讲的是模糊查询然后返回的是一个list集合. 这片文章的案例是基于上一篇文章的,所以主要修改两处地方就可以了. 1.user.xml 2.Mybatis_first.java user.xml ...

  7. 把GAE程序通过SSH部署到 VPS

    大部分在文档上都写了, 写这篇文章的目的是发现现在appcfg.py update xxxx的时候会打开浏览器访问google请求授权(后台内建了一个本地server, 端口是8090, 授权成功后会 ...

  8. slid.es – 创建在线幻灯片和演示文稿的最佳途径

    slid.es 提供了一种创建在线幻灯片和演示文稿的简单方法,让你通过几个简单的步骤制作效果精美的在线演示文稿.基于 HTML5 和 CSS3 实现,在现代浏览器中效果最佳. 您可能感兴趣的相关文章 ...

  9. JS中数组去除重复

    法一:返回新数组每个位子类型没变 function outRepeat(a){ var hash=[],arr=[]; for (var i = 0; i < a.length; i++) { ...

  10. C#仿google日历asp.net简单三层版本

    网上搜了很多xgcalendar的例子都是Php开发的,而且官方站上的asp.net/MVC版 在vs10 08 都报错. 所以自己重新用三层写了一下希望对大家有帮助 废话不多说了 先看看它都有些什么 ...