汇编语言

Posted xxikwonxjlxi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编语言相关的知识,希望对你有一定的参考价值。

第五章:
输入/输出和中断程序设计

技术图片

 

一、Bios中断调用BIOS程序直接建立硬件基础上磁盘操作系统(DOS)和其他操作系统建立在BIOS基础上,各种高级语言则建立在操作系统基础上。用户程序可以使用高级语言,也可以调用DOS或其他操作系统,还可以调用BIOS,甚至直接指挥硬件设备。

1.调用方法
技术图片

 

 

 

(1) 设置分功能号。按实现的操作功能的要求,给指定寄存器(通常为AH)送入分功能号。

(2) 设置入口参数。按操作要求,给寄存器填写相应参数的内容(某些调用无参数。

(3) 使用中断语句INT n。执行调用的功能,其中n为中断号。

(4) 分析出口参数

2.BIOS键盘键入功能调用

技术图片

 

 

在内存0040:0017中记录了双态键和组合键的状态,该字节称为键盘状态字节KB-FLAG,通过INT 16H的功能2可以查看上述8个键的状态,有关程序段如下:

 

技术图片

 

 

3.BIOS显示功能调用

 

 有关显示输出的DOS功能调用不多,而BIOS调用(INT 10H)的功能很强,主要包括设置显示方式,设置光标大小和位置,设置调色板号,显示字符和显示图形等。

 

技术图片

 

技术图片

 

技术图片

1)显示方式的设置:INT 10H0H功能用来设置显示方式。

    (1)单色字符显示P33/34/35

    (2)彩色字符显示P36/37/38

    (3)显示存储器P39/40/41/42        字符偏址 =页偏址+((行数×行宽)+列数)×字节数

2)光标的设置:

      (1)  INT 10H的01H功能是设置光标的大小和状态。  光标起始行值放在CH的低4位,结束行值放在CL的低4位。CH的D4位为光标禁止位,用来表示光标的状态。

    (2)INT 10H的02H功能是设置光标位置。  光标位置的行号设在DH寄存器中,列号设在DL中。BH中必须包含被输出的页号,对单色显示器来说,页号总是0。

技术图片

 

     (3)INT 10H的03功能读光标位置,页号必须在BH中指定。此功能把光标位置的行号回送给DH,列号回送给DL。光标大小的参数填入CH和CL中,也就是说,在CH和CL中回送的是用功能1设置的光标参数。

    (4)INT 10H的05功能由程序确定显存中的显示区域

技术图片

 

 

     (5)INT 10H的06功能清屏和卷屏,能使屏幕内容上卷指定的行,这个功能需要设置7个参数。如果上卷超过指定窗口的顶部,这些行的内容就消失,出现在窗口底部的新行被填为空格,其属性由BH寄存器决定。 10H的功能7和功能6类似,也能使屏幕(或窗口)初始化或使屏幕(或窗口)的内容下卷指定的行,其他参数的设置与功能6一样。

 

 

 技术图片

4.BIOS的打印功能:(INT 17H)

   (1)打印一个字符:BIOS 17H中断指令的功能0。要打印输出的字符放在AL中,打印机号放在DX中,打印机的状态信息被回送到AH寄存器。

   (2)初始化打印机功能:BIOS 17H中断指令的功能1。用于初始化打印机并回送打印机状态到AH寄存器。

   (3)状态字节读入AH寄存器:BIOS 17H中断指令的功能2。

 

以上是关于汇编语言的主要内容,如果未能解决你的问题,请参考以下文章

汇编语言笔记

机器语言汇编语言高级语言

c语言与汇编语言、c++语言等有啥不同呢?

汇编语言

汇编语言(面向机器的程式设计语言)详细资料大全

帮我简单介绍一下汇编语言