汇编--BIOS与DOS中断.doc
文本预览下载声明
一、实验目的和内容
(1)掌握BIOS和DOS中断的基本原理;
(2)了解DOS的文件管理功能;
(3)编程实现基本的文件管理功能;
(4)观察并记录运行结果。
二、实验原理及基本技术路线图(方框原理图)
DOS的文件管理功能可以实现建立、打开、读写、关闭文件等操作。DOS2.0以上版本在DOS1.0版FCB(文件控制块)功能的基础上增加了句柄式(HANDLE)文件管理功能。句柄式文件管理功能支持树型结构,即允许指定文件路径。当系统允许打开的文件数量足够多,则一个程序装入内存后,系统把属于它的20个文件句柄中的5个分配给DOS标准字符设备,这也就意味着可以使用句柄访问这些设备,就像访问其它磁盘文件一样。
一个过程每调用一次打开或创建文件功能,就将该过程自己的20个句柄中的一个分配出去,直到所有句柄用完或是系统打开文件表满为止。采用句柄式文件管理功能打开或建立一个文件后,若操作成功,DOS回送一个句柄在AX中,其后对该文件的读写、关闭等操作,均通过分配该句柄实现,而不再使用文件说明,因此应保存好返回的句柄,一般把它存放在一个字型内存变量中。句柄式文件管理功能的共同特点:若调用成功,则使CF=0,否则使CF=1,AX=错误码。
利用文件句柄存取文件的流程图:
移动文件指针到所需位置(若顺序存取则由操作系统自动调整)置CX为要读或写的字节数
移动文件指针到所需位置
(若顺序存取则由操作系统自动调整)
置CX为要读或写的字节数
进行读或写操作
打开或创建文件
读或写结束?
关闭文件
(1)操作系统平台:Windows 7
(2)汇编环境:Microsoft MASM 5.0
(3)文本编辑器:记事本
四、实验方法、步骤
(1)在D:\assembly下新建文件管理功能宏指令库filefuc.mac,输入宏指令代码;
(2)在D:\assembly下新建filec.asm;输入建立文件的汇编程序源代码,实现功能为:在D:\assembly下创建一个数据文件FDATA.DAT,为以后的读写使用。若创建成功,则显示“CREATE FILE OK!”,然后关闭该文件,返回DOS。在创建及关闭FDATA.DAT文件时若遇到错误,则显示相关的错误提示信息;
(3)在D:\assembly下新建filew.asm;输入写文件的汇编程序源代码,实现功能为:首先打开D:\assembly\FDATA.DAT文件(由程序filec.asm创建);接着在该文件中写入信息“WRITE DEMO!”;然后关闭它;最后返回DOS。若写入成功,则显示“WRITE FILE OK!”。在对FDATA.DAT文件操作时若遇到错误,则显示相关的错误提示信息;
(4)在D:\assembly下新建filer.asm;输入读文件的汇编程序源代码,实现功能为:首先打开D:\assembly\FDATA.DAT文件(由程序filec.asm创建);接着在该文件中读出信息(该信息应是由程序filew.asm写入的WRITE DEMO!);然后关闭FDATA.DAT文件;最后返回DOS。若读取成功,则显示“READ FILE OK!”。在对FDATA.DAT文件操作时若遇到错误,则显示相关的错误提示信息。为了验证其读取的正确性,在读文件的前后均调用了PUTS宏指令显示BUFFER中的信息,若程序运行正确,两次显示的信息应不相同;
(5)汇编以上三个程序(filec.asm、filew.asm、filer.asm)源代码,检查错误,错误可能是由宏指令库里的代码错误导致,应注意汇编程序的提示信息,并改正之,重新汇编;
(6)调试运行以上三个程序,并记录实验结果;
(7)完成实验报告。
五、实验过程原始记录(数据、图表、计算等)
1. 新建文件管理功能宏指令库filefuc.mac:
filefuc.mac文件源码:
;-----------------------------------
;功能:保存寄存器DX、CX、BX、AX
;-----------------------------------
PUSHREG MACRO
PUSH DX
PUSH CX
PUSH BX
PUSH AX
ENDM
;-----------------------------------
;功能:恢复寄存器AX、BX、CX、DX
;-----------------------------------
POPREG MACRO
POP AX
POP BX
POP CX
POP DX
ENDM
;-----------------------------------
;功能:清屏
;-----------------------------------
CLRSC
显示全部