BIOS中断调用与DOS功能调用

来源:互联网 发布:淘宝客服遇到衣服沾灰 编辑:程序博客网 时间:2024/05/17 22:00
1.BIOS中断调用的基本用途是什么?使用BIOS调用的好处是什么?
  答:BIOS是系统提供的基本输入输出例行程序,它包括系统加电自检,引导装入,主要I/O设备的处理程序以及接口控制等功能模块。BIOS有两个基本用途:一是给不同系列的微处理器提供兼容的I/O服务,使程序员在编程时不必考虑不同型号机器的具体差别。二是给程序员提供文件化的,直接对硬件进行操作的子功能,程序员可不必了解硬件操作的具体细节。所以利用BIOS功能编写程序简单方便,可读性好。
  2.DOS功能调用的用途是什么?与BIOS中断调用在使用上有什么差别?
  答:DOS是PC机上最重要的操作系统,它和BIOS一样包括有近百个设备管理、目录管理和文件管理程序,是一个功能齐全、使用方便的中断例行程序的集合。使用DOS操作比使用相应功能的BIOS操作更简易,而且对硬件的依赖性更少些。
  3.BIOS和DOS中断调用的方法是什么?
  答:BIOS功能与DOS功能都是通过软件中断调用的。在中断调用前需要把功能号装入AH寄存器,把子功能号装入AL寄存器,除此而外,通常还需在CPU寄存器中提供专门的调用参数。一般地说,调用DOS或BIOS功能时,有以下几个基本步骤:
  (1)把调用参数装入指定的寄存器中;
  (2)如需功能号,把它装入AH;
  (3)如需子功能号,把它装入AL;
  (4)按中断号调用DOS或BIOS中断;
  (5)检查返回参数是否正确。
  4.键盘上什么键能产生ASCII码?不能产生ASCII码的键如何识别?
  答:键盘上的所有按键的识别采用行列扫描法,即根据对行线和列线的扫描结果来确定闭合键的位置,并通过键盘数据线将闭合键所对应的扫描码(8位)送往主机。其中字符数字键给计算机传送一个ASCII码字符,而扩展功能键产生一个动作,如按下Home键能把光标移到屏幕的左上角,End键使光标移到屏幕上文本的未尾。按动组合控制键能改变其它键所产生的字符码。
  5.什么是通码和断码?它们的标志是什么?
  答:按下键时,产生的扫描码称为通码,放开键时产生的扫描码称为断码。其代码的最高位为0,表示是通码,最高位为1,表示是断码。
  6.如何判断按动了组合控制键?
  答:组合控制键的状态反映在键盘状态字节中,INT 16H的AH=2的功能可以把表示组合控制键的状态回送到AL寄存器。按动某键所对应的位为1,反之为0。
  7.DOS键盘06功能是读写控制台,控制台是指什么?
  答:控制台是指主机及其配置的基本输入输出设备,一般是显示器和键盘。INT 21H的06功能,当(DL)=0FFH时,输入键盘字符;当(DL)=0~0FEH时,请求输出设备工作。
  8.DOS功能AH=1和AH=7、8都是从键盘输入一个字符,它们有什么不同?
  答:INT 21H 功能07和08的输入操作与功能01H相似,不同的是输入字符不回显。使用功能7,输入字符不回显,也不进行Ctrl_C或Ctrl_Break的检查处理。08功能不回显字符,但与01H一样,支持Ctrl_C或Ctrl_Break的中断处理。
  9.程序如何获得功能键和数字组合键的字符码?
  答:要接收功能键或数字组合键,程序必须进行两次DOS调用,第一次调用回送00,第二次调用回送所按键的扫描码。程序如下:
   MOV  AH, 7 ; 第一次DOS键盘调用INT 21H
   CMP  AL, 0
   JE  ISEC ; (AL)=0,则是功能键或数字组合键
   ···
