DOS系统功能调用及BIOS调用实验报告

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告

学院名称:

实验名称:DOS系统功能调用及BIOS调用班级:

学生姓名:

学生学号:

DOS系统功能调用及BIOS调用实验

【实验目的】

(1)熟悉PC机中断系统的有关概念,了解中断向量表的概念。

(2)掌握常用DOS系统功能调用的方法。

(3)掌握BIOS中常用设备(如显示器、打印机等)驱动程序的调用方法。

【实验原理】

微型计算机系统为汇编用户提供两个程序接口,一个是DOS系统功能调用,另一个是ROM中的BIOS(basic input/output system)。系统功能调用和BIOS由一系列的中断服务程序构成,它们使得程序设计人员不必详细了解硬件的内部结构和工作原理,直接调用这些中断服务程序就可以使用系统的硬件,尤其是I/O设备的使用和管理。

IBM PC中断系统为了识别和响应每一种中断,将它们赋以00~FFH中断类型号,故中断系统能出理256种中断。每种类型的中断都对应一个中断服务程序,每个中断服务程序的入口地址包括该程序所在段的段地址和段内偏移地址,需4个存储单元来存放。将256种中断对应的中断服务程序排成一张表,放在内存底端00000H~003FFH单元中,系统在响应中断时根据得到的中断类型号到该表对应的四个存储单元中即可找到要执行的中断服务程序的入口地址。

从功能上分。中断向量表中的中断类型可分为如下三类:

(1)磁盘操作系统DOS提供的中断服务程序,中断类型号为20H~2FH。

(2)系统主板BIOS芯片提供的BIOS中断服务程序,包括系统内部中断,中断类型

号为00H~07H;系统8级外部中断,中断类型号为08H~0FH;设备驱动程序,中断类型号为10H~1FH等。

(3)用户定义的中断,中断类型号为60H~7FH,F1H~FFH。用户可以根据实际需要

编写自己的中断服务程序,并将该服务程序的入口地址写入中断向量表中相应的存储单元,以便对它们进行调用。

【实验内容】

制作电子时钟,在屏幕上实时系统当前时间。

要求:

(1)屏幕显示方式设置为80*25黑白文本方式。使用BIOS中断调用,中断类型

号为10H,功能号为00H,(AL)=2。

(2)在开始显示实时时钟和结束之前清屏。使用BIOS中断调用,中断类型号为

10H,功能号为06H,(AL)=0。

(3)按任意键退出程序的执行。使用DOS系统功能调用,中断类型号为21H,功

能号为0BH。当返回值(AL)=FFH时,有按键按下;当(AL)=00H时,无按键按下。

部分程序简介:

(1)屏幕显示方式设置宏指令SETCRT

(2)清屏宏指令CLEAR

(3)设置光标位置宏指令CURSOR

(4)按任意键退出程序指令。

(5)显示提示信息的宏指令STRDSPY的编写

【实验程序】

DATA SEGMENT

BUF1 DB "Current time is:$"

HOUR DB 20H,20H,':','$'

MINUTE DB 20H,20H,':','$'

SECOND DB 20H,20H,':','$'

MSECOND DB 20H,20H,'$'

INFOR DB " Press any key to exit...$" DATA ENDS

STACK SEGMENT STACK

SNUM DW 20H DUP(?)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX, DATA

MOV DS, AX

MOV AX, STACK

MOV SS, AX

MOV AX, LENGTH SNUM MOV SP, AX

MOV DX, OFFSET INFOR MOV AH, 09H

INT 21H

SETCRT MACRO

MOV AH,0

MOV AL,2

INT 10H

ENDM

CLEAR MACRO

MOV AH,06H

MOV AL,0

INT 10H

ENDM

CURSOR MACRO ROW,CLM

MOV AH,02H

MOV BH,00H

MOV DH,ROW

MOV DL,CLM

INT 10H

ENDM

STRDSPY MACRO STRING

PUSH DX

PUSH AX

MOV DX,OFFSET STRING MOV AH,09H

INT 21H

POP AX

POP DX

ENDM

TIMER1 MACRO REG, ADR

PUSH AX

PUSH BX

LEA SI, ADR

MOV AL, REG

MOV AH, 00

MOV BL, 10

DIV BL

ADD AL, 30H

MOV [SI], AL

ADD AH, 30H

INC SI

MOV [SI], AH

POP BX

POP AX

ENDM

SETCRT

CLEAR

CURSOR 3, 22

STRDSPY BUF1

CURSOR 7,23

STRDSPY INFOR LOOPR: MOV AH, 2CH

INT 21H

PUSH CX

MOV CH,DL

TIMER1 CH,MSECOND MOV CH, DH

TIMER1 CH, SECOND POP CX

TIMER1 CL,MINUTE

TIMER1 CH,HOUR

CURSOR 5,24

STRDSPY HOUR

STRDSPY MINUTE

STRDSPY SECOND

STRDSPY MSECOND

MOV AH,0BH

INT 21H

CMP AL, 00H

JNZ EXITT

相关文档
最新文档