第9章 BIOS和DOS中断
第9章 bios和dos功能调用
MOV AH, 01 ;调用第21h ;设置功能号:键盘输入 mov ah,4ch 号中断例程的 4ch号子程序 mov al,0 ;提供返回值作为参数 INT 21H ;DOS功能调用 int 21h MOV CHAR, AL ;返回参数: (AL)=字符ASCII码
;-----------------显示输出一个字符
Your site here
DOS键盘中断 0AH功能号
例: 输入字符串到缓冲区STRING
DATA SEGMENT MAXLEN DB 32
MAXLEN DB
MAXLEN DB
32 ,0, 32 DUP(?)
32 ,33 DUP(?)
ACTLEN
STRING CODE DATA ENDS
DB ?
MOV DL, ’A’ MOV AH, 02 INT 21H
;调用参数:
待输出字符的ASCII码
; DOS功能号: 显示输出 ; DOS调用
Your site here
与子程序调用的比较
主程序 ……
CALL SUBP 子程序
……
…… RET
实现机制不同
……
源程序 …… DOS/BIOS调用 INT n ……
1.设置显示方式
入口参数 AL = 显示方式值 00 40×25 黑白文本方式 01 40×25 彩色文本方式 02 80×25 黑白文本方式 03 80×25 彩色文本方式 04 320×320 彩色图形方式 AH = 00H 10H 无 将显示方式设置为指定的形式
功能号 类型号 出口参数 实现功能
Your site here
中断传送方式
中断:使cpu中止正在执行的程序而转去处理特殊事件的操作。 中断源: 引起中断的事件。 8086/8088CPU最多有 256个中断源
第九讲_DOS功能调用
中断向量分配表
类型号 00H 01H 02H 03H 04H 05H 06-07H 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 中断功能名称 除零错误 单步执行 非屏蔽中断 断点设置 溢出错误 屏幕打印 保留 定时器中断 键盘中断 保留 串行通信中断 保留 硬盘中断 软盘中断 打印机中断 BIOS BIOS BIOS BIOS BIOS BIOS BIOS BIOS 可屏蔽硬中断 可屏蔽硬中断 可屏蔽硬中断 可屏蔽硬中断 可屏蔽硬中断 可屏蔽硬中断 可屏蔽硬中断 可屏蔽硬中断 模 块 BIOS BIOS BIOS BIOS BIOS BIOS 中 断 源 CPU 内部操作 DEBUG 程序 非屏蔽硬中断 DEBUG 程序 CPU 内部操作 INT 指令
2. 中断类型分类 向量表中的中断类型分为七类: ① 处理CPU特殊操作( 除0、溢出 )的00H、04H类型。 ② 为DEBUG调试程序设置的单步( 01H )、断点( 03H )类型。 ③ 处理CPU的NMI引脚信号的02H类型。 非屏蔽硬中断子程 NMI 8088
④ 处理CPU的INTR引脚信号的08~0FH类型。 可屏蔽类型硬中断子程 ⑤ 用INT指令调用的中断子程 BIOS功能调用(如10~1AH) DOS功能调用 (如 21H)
在AH设置功能号m 执行中断指令INT N
分析、应用出口参数
例1
单字符显示功能调用 MOV DL, ‘A’ INT 21H ;设置入口参数 ;执行中断调用 MOV AH, 02H ;设置功能号
例2
单字符输入功能调用
MOV AH, 01H ;设置功能号 INT JZ 、、、 21H exit ;执行中断调用
ROM BIOS 基本I/O 向 MSDOS.SYS提供设备驱动服务。 系 统 硬
DOS命令之中断大全
DOS中断:1、字符功能调用类(Cha racte r-Ori ented Func tion)01H、07H和08H —从标准输入设备输入字符02H—字符输出03H—辅助设备的输入04H —辅助设备的输出05H—打印输出06H—控制台输入/输出09H—显示字符串0AH—键盘缓冲输入0BH —检测输入状态0CH—清输入缓冲区的输入功能(1)、功能01H、07H和08H功能描述:从标准输入设备(如:键盘)读入一个字符。
该中断在处理过程中将一直处于等待状态直到有字符可读为止。
该输入还可被重定向,如果这样做,则无法判断文件是否已到文件尾入口参数:AH=01H,过滤掉控制字符,并回显=07H,不过滤掉控制字符,不回显=08H,过滤掉控制字符,不回显出口参数:AL=输入字符的ASCI I码(2)、功能02H功能描述:向标准输出设备(如:屏幕)输出一个字符。
该输出还可被重定向,如果这样做,则将无法判断磁盘是否满入口参数:AH=02HDL=待输出字符的ASC II码出口参数:无(3)、功能03H功能描述:从辅助设备读入一个字符,该辅助设备的缺省值为CO M1入口参数:AH=03H出口参数:AL=读入字符的AS CII码(4)、功能04H功能描述:向辅助设备输出一个字符,该辅助设备的缺省值为COM1入口参数:AH=04HD L=待输出字符的AS CII码出口参数:无(5)、功能05H功能描述:向标准的输出设备输出一个字符。
该缺省的输出设备为LPT1端口的打印机,除非用MODE命令来改变入口参数:AH=05HDL=待输出字符的ASCI I码出口参数:无(6)、功能06H功能描述:控制台(如:键盘、屏幕)输入/输出。
第九章 BIOS 和 DOS 中断
DOS 打印功能 ( AH=5 )
(打印一个字符)
DOS 串行通讯口功能 ( AH=3, 4 )
(从串口读一个字符/向串口写一个字符)
2. BIOS 中断调用
BIOS 键盘中断 ( INT 16H
AH = 0, 1, 2 ) (从键盘读一字符/读键盘缓冲区字符/取键盘状态字节) 例:从键盘读一字符 ( AH=0 ) mov int mov call ah, 0 16h bx, ax binihex
DOS 显示功能调用 ( AH=2, 6, 9 )
(显示一个字符/显示字符串)
例:显示一个字符 ( AH=2 )
mov ah, 2 mov dl, ‘A’ int 21h 例:显示字符串 ( AH=9 ) string mov mov int db ‘HELLO’, 0dh, 0ah, ‘$’ dx, offset string ah, 9 21h
用户在程序中调用 DOS 提供的一些子功能:
(1) 一般设备的输入输出
(2) 磁盘的输入输出及磁盘文件的管理 (= 1, 6, 7, 8, A, B, C )
(单字符输入/输入字符串/清除键盘缓冲区/检验键盘状态)
例:单字符输入 ( AH=1 )
get_key: mov int cmp je cmp je jne yes: …… no: …… ah, 1 21h al, ‘Y’ yes al, ‘N’ no get_key
(1) 将调用参数装入指定寄存器 (2) 如需功能号,将它装入 AH (3) 如需子功能号,将它装入 AL (4) 按中断类型号调用 DOS 或 BIOS 中断 (5) 检查返回参数是否正确
DOS 功能与 BIOS 功能都通过 软件中断 调用。
第9章 BIOS和DOS中断
第9章 BIOS和DOS中断1.教学目的:掌握BIOS和DOS中断程序设计的方法2.教学要求:①熟悉BIOS中断调用概念和调用方法②熟悉DOS中断调用概念和调用方法3.教学重点:①BIOS和DOS中断调用的概念和方法4.掌握难点:①BIOS和DOS中断程序设计方法5.教学进程安排:P315~P3486.教学方法:课堂讲授7.教学内容摘要9.1 BIOS和DOS概述9.1.1 基本输入输出系统(basic input / output system,BIOS)例行程序:位置:ROM(0FE000H~0FEFFF);功能:系统加电自检、引导装入、主要I/O设备的处理、接口控制方面的系统中断等;利用BIOS功能编写的程序特点:简洁,可读性好,易于移植。
9.1.2 磁盘操作系统(disk operating system,DOS)位置:软盘或硬盘;,:使BIOS用起来更方便;特点:比BIOS操作更简易,对硬件的依赖更少些。
9.1.3 DOS模块和ROM BIOS的关系图9.1 DOS模块和ROM BIOS的关系DOS 模块和ROM BIOS 的关系如图9.1所示:调用DOS 或BIOS 功能时,一般有以下几个基本步骤:①将调用参数装入指定的寄存器中;②如需功能号,把它装入AH ;③如需子功能号,把它装入AL ;④按中断号调用DOS 或BIOS 中断;⑤检查返回参数是否正确。
9.2 BIOS 中断调用9.2.1 BIOS 中断调用概述图9.2是用户程序和操作系统关系示意图,图9.2 用户程序和操作系统关系示意图9.2.2 BIOS 中断调用方法1、BIOS 调用的基本操作⑴设置分功能号 ⑵置入口参数⑶使用中断语句INT n ⑷分析出口参数2、BIOS 键盘输入功能调用扫描码:键盘上的每一个键都对应一个扫描码(01~83,或01H~53H),根据扫描码能唯一地确定哪一个键改变了状态。
字符码:①大部分键的字符码是一个标准的ASCII 码;②Alt 和功能键(F1~F10)等没有相应ASCII 码的键的字符码为0; ③能产生一个具体操作的一些非ASCII 码键。
第9章_BIOS基本设置
第9章 BIOS基本设置BIOS可以说是计算机系统启动和正常运转的基石,对BIOS的设置是否合理在很大程度上决定着主板,甚至整台计算机的性能。
在系统与外设不断推陈出新的情况下,BIOS中所提供的设定项目日趋复杂,加上BIOS的供应商很多,设定的选项也不尽相同,本章将详细介绍有关BIOS的知识。
本章主要内容:●认识BIOS和CMOS●BIOS的基本设置●升级BIOS9.1 什么是BIOSBIOS是英文“Basic Input Output System”的缩写,中文名称为“基本输入/输出系统”,是计算机中最基础也最重要的程序,其主要工作是在计算机启动时,对系统中连接的各硬件进行测试和初始化,并负责控制系统全部硬件的运行,同时又为高层软件提供基层调用。
9.1.1 认识BIOSBIOS之所以被称为“基本输入/输出系统”是因为它包含了计算机系统中最重要的输入/输出程序、系统设置信息、开机加电自检程序和系统启动自检程序,这些程序被固化在主板上的一个存储器(芯片)中,这块芯片是只读存储器,通常称为BIOS芯片,又称为ROM-BIOS芯片,如图9-1所示。
图9-1 BIOS芯片BIOS芯片是主板上唯一贴有标签的芯片,586机和以前的BIOS多为EPROM芯片,一次性写入,不能再修改,而586以后的ROM-BIOS多采用Flash Memory芯片,Flash Memory芯片借用了可擦写编程只读程序(EPROM),结构简单,又吸收了电擦写可编程只读存储器(EEPROM)电擦除的特点,不但具备随机存储器(RAM)的高速性,而且还兼有只读存储器(ROM)的非挥发性。
利用Flash Memory存储主板的BIOS程序,要直接通过跳线开关和系统配带的软件进行改写,因而给BIOS的升级带来了极大的方便。
计算机系统启动时,先由BIOS开始检查系统硬件,检查完成并进行了相关操作后,才真正启动操作系统程序。
最早的BIOS是一些用来开机时检验硬件设备和程序和基本的I/O启动代码,它为计算机系统提供了对硬件设备最低级、最直接的控制,计算机系统的初始操作都是通过BIOS芯片中的程序和命令来完成的。
《BIOS和DOS中断》课件
02
DOS中断
定义
DOS中断是操作系统提供的一组程序接口,用于实现系统调用和设备驱动 程序。
中断是一种特殊的程序控制转移,当某个事件发生时,计算机中断当前正 在执行的程序,转而执行相应的中断处理程序。
DOS中断是DOS操作系统提供的系统调用接口,通过中断号来标识不同的 中断服务程序。
DOS中断的种类
访问方式
BIOS通常通过特定的硬件访问方 式进行访问,例如通过特定的输 入输出端口或直接内存访问。而 DOS中断是通过DOS的API(应 用程序接口)进行访问的。
联系
依赖关系
BIOS需要在计算机启动时运行, 以初始化硬件并准备操作系统加 载。DOS中断需要在操作系统运 行时使用,以便执行各种DOS命 令和程序。因此,DOS中断依赖 于BIOS来确保硬件的正常运行。
DOS中断的应用场景
系统调用
DOS中断用于实现系统调用,允许输出控制
DOS中断用于控制输入输出设备,如键盘、鼠 标、显示器等。
文件操作
DOS中断提供了一些用于文件操作的函数,如打开、读取、写入文件等。
BIOS和DOS中断的共同应用场景
启动过程
BIOS中断和DOS中断都参与计算机的 启动过程,BIOS中断在启动时进行硬 件检测和初始化,而DOS中断则提供 了一些用于启动和系统设置的函数。
BIOS中断的作用
硬件初始化
BIOS中断可以用于初始化计算机硬件,如内存、硬盘、显卡等。
系统监控
BIOS中断可以用于监控计算机系统的状态,如CPU温度、风扇转速等。
输入输出控制
BIOS中断可以用于控制输入输出设备,如键盘、鼠标、显示器等。
系统安全
BIOS中断可以用于实现系统安全功能,如密码验证、启动项控制等。
BIOS和DOS详解
(2)初始化程序将建立BIOS所支持的中断向量,即将BIOS中的硬件地址登记在中断向量表中即可,因为他们是固话到ROM中的程序,一直存在内存中。
执行时与总线相关的操作如下所示:
1.CPU通过地址线将地址信息60h发出
2.CPU通过控制发出端口读指令,选中端口所在的芯片,并通知它,将从中读取数据
3.端口所在的芯片将60h端口中的数据通过数据线送入CPU
注意:在in和out指令时,只能使用ax,al或者是eax来存放从端口读入或者写入端口的数据。
1.将2送入端口70h
2.从端口71h独处2号单元的内容
(1)访问内存
mov ax,ds:[8] 假设执行前(ds)=0
执行时与总线相关的操作如下所示:
1.CPU通过地址线降低至信息8发出
2.CPU通过控制线发出内存读命令,选中存储芯片,并通知他,将要从中读取数据
3.存储器将8号单元的数据通过数据线送入CPU
(2)访问端口
in al,60h 从60h端口读入一个字节
(3)硬件系统检测和初始化完成后,调用int 19h进行操作系统的引导,从此将计算相应的中断向量。
对端口地址的读写不能用mov,push,pop等内存读写指令。端口的读写指令只有2条:in和out,分别用与从端口读取数据和前往端口写入数据。
我们看一下CPU执行内存访问指令和端口访问指令的时候,总线上的信息:
PC机中有一个CMOS RAM的芯片,一般称为CMOS,特征如下:
深圳大学 郑海虹:《微机原理与汇编语言》课程教学大纲
掌握:中断处理程序的设计,设置和获取中断向量的方法
理解:BIOS和DOS中断调用概念和调用方法
教学目的
掌握BIOS和DOS系统功能调用。
内容提要
9.1键盘I/O
9.2显示器I/O
教学要求
掌握:BIOS与DOS的键盘中断和显示中断
教学目的
掌握基本图形操作以及图形程序设计方法,利用PC机的发声系统编写产生各种声音和乐曲的技术。
教学目的
了解8086μcpu的内部结构,存储器的实模式。
内容提要
2.180x86微处理器
2.2基于微处理器的计算机系统构成
2.3中央处理机
2.4存储器
2.5外部设备
教学要求
理解:微处理器的基本结构和工作过程
掌握;8088/8086微处理器的内部特性和功能
掌握:8088/8086微处理器的存储器组织和段寄存器的应用
教学目的
逐步熟悉和掌握汇编语言程序的格式,可以编写简单的顺序程序。
内容提要
4.1汇编程序功能
4.2伪操作
4.3汇编语言程序格式
4.4汇编语言的上机过程
教学要求掌握:Βιβλιοθήκη 编语言的上机过程,汇编语言源程序的格式
掌握:各类伪指令
教学目的
掌握汇编语言源程序的循环、分支设计方法。
内容提要
5.1循环程序设计
5.2分支程序设计
注:写明各学期教学总时数及各周学时数。
(三)主要内容
本课程主要介绍80x86计算机CPU的结构,存储器的组织方式,8086/8088计算机的寻址方式,8086/8088指令系统,80x86、Pentium增强和扩充指令,基本的汇编语言程序设计方法和技能及高级汇编语言技术。
汇编语言 第九章 BIOS和DOS中断
串口通讯中的错误检测功能 在接口设计中,常常要考虑对错误的检测问题。当前多数可编程接口,一般能检 测下列两类错误。 一类是传输错误。因为接口和设备之间的连线常常受噪声干扰,从而引起传线错误, 所以一般传输信息时,接口采用奇/偶校验位对传输错误进行检测。传输时,如果用奇 校验,那么使信息中1的数目(包括校验位)为奇数。也就是说,所传输的数据中如果 1的个数为奇数则使校验位为0,所传输的数据中如果1的个数为偶数则使校验位 为1,这样,在传输一个数据时,1的总数目总是为奇数。同样的道理,如果用偶校验. 那么,信息中1的数目(包括校验位)为偶数。接口在传输过程中,对信息校验之后, 如果发现有错误,则对状态寄存器中的相应位进行设置。而状态杏存器的内容可以通过 程序进行读取和检测。
第九章第一章 基础知识 彩色图形适配器及其编程
另一类是复盖错误。我们知道,当计算机输入数据时,实际上是从接口的输入缓冲寄存
器中取数。如果计算机还没有取走数据,输入缓冲寄存器由于某种原因又被装上了新的 数据,那么,就全产生一个复盖错误。在输出时,也会有类似的情况。
返回参数中通讯口状态字节各位置1的含义如下图所示:
在现实生活和工作中,常会有将两台计算机实现资源共享和数据交换的 要求。微机双机直接通讯的方法有很多种,根据两台微机的距离远近,可分 为近程通讯和远程通讯,如果两台通讯的微机在同一间屋内或相距在几十米 到一两百米内,称为近程通讯;如果两台微机相距在几百米到几千米甚至更 远,则把它们之间的通讯称为远程通讯。 由于计算机通讯的广泛应用,串行接口已成为个人计算机必备的部件, IBM PC机内装有通讯适配器板,这使得PC机可以和其它配有串行通讯接 口的计算机或设备进行通讯。串行接口每次由CPU得到8位的数据,然后串 行地通过一条线路,每次发送一位将该数据发送出去。
DOS中断大全
D中OS断大全(INT 21H)1、字符功能调用类(Character-Oriented Function)01H、07H和08H —从标准输入设备输入字符02H — 字符输出03H — 辅助设备的输入04H — 辅助设备的输出05H — 打印输出06H — 控制台输入/输出09H — 显示字符串0AH — 键盘缓冲输入0BH — 检测输入状态0CH — 清输入缓冲区的输入功能(1)、功能01H、07H和08H功能描述:从标准输入设备(如:键盘)读入一个字符。
该中断在处理过程中将一直处于等待状态直到有字符可读为止。
该输入还可被重定向,如果这样做,则无法判断文件是否已到文件尾入口参数:AH=01H,过滤掉控制字符,并回显=07H,不过滤掉控制字符,不回显=08H,过滤掉控制字符,不回显出口参数:AL=输入字符的ASCII码(2)、功能02H功能描述:向标准输出设备(如:屏幕)输出一个字符。
该输出还可被重定向,如果这样做,则将无法判断磁盘是否满入口参数:AH=02HDL=待输出字符的ASCII码出口参数:无(3)、功能03H功能描述:从辅助设备读入一个字符,该辅助设备的缺省值为COM1入口参数:AH=03H出口参数:AL=读入字符的ASCII码(4)、功能04H功能描述:向辅助设备输出一个字符,该辅助设备的缺省值为COM1入口参数:AH=04HDL=待输出字符的ASCII码出口参数:无(5)、功能05H功能描述:向标准的输出设备输出一个字符。
该缺省的输出设备为LPT1端口的打印机,除非用MODE命令来改变入口参数:AH=05HDL=待输出字符的ASCII码出口参数:无(6)、功能06H功能描述:控制台(如:键盘、屏幕)输入/输出。
如果输入/输出操作被重定向,那么,将无法判断文件是否已到文件尾,或磁盘已满入口参数:AH=06H,DL=输入/输出功能选择出口参数:若DL=00H-FEH,则此功能为输出,DL为待输出字符的ASCII码;若DL=0FFH,则此功能为输入,此时:若ZF=1,则无字符可读,否则,AL=读入字符的ASCII码(7)、功能09H功能描述:输出一个字符串到标准输出设备上。
PC中断大全
BIOS和DOS中断大全文章整理: 文章来源: 网络去论坛建我的blogDOS中断:1、字符功能调用类(Character-Oriented Function)01H、07H和08H —从标准输入设备输入字符02H —字符输出03H —辅助设备的输入04H —辅助设备的输出05H —打印输出06H —控制台输入/输出09H —显示字符串0AH —键盘缓冲输入0BH —检测输入状态0CH —清输入缓冲区的输入功能(1)、功能01H、07H和08H功能描述:从标准输入设备(如:键盘)读入一个字符。
该中断在处理过程中将一直处于等待状态直到有字符可读为止。
该输入还可被重定向,如果这样做,则无法判断文件是否已到文件尾入口参数:AH=01H,过滤掉控制字符,并回显=07H,不过滤掉控制字符,不回显=08H,过滤掉控制字符,不回显出口参数:AL=输入字符的ASCII码(2)、功能02H功能描述:向标准输出设备(如:屏幕)输出一个字符。
该输出还可被重定向,如果这样做,则将无法判断磁盘是否满入口参数:AH=02HDL=待输出字符的ASCII码出口参数:无(3)、功能03H功能描述:从辅助设备读入一个字符,该辅助设备的缺省值为COM1入口参数:AH=03H出口参数:AL=读入字符的ASCII码(4)、功能04H功能描述:向辅助设备输出一个字符,该辅助设备的缺省值为COM1入口参数:AH=04HDL=待输出字符的ASCII码出口参数:无(5)、功能05H功能描述:向标准的输出设备输出一个字符。
该缺省的输出设备为LPT1端口的打印机,除非用MODE命令来改变入口参数:AH=05HDL=待输出字符的ASCII码出口参数:无(6)、功能06H功能描述:控制台(如:键盘、屏幕)输入/输出。
如果输入/输出操作被重定向,那么,将无法判断文件是否已到文件尾,或磁盘已满出口参数:若DL=00H-FEH,则此功能为输出,DL为待输出字符的ASCII码;若DL=0FFH,则此功能为输入,此时:若ZF=1,则无字符可读,否则,AL=读入字符的ASCII码(7)、功能09H功能描述:输出一个字符串到标准输出设备上。
单片机-BIOS、DOS系统功能调用
目录一、课程设计目的二、任务介绍及小组成员任务分配三、设计思想及主要流程图四、主要程序清单五、运行结果及分析六、收获、体会及建议一、课程设计目的1. 进一步熟悉BIOS、DOS系统功能调用,了解基本的显存读写技术;2. 了解响铃符以及利用PC扬声器发出不同频率声音的方法;2. 学会用汇编语言编写一个较完整的实用程序,培养自己的动手操作能力;3. 学习汇编语言程序设计的基本思路和方法,编程、调试、撰写报告等;二、任务介绍及小组成员任务分配三、设计思想及主要流程图1、时间的获取调用系统日期和时间,并将调用的日期和时间数转换成ASCII码存在系统内存区的字符串中。
将存在系统内存区的日期和时间用字符串存入显存区(显存的起始地址:B800:0000)并在合适的位置显示出来。
由于获取了的系统时间不会自动刷新,所以我们要设计成刷新的方式(如利用定时器中断,中断类型号为1CH)来不断获取系统的时间,这样就形成了会跳动的电子钟了。
2、屏幕特定位置显示字符对应屏幕上的每个字符位置,显存空间都有相应的存储单元与之对应。
对应显示在屏幕上的每个字符,在存储器中由连续的两个字节表示,一个字节保存ASCII码,另一个字节保存字符的属性。
属性字节对单色显示和彩色显示都是有效的。
我们可以使用BOIS显示中断10H的各项功能来进行显示字符的编程。
3、主要流程图四、主要程序清单data segmentcount dw 1mess1 db '------------------',0dh,0ah,'$'info db 'Current time is :',0dh,0ah,'$' ;提示语datestr db '00-00-0000',0dh,0ah,'$' ;日期显示信息:month-day-yeartimestr db '00:00:00',0dh,0ah,'$' ;时间提示信息:hour:minute:second mess2 db '------------------',0dh,0ah,'$'mess3 db 'Please input"Q",to quit!',0dh,0ah,'$';提示语data endscode segmentassume cs:code,ds:datamainproc farstart:mov ax,datamov ds,axmov ah,6 ;ah=06(滚动)al=00(全屏空白)mov bh,60h ;设置背景颜色和前景颜色mov cx,0mov dx,1950h ;右下角行号,列号int 10hmov dh,5mov dl,24mov bh,0mov ah,2int 10hmov dx,offset mess3mov ah,09hint 21hmov dh,11mov dl,24mov bh,0mov ah,2int 10hmov dx,offset mess2mov ah,09hint 21hmov dh,7mov dl,24mov bh,0mov ah,2int 10hmov dx,offset mess1mov ah,09hint 21h;--------------------mov dh,8 ;设置到7行30列mov bh,0mov ah,2int 10hmov dx,offset infomov ah,09hint 21h;保存原中断向量mov al,1chmov ah,35hint 21hpush es ;获取1ch中断向量到es:bxpush bxpush ds ;保存;设置新的中断向量mov dx,offset intpromov ax,seg intpromov ds,axmov al,1chmov ah,25hint 21h ;设置中断向量ds:dxpop dsin al,21h ;读中断屏蔽寄存器and al,11111110b ;开定时器中断out 21h,al ;写中断屏蔽寄存器sti ;开中断;等待中断s:mov ah,0 ;调用键盘I/O中断功能号0,获取键值到AL int 16hcmp ah,10Hjz quit ;是Q键,退出程序jmp s;恢复1ch原中断向量quit: pop dxmov al,1chmov ah,25hint 21hmov ax,4c00hint 21hmainendp;------------------------------------------------------------------- ;中断处理程序intpro;------------------------------------------------------------------- intpro proc near;保护现场push dspush axpush cxpush dxpush bppush esmov ax,datamov ds,axstidec countjnz exitcall dispdate ;调用函数显示日期和时间call disptimeMOV count,18;声音mov dl,07mov ah,2int 21hexit:clipop bppop espop dxpop cxpop axpop dsiretintpro endp;---------------------------------------------------------------------;显示日期子程序dispdate;---------------------------------------------------------------------dispdate proc nearpush axpush cxpush dxpush si;获取系统日期:入口:ah<-2ah,出口:cx<-year,dh<-month,dl<-day mov ah,2ahint 21hmov ax,cx ;年份转4位ascii码mov bx,10lea si,datestr+9 ;指向字符串年份最后一位mov cx,4 ;年份4位,循环4次push dx ;保存月日y: xor dx,dx ;dx清零,保存余数即个位div bx ;商存ax,余数存dxadd dl,30h ;转ascii码,存datestr字符串末尾mov [si],dldec siloop ypop dx ;还原dx,处理日mov al,dlxor ah,ahdiv bl ;求日的个位,存ah,十位存aladd ax,3030h ;分别转ascii码sub si,2mov [si],ax ;存日mov al,dh ;处理月xor ah,ahdiv bl ;求月的个位,存ah,十位存aladd ax,3030h ;分别转ascii码sub si,3mov [si],ax ;存日;显示日期字符串MOV AH,2MOV BH,0MOV DH,9MOV DL,25INT 10Hmov dx,offset datestrmov ah,09hint 21hpop sipop dxpop cxpop axretdispdate endp;-------------------------------------------------------------------- ;显示时间子程序disptime;--------------------------------------------------------------------- disptime proc nearpush axpush cxpush dxpush si;获取系统时间:入口:ah<-2ch,出口:ch<-hour,cl<-minute,dh<-second mov ah,2chint 21hmov bl,10lea si,timestrmov al,ch ;处理小时xor ah,ahdiv bladd ax,3030hmov [si],axadd si,3mov al,cl ;处理分xor ah,ahdiv bladd ax,3030hmov [si],axadd si,3mov al,dh ;处理秒xor ah,ahdiv bladd ax,3030hmov [si],ax;显示时间字符串MOV AH,2MOV BH,0MOV DH,10MOV DL,25INT 10Hmov dx,offset timestrmov ah,09hint 21hpop sipop dxpop cxpop axretdisptime endpcode endsEND START五、运行结果及分析分析:因为设置了光标位置,所以时间显示在屏幕中间。
DOS和BIOS功能调用
• ① 磁盘的读/写控制。
• ② 内存管理、文件操作和目录管理。 • ③ 基本输入/输出(对键盘、打印机和显示 器等)控制,另外还有日期、时间管理等。
• 当类型码n=05H~1FH时,调用BIOS的中 断处理程序;类型码n=20H~3FH时,调 用DOS的中断处理程序。按DOS中断规定, 用指令写入口参数,然后执行INT n指令, 执行完毕后,依据结果进行分析及处理。
• 格式: MOV AH, 08H INT 21H • 功能:同1号功能调用,但字符不在屏幕上 显示。
3.屏幕显示一个字符(2号功能调 用)
• 格式: MOV DL, '字符' MOV AH, 02H INT 21H • 功能:将置入DL寄存器中的字符在屏幕上 显示输出。
4.打印输出(5号功能调用)
• LOP: ADD AL, BL MOV AH, 0BH INT 21H ; 键扫描: 无输入,AL=00H, 有 输入,AL=FFH ADD AL, 01H JNZ LOP ; 有输入则退出循环 RET
10.设置系统日期(2BH号功能调 用)
• 格式: MOV CX, 年号 MOV DH, 月号 MOV DL, 日期 MOV AH, 2BH INT 21H • 功能:设置有效的年、月、日。当AL=0 时,设置成功;当AL=0FFH时,设置失败。
• ② 当(DL)≠0FFH时,表示将DL中内容送屏幕显示输出。
9.检查键盘的工作状态(0BH号功 能调用)
• 格式: MOV AH, 0BH INT 21H • 功能:检查是否有键盘输入,若有键按下, 则使AL=0FFH,若无键按下,则AL=00H。 对于利用键盘操作退出循环或使程序结束 之类的操作来说,这种调用是很方便实用 的。
DOS下BIOS中断INT13H、IO端口直接编程读取IDE、SATA硬盘的参数和TC语言程序
{
j++;
if (j>=255) { printf("error1! NOT RDY & NOT BSY. ERR REG=%02X", inportb(BASEADDR1F0+1)); exit(0);}
p=inportb(BASEADDR1F0+7);
printf("%02X ",p);
p&=0xc0;
这两点说明看似简单,但是是经过研究很久才知道的!!!
(3)实测 U 盘软驱启动,98 版 DOS 下 DEBUG,INT13H,AH=08H ,DL=81H 硬盘: 得到 AX=0,BX=0,CH=FE(1022,即 0~1022+1 柱号),CL=FF(63,即 1~63 扇号),DH=FE(254,即 0~254 头号),DL=2(即 2 个硬
(3)分析 “INT13H 扩展”返回的是 16 头,而“INT13 传统”返回的是 255 头!! “INT13H 扩展”返回的直接就是硬盘的 ATA 参数,即与直接访问硬盘端口得到的参数是一样的! 而“INT13 传统”返回的数值是 BIOS 加工转换后的,与分区表中的格式相一致。 ATA 参数一般是 16 头最多了,而分区表中参数会是 255 头。也就是说,硬盘的 ATA 参数格式,与分区表参数格式是不一样的,所以造 成了早期硬盘的一些容量限制问题。
四、 DISKMAN 用 USB 软驱启动到 DOS,运行 DISKMAN(打开时提示分区不对,忽略之),显示是“第 2 硬盘”。
DISKMAN 得到的参数说明下: DISKMAN 的 CMOS 参数 CHS,12289 柱面,255 磁头,63 扇区,是按照“传统 INT 13H” AH=08 来得到的。 其中,柱面数是反算的,去掉小数,转成 16 进制,因变量只有 2 字节,只能保存低 2 字节,即 1250263728 总扇÷255 头÷63 扇=77825.32 柱→0x13001,只能保存 2 字节,故是 0x3001→12289 柱。 “总扇区数”1250263728,是按“INT 13H 扩展”得到的。
BIOS和DOS中断大全
BIOS和DOS中断大全一、DOS中断 (7)1、字符功能调用类(Character-Oriented Function) (7)(1) 功能01H、07H和08H (7)(2) 功能02H (7)(3) 功能03H (7)(4) 功能04H (7)(5) 功能05H (7)(6) 功能06H (8)(7) 功能09H (8)(8) 功能0AH (8)(9) 功能0BH (8)2、目录控制功能(Directory-Control Function) (8)(1)功能39H (9)(2)功能3AH (9)(3)功能3BH (9)(4)功能47H (9)3、磁盘管理功能(Disk-Management Function) (9)(1)功能0DH (9)(2)功能0EH (9)(3)功能19H (9)(4)功能1BH和1CH (9)(5)功能2EH (10)(6)功能36H (10)(7)功能54H (10)4、文件操作功能(File Operation Function) (10)(1)功能3CH (11)(2)功能3DH (11)(3)功能3EH (11)(4)功能41H (11)(5)功能43H (11)(6)功能45H (12)(7)功能46H (12)(8)功能4EH (12)(9)功能4FH (12)(10)功能56H (12)(11)功能57H (12)(12)功能5AH (13)(13)功能5BH (13)(14)功能67H (13)(15)功能6CH (13)5、文件操作功能(FCB)(File Operation Function) (14)(1)功能0FH (14)(2)功能10H (14)(3)功能11H和12H (14)(4)功能13H (14)(5)功能16H (15)(6)功能17H (15)(7)功能23H (15)(8)功能29H (15)6、记录操作功能(Record Function) (15)(2)功能2FH (16)(3)功能3FH (16)(4)功能40H (16)(5)功能42H (16)(6)功能5CH (16)(7)功能68H (16)7、记录操作功能(FCB)(Record Function) (17)(1)功能14H (17)(2)功能15H (17)(3)功能21H (17)(4)功能22H (17)(5)功能24H (17)(6)功能27H (17)(7)功能28H (18)8、内存分配功能(Memory-Allocation Function) (18)(1)功能48H (18)(2)功能49H (18)(3)功能4AH (18)(4)功能58H (18)9、系统功能(System Function) (18)(1)功能25H (19)(2)功能30H (19)(3)功能33H (19)(4)功能34H (19)(5)功能35H (19)(6)功能38H (20)(7)功能44H (20)(8)功能50H (20)(9)功能51H (21)(10)功能59H (21)(11)功能5EH (21)(12)功能5FH (22)(13)功能63H (23)(14)功能65H (23)(15)功能66H (23)(16)功能5D0AH (23)10、进程控制功能(Process-Control Function) (24)(1)功能00H (24)(2)功能26H (24)(3)功能31H (24)(4)功能4BH (24)(5)功能4CH (24)(6)功能4DH (24)(7)功能62H (25)11、时间和日期功能(Time and Date Function) (25)(1)功能2AH (25)(2)功能2BH (25)(3)功能2CH (25)(4)功能2DH (25)12、鼠标功能中断INT 33H (25)(1)功能00H (26)(2)功能01H (27)(3)功能02H (27)(4)功能03H (27)(5)功能04H (27)(6)功能05H (27)(7)功能06H (27)(8)功能07H (27)(9)功能08H (27)(10)功能09H (28)(11)功能0AH (28)(12)功能0BH (28)(13)功能0CH (28)(14)功能0DH (29)(15)功能0EH (29)(16)功能0FH (29)(17)功能10H (29)(18)功能13H (29)(19)功能14H (29)(20)功能15H (29)(21)功能16H (30)(22)功能17H (30)(23)功能18H (30)(24)功能19H (30)(25)功能1AH (30)(26)功能1BH (30)(27)功能1CH (30)(28)功能1DH (30)(29)功能1EH (31)(30)功能1FH (31)(32)功能21H (31)(33)功能22H (31)(34)功能23H (31)(35)功能24H (31)(36)功能25H (31)(37)功能26H (32)13、其它DOS中断 (32)(1)中断INT 20H (32)(2)中断INT 22H (32)(3)中断INT 23H (32)(4)中断INT 24H (32)(5)中断INT 25H (32)(6)INT 26H (33)(7)INT 27H (33)(8)INT 28H (33)(9)INT 2FH (33)二、BIOS中断 (33)1、显示服务(Video Service——INT 10H) (33)(1)功能00H (34)(2)功能01H (34)(3)功能02H (34)(4)功能03H (34)(5)功能04H (35)(6)功能05H (35)(7)功能06H和07H (35)(8)功能08H (36)(9)功能09H (36)(10)功能0AH (36)(11)功能0BH (36)(12)功能0CH (36)(13)功能0DH (36)(14)功能0EH (36)(15)功能0FH (37)(16)功能10H (37)(17)功能11H (37)(18)功能12H (37)(19)功能13H (38)(20)功能1AH (38)(21)功能1BH (38)(22)功能1CH (38)2、直接磁盘服务(Direct Disk Service——INT 13H) (38)(1)功能00H (38)(2)功能01H (38)(4)功能03H (39)(5)功能04H (39)(6)功能05H (40)(7)功能06H (40)(8)功能07H (40)(9)功能08H (40)(10)功能09H (41)(11)功能0AH (41)(12)功能0BH (41)(13)功能0CH (41)(14)功能0DH (41)(15)功能0EH (41)(16)功能0FH (42)(17)功能10H (42)(18)功能11H (42)(19)功能12H (42)(20)功能13H (42)(21)功能14H (42)(22)功能15H (42)(23)功能16H (42)(24)功能17H (43)(25)功能18H (43)(26)功能19H (43)(27)功能1AH (43)3、串行口服务(Serial Port Service——INT 14H) (43)(1)功能00H (43)(2)功能01H (44)(3)功能02H (44)(4)功能03H (44)(5)功能04H (44)4、杂项系统服务(Miscellaneous System Service——INT 15H) (44)(1)功能00H (45)(2)功能01H (45)(3)功能02H (45)(4)功能03H (45)(5)功能0FH (45)(6)功能21H (45)(7)功能4FH (45)(8)功能80H (45)(9)功能81H (45)(10)功能82H (46)(11)功能83H (46)(12)功能84H (46)(14)功能86H (46)(15)功能87H (46)(16)功能88H (47)(17)功能89H (47)(18)功能90H (47)(19)功能91H (47)(20)功能0C0H (47)(21)功能C1H (48)(22)功能C2H (48)(23)功能C3H (48)(24)功能C4H (48)5、键盘服务(Keyboard Service——INT 16H) (48)(1)功能00H和10H (48)(2)功能01H和11H (48)(3)功能02H和12H (48)(4)功能03H (49)(5)功能04H (49)(6)功能05H (49)6、并行口服务(Parallel Port Service——INT 17H) (49)(1)功能00H (49)(2)功能01H (50)(3)功能02H (50)7、时钟服务(Clock Service——INT 1AH) (50)(1)功能00H (50)(2)功能01H (50)(3)功能02H (50)(4)功能03H (50)(5)功能04H (51)(6)功能05H (51)(7)功能06H (51)(8)功能07H (51)(9)功能0AH (51)(10)功能0BH (51)(11)功能80H (51)8、直接系统服务(Direct System Service) (52)一、DOS中断1、字符功能调用类(Character-Oriented Function)01H、07H和08H —从标准输入设备输入字符02H —字符输出03H —辅助设备的输入04H —辅助设备的输出05H —打印输出06H —控制台输入/输出09H —显示字符串0AH —键盘缓冲输入0BH —检测输入状态0CH —清输入缓冲区的输入功能(1) 功能01H、07H和08H功能描述:从标准输入设备(如:键盘)读入一个字符。
第9章 BIOS设置与硬盘初始化
◦ 使设定菜单包括所有外围设备的设定。如声卡、Modem 、USB键盘是否打开...
Power Management Setup(电源管理设定)
◦ 设定CPU、硬盘、显示器等设备的节电功能运行方式。
PNP/PCI Configurations(即插即用/PCI参数设 定)
2013.9
BIOS(Basic Input Output System的缩略语),
直译过来后中文名称就是“基本输入输出系统”。 其实,它是一组固化到计算机内主板上一个ROM芯
片上的程序,它保存着计算机最重要的基本输入输 出的程序、系统设置信息、开机后自检程序和系统 自启动程序。
其主要功能是为计算机提供最底层的、最直接的硬 件设置和控制。
◦ 1.免费获得新功能
升级BIOS最直接的好处就是不用花钱就能获得许多新功能。
◦ 2.修正已知BUG
BIOS既然也是程序,就必然存在着BUG。
需要特别注意的是:BIOS升级是具有一定的危险性,误刷或 刷新不成功,会造成主板不能工作因此一般用户不建议进行 BIOS升级。
由于CMOS与BIOS都跟电脑系统设置密切相关,所以才有 CMOS设置和BIOS设置的说法。也正因此,初学者常将二 者混淆。CMOS 是电脑主机板上一块特殊的RAM芯片, 是系统参数存放的地方,而BIOS中系统设置程序是完成参 数设置的手段。因此,准确的说法应是通过BIOS设置程序 对CMOS参数进行设置。而平常所说的CMOS设置和BIOS
程序服务处理程序主要是为应用程序和操作系统服务。
3. 硬件中断处理
硬件中断处理则分别处理PC机硬件的需求,BIOS的服务功能 是通过调用中断服务程序来实现的。其中程序服务处理和硬 件中断处理两部分功能虽然是两个独立的内容,但在使用上 密切相关。
单片机作业习题
天津工业大学微机原理习题集第1章练习与思考题1.微型计算机硬件系统采用冯-诺依曼结构的基本内容是什么?2.CPU和MPU在概念上有什么区别?3.微机主机的组成,都包括哪些部件?4.数据总线(DB)和地址总线(AB)分别决定计算机的哪些性能?5.地址译码电路和接口的作用是什么?什么叫端口?端口与接口的概念有什么区别?6.设计算机字长为8位,求73和-65的定点表示形式;求48.37和-0.385的浮点表示形式(设阶码,尾数各占4位)。
7.在浮点表示形式中,阶码与尾数的关系是什么?8.求8421BCD码的运算①45+32 ②98+74 ③70-58 ④62-379.什么是补码运算?如何求一个数的补码?为什么计算机中的数一律都是补码形式?10.求下列各数的补码运算:①40+17 ②85+63 ③72-50 ④28-60若将上述运算看成是有符号数的运算,其真值各是多少?若将上述运算看成是无符号数的运算,其真值各是多少?它们运算后,各对标志位OV和CY有什么影响?11.如何深刻理解“计算机不识别数的属性这个重要概念”?这个概念对于指导我们学习计算机原理有哪些意义?第2章练习与思考题1.半导体存储器按功能分,可分为几种?各有什么特点?2.根据图2.2,简述执行读/写指令时,各控制信号的工作过程。
3.简述存储器芯片的地址引脚数量与存储器容量的关系。
4.什么是位扩展、字扩展、字位全扩展?各举例说明。
5.什么是动态随机存储器?其特点是什么?为什么需要刷新?对刷新周期有什么要求?6.E2PROM的特点是什么?分为几类?READY BUSY引脚的功能是什么?7.98C64A的/8.简述98C64的编程时序。
9.什么是“闪存”,用于那些场合?10.28F040有几种工作方式?每种工作方式的操作如何实现?第3章练习与思考题1.8086CPU分为EU和BIU两个部分,它们各负责什么工作?它们之间有什么联系?2.8086CPU有哪些用户可以访问的寄存器?其主要作用是什么?3.对8086存储器系统操作,为什么分为不同类型的段,并按段操作?有什么意义?都分为哪些段?如何定义一个段?4.什么是逻辑地址?什么是物理地址?5.若逻辑地址为:FFFF:0001H、00A2:37FH和B800:173FH,请求出它们的物理地址各是多少?6.若8086中,CS:IP=A000H:1000H,请画出表示地址总线引脚A19~A0的输出信号状态。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第9章BIOS和DOS中断
【课前思考】
(1) BIOS和DOS中断调用的基本用途是什么?它们之间有什么关系?
(2) BIOS和DOS中断调用的方法是什么?使用BIOS和DOS中断调用编程的好处是什么?
(3)键盘、显示器、打印机、串行通信的DOS、BIOS基本功能有哪些?在程序中如何调用它们进行输入输出?
【学习目标】
熟悉并正确使用键盘、显示器、打印机和串行通信的BIOS、DOS功能调用。
【学习指南】
在了解键盘、显示器、打印机和串行通信的基本工作原理的基础上,熟知这几种设备的DOS、BIOS调用的基本功能、调用参数、返回参数以及数据定义和缓冲区定义的格式。
【难重点】
键盘、显示器、打印机、串行通信的DOS、BIOS基本功能调用。
【知识点】
DOS中断调用、BIOS中断调用。
9.1BIOS和DOS中断
BIOS是系统提供的基本输入输出例行程序,利用BIOS功能编写的程序简洁,可读性好,而且易于移植。
DOS是PC机上最重要的操作系统,它和BIOS一样包括有近百个设备管理、目录管理和文件管理程序,是一个功能齐全、使用方便的中断例行程序的集合。
使用DOS操作比使用相应功能的BIOS操作更简易,而且对硬件的依赖性更少些。
BIOS功能与DOS功能都是通过软件中断调用的。
在中断调用前需要把功能号装入AH寄存器,把子功能号装入AL寄存器,除此而外,通常还需在CPU寄存器中提供专门的调用参数。
一般地说,调用DOS或BIOS功能时,有以下几个基本步骤:
1、将调用参数装入指定的寄存器中;
2、如需功能号,把它装入AH;
3、如需子功能号,把它装入AL;
4、按中断号调用DOS或BIOS中断;
5、检查返回参数是否正确。
BIOS中断和DOS中断的关系如图9.1所示。
图9.1 DOS模块和ROM BIOS的关系
在存储器系统中,从地址0FE000H开始的8K ROM(只读存储器)中装有BIOS(Basic Iuput /output System)例行程序。
驻留在ROM中的BIOS给PC系列的不同微处理器提供了兼容的系统加电自检,引导装入,主要I/O设备的处理程序以及接口控制等功能模块来处理所有的系统中断。
使用BIOS功能调用,给程序员编程带来很大方便,程序员不必了解硬件操作的具体细节,直接用指令设置参数,然后中断调用BIOS中的子功能,所以利用BIOS功能编写的程序简洁,可读性好,而且易于移植。
DOS(Disk Operating System)是PC机上最重要的操作系统,它是由软盘或硬盘提供的。
它的两个DOS模块和使BIOS用起来更方便,因为DOS模块提供了更多更必要的测试,使DOS操作比使用相应功能的BIOS操作更简易,而且DOS对硬件的依赖性更少些。
是一个输入/输出设备处理程序,它提供了DOS到ROM BIOS的低级接口,它完成将数据从外设读入内存,或把数据从内存写到外设去的工作。
包括一个文件管理程序和一些处理程序,在DOS下运行的程序可以调用这些处理程序。
为了完成DOS功能调用,把信息传送给,形成一个或多个BIOS调用。
在一些情况下,既能选择DOS中断也能选择BIOS中断来执行同样的功能。
例如,打印机输出一个字符的功能,可用DOS中断21H的功能5,也可用BIOS中断17H的功能0。
因为BIOS比DOS更靠近硬件,因此建议尽可能地使用DOS功能,但在少数情况下必须使用BIOS 功能,例如,BIOS中断17H的功能2为读打印机状态,它就没有等效的DOS功能。
DOS中断能处理大多数的I/O,但有一些功能还没有提供,如声音控制等,这就要考虑用I/O指令在端口级上编程,或使用高级语言编程。
表9.1和表9.2(见课本)分别列出了BIOS和DOS调用的中断类型。