ISEC: MOV  AH, 7 ; 第二次DOS键盘调用
   INT  21H  ; (AL) = 扫描码
   ···
  10.使用21H 中断的功能A输入字符串时应注意些什么?
  答:使用21H 中断的功能A输入字符串时,特别要注意缓冲区的定义方法。缓冲区的第一个字节保存最大字符数,这个最大字符数由用户给出。第二个字节是实际输入字符的个数,这个数据由功能A填入。在这两个字节之后,字符串就按字节存入缓冲区,最后一个字节是结束字符串的回车符0DH,因此整个缓冲区的字节空间应定义为最大字符数(包括Return在内)加2。INT 21H的功能A把实际字符数(不包括Return)填入缓区的第二个字节,并保持DS : DX 指向缓冲区的第一个字节。所以,取输入的字符串应从指针DX+2开始。
  11.在文本方式下,显示屏上的字符是如何表示的?
  答:对应显示屏幕上的每个字符,在存储器中由连续的两个字节表示,一个字节保存ASCII码,另一个字节保存字符的属性。
  12.什么是字符的属性?
  答:说明字符显示特性的字节称为字符属性。对单色显示,字符属性定义了字符是否闪烁,是否加强亮度,是否反相显示等。对彩色显示,属性字节定义了显示字符(前景)和背景的颜色以及闪烁和亮度等特性。
  13.屏幕上的字符位置和显存地址的关系如何?
  答:屏幕上某一字符位置和显存中的偏移地址的关系可由下列公式表示: 字符偏移地址=页偏址+((行号×每行字符数)+列号)×2
  14.使用INT 21H显示字符串功能要注意些什么?
  答:使用INT 21H显示字符串,一定要在显示串之后加上定界符$,因为此功能是用$作为标记来计算串的长度的。另外控制码不能出现在字符串中。显示字符串时,如果希望光标能自动换行,那么可在字符串结束之前加上回车和换行的ASCII码。
  15.用显示字符串功能显示下面定义的字符串有什么问题? 
   (1) MESS DB ‘DISPLAY THE STRING.’, CR, LF, ‘$’
   (2) MESS DB ‘DISPLAY THE STRING.$’, 0DH, 0AH
  答:(1))字符串中的回车符(CR)和换行符(LF)不能识别,必须在字符串中直接写出它们的ASCII码(用十六进制或十进制表示均可):
  MESS  DB ‘DISPLAY THE STRING.’, 13, 10, ‘$’
  另一种方法是用EQU定义出CR和LF的ASCII值,这时可在字符串中直接使用CR和LF。
  (2)字符串显示后,光标不能移动到下一行开始,因为回车换行符在定界符$之后,而字符串显示功能把’$’作为显示字符串的结束标记。
  16.用打印机打印出一个字符串应使用什么功能调用?
  答:打印机的I/O中断调用没有提供打印字符串的功能,要打印一个字符串可多次调用DOS或BIOS打印单字符的功能,字符串的长度作为循环打印字符的计数控制值。
  17.串行通信有哪两种方式?
  答:串行通信有并行和串行两种方式。在并行数据传输方式中,8位或16位的数据同时进行发送或接收。在串行通信方式中,通信接口每次由CPU得到8位或16位的数据,然后一位位地串行传送。
  18.调制解调器的作用是什么?
  答:通过电话线远距离传输信息时,调制解调器(MODEM)可把表示0和1的数字信号转换为能在电话线上传输的音频信号,或者从音频信号转换为数字信号。这种转换工作就是由调制解调器来完成的。
  19.在串行通信方式中是如何识别连续不断的数字信号呢?
  答:计算机通信规定了数据的格式,对每个要传送的字符都要按规定的格式进行组帧,例如,一个组帧后的字符有1位起始位,8位字符码和2位终止位。传输由起始位开始,接着的字符从低位到高位顺序送出,最后2位终止位表示字符结束。在没有传输信号时,1(高电平)称为标记(Mark),0(低电平)称为间隔(space)。
  20.计算机通信的数据格式是固定的吗?
  答:不是,程序员可以通过DOS命令和BIOS功能对COM端口以及数据参数进行初始化。使用DOS的MODE命令进行初始化的格式为:
    MODE COM端口号(1~4): 波特率, 校验位, 数据字长, 终止位位数
  例:MODE COM1,24,O,8,1 为COM1设置参数为:2400波特率,奇校验,8位字长及1位终止位 使用BIOS INT 14H的0功能可设置串信通信口的初始化参数,例如:
  MOV AL,10100011B ; 2400波特,字长为8位,1位终止位,无奇偶校验
  MOV DX,0     ; COM1
  MOV AH,0     ; 初始化通信口功能INT 14H ; BIOS调用。
原创粉丝点击