汇编实验6BIOS和DOS中断实验报告Word文档格式.docx

上传人:b****3 文档编号:17806497 上传时间:2022-12-10 格式:DOCX 页数:23 大小:406.51KB
下载 相关 举报
汇编实验6BIOS和DOS中断实验报告Word文档格式.docx_第1页
第1页 / 共23页
汇编实验6BIOS和DOS中断实验报告Word文档格式.docx_第2页
第2页 / 共23页
汇编实验6BIOS和DOS中断实验报告Word文档格式.docx_第3页
第3页 / 共23页
汇编实验6BIOS和DOS中断实验报告Word文档格式.docx_第4页
第4页 / 共23页
汇编实验6BIOS和DOS中断实验报告Word文档格式.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

汇编实验6BIOS和DOS中断实验报告Word文档格式.docx

《汇编实验6BIOS和DOS中断实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《汇编实验6BIOS和DOS中断实验报告Word文档格式.docx(23页珍藏版)》请在冰豆网上搜索。

汇编实验6BIOS和DOS中断实验报告Word文档格式.docx

句柄式文件管理功能支持树型结构,即允许指定文件路径。

当系统允许打开的文件数量足够多,则一个程序装入内存后,系统把属于它的20个文件句柄中的5个分配给DOS标准字符设备,这也就意味着可以使用句柄访问这些设备,就像访问其它磁盘文件一样。

一个过程每调用一次打开或创建文件功能,就将该过程自己的20个句柄中的一个分配出去,直到所有句柄用完或是系统打开文件表满为止。

采用句柄式文件管理功能打开或建立一个文件后,若操作成功,DOS回送一个句柄在AX中,其后对该文件的读写、关闭等操作,均通过分配该句柄实现,而不再使用文件说明,因此应保存好返回的句柄,一般把它存放在一个字型内存变量中。

句柄式文件管理功能的共同特点:

若调用成功,则使CF=0,否则使CF=1,AX=错误码。

利用文件句柄存取文件的流程图:

三、所用仪器、材料(设备名称、型号、规格等)

(1)操作系统平台:

Windows7。

(2)汇编环境:

MicrosoftMASM5.0。

(3)文本编辑器:

记事本。

四、实验方法、步骤

(1)在D:

\assembly下新建文件管理功能宏指令库filefuc.mac,输入宏指令代码;

(2)在D:

\assembly下新建filec.asm;

输入建立文件的汇编程序源代码,实现功能为:

在D:

\assembly下创建一个数据文件FDATA.DAT,为以后的读写使用。

若创建成功,则显示“CREATEFILEOK!

”,然后关闭该文件,返回DOS。

在创建及关闭FDATA.DAT文件时若遇到错误,则显示相关的错误提示信息;

(3)在D:

\assembly下新建filew.asm;

输入写文件的汇编程序源代码,实现功能为:

首先打开D:

\assembly\FDATA.DAT文件(由程序filec.asm创建);

接着在该文件中写入信息“WRITEDEMO!

”;

然后关闭它;

最后返回DOS。

若写入成功,则显示“WRITEFILEOK!

”。

在对FDATA.DAT文件操作时若遇到错误,则显示相关的错误提示信息;

(4)在D:

\assembly下新建filer.asm;

输入读文件的汇编程序源代码,实现功能为:

接着在该文件中读出信息(该信息应是由程序filew.asm写入的WRITEDEMO!

);

然后关闭FDATA.DAT文件;

若读取成功,则显示“READFILEOK!

在对FDATA.DAT文件操作时若遇到错误,则显示相关的错误提示信息。

为了验证其读取的正确性,在读文件的前后均调用了PUTS宏指令显示BUFFER中的信息,若程序运行正确,两次显示的信息应不相同;

(5)汇编以上三个程序(filec.asm、filew.asm、filer.asm)源代码,检查错误,错误可能是由宏指令库里的代码错误导致,应注意汇编程序的提示信息,并改正之,重新汇编;

(6)调试运行以上三个程序,并记录实验结果;

(7)完成实验报告。

五、实验过程原始记录(数据、图表、计算等)

1.新建文件管理功能宏指令库filefuc.mac:

filefuc.mac文件源码:

;

-----------------------------------

功能:

保存寄存器DX、CX、BX、AX

PUSHREGMACRO

PUSHDX

PUSHCX

PUSHBX

PUSHAX

ENDM

恢复寄存器AX、BX、CX、DX

POPREGMACRO

POPAX

POPBX

POPCX

POPDX

清屏

CLRSCRMACRO

PUSHREG

MOVAH,6

MOVAL,0

MOVBH,4EH

MOVCX,0

MOVDX,184FH

INT10H

POPREG

置光标

入口:

DH:

DL行,列

出口:

CURSORMACROROW,COL

MOVAH,2

MOVBH,0

MOVDH,ROW

MOVDL,COL

在指定位置显示字符串

S字符串变量(以$结束)

PUTSMACROROW,COL,S

CURSORROW,COL

LEADX,S

MOVAH,9

INT21H

给DS赋值

数据段名:

DATA

出口:

LOADDSMACRODATA

MOVAX,DATA

MOVDS,AX

返回DOS

RETURNMACRO

MOVAX,4C00H

创建文件

PNAME文件说明

MSG6文件创建失败时显示的字符串

AL=1成功,AL=0失败

NEWFILEMACROPNAME,MSG6

LOCALERROR

LOCALEXIT

MOVAH,3CH

MOVCX,0

LEADX,PNAME

JCERROR

MOVFILEHANDLE,AX

MOVAL,1

JMPEXIT

ERROR:

PUTS10,10,MSG6

MOV,AL,0

EXIT:

NOP

打开文件

MSG2文件打开失败时显示的字符串

OPENFILEMACROPNAME,MSG2

MOVAH,3DH

MOVAL,02H

PUTS10,10,MSG2

关闭文件

MSG4文件关闭失败时显示的字符串

CLOSEFILEMACROMSG4

MOVAH,3EH

MOVBX,FILEHANDLE

PUTS10,10,MSG4

 

读文件

LENGTH读字节数BUF缓冲区首址

MSG3文件打开失败时显示的字符串

READFILEMACROLENGTH,BUF,MSG3

MOVAH,3FH

MOVCX,LENGTH

LEADX,BUF

PUTS10,10,MSG3

写文件

LENGTH写字节数BUF缓冲区首址

MSG5写文件失败时显示的字符串

WRITEFILEMACROLENGTH,BUF,MSG5

MOVAH,40H

PUTS10,10,MSG5

2.新建filec.asm、filew.asm、filer.asm,分别按照实验步骤中的要求输入相应的代码:

filec.asm:

filew.asm:

filer.asm:

filec.asm文件源码:

INCLUDEFILEFUC.MAC

PURGEOPENFILE,WRITEFILE,READFILE

STACKSGSEGMENTSTACK'

S'

DW64DUP('

?

'

STACKSGENDS

DATASEGMENT

MSG0DB'

CREATEFILEOK!

'

$'

MSG4DB'

CLOSEFILEERROR!

MSG6DB'

CREATEFILEERROR!

FILEHANDLEDW0;

文件句柄

NAME1DB'

D:

\ASSEMBLY\FDATA.DAT'

0;

以0结尾的需创建的文件说明

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACKSG

MAINPROCFAR

LOADDSDATA;

给DS赋值

CLRSCR;

NEWFILENAME1,MSG6;

PUTS10,10,MSG0;

在指定位置显示信息

CLOSEFILEMSG4;

RETURN;

返回DOS

MAINENDP

CODEENDS

ENDMAIN

filew.asm文件源码:

INCLUDEFILEFUC.MAC

PURGENEWFILE,READFILE

WRITEFILEOK!

MSG2DB'

OPENFILEERROR!

MSG5DB'

WRITEFILEERROR!

BUFFERDB'

WRITEDEMO!

0DH,0AH

CTEQU$-BUFFER

FILEHANDLEDW0

0

DATAENDS

LOADDSDATA

CLRSCR

OPENFILENAME1,MSG2;

WRITEFILECT,BUFFER,MSG5;

PUTS10,10,MSG0

CLOSEFILEMSG4

RETURN

ENDMAIN

filer.asm文件源码:

PURGENEWFILE,WRITEFILE

DW64DUP('

READFILEOK!

MSG3DB'

READFILEERROR!

BUFFERDB13DUP('

R'

),'

OPENFILENAME1,MSG2

PUTS10,10,BUFFER

READFILECT,BUFFER,MSG3;

读文件

PUTS12,10,BUFFER;

显示从D:

\ASSEMBLY\FDATA.DAT中读出的信息

PUTS14,10,MSG0

3.汇编以上三个源程序(filec.asm、filew.asm、filer.asm):

4.连接生成可执行文件(filec.obj、filew.obj、filer.obj):

filec.obj:

filew.obj:

filer.obj:

5.调试程序:

建立文件(filec.exe):

(1)首先反汇编源代码,程序最开始将先调用LOADDS宏指令为DS段赋值:

(2)从1550:

0005处开始将调用CLRSCR宏指令进行清屏操作:

(3)清屏后效果如下图,从1550:

001B处开始将调用NEWFILE宏指令创建指定文件:

(4)即将调用中断指令创建文件FDATA.DAT:

(5)可以看到,如果创建成功,则从1550:

0056处退出宏指令NEWFILE:

(6)从1550:

0057处开始将调用PUTS宏指令,输出字符串:

(7)可以看到在指定位置输出了字符串“CREATEFILEOK!

”,表明文件创建成功:

(8)从1550:

0079处开始将调用CLOSEFILE宏指令,关闭文件:

(9)文件关闭后,从1550:

00AD处开始将调用RETURN宏指令,返回DOS:

(10)程序完成,退出:

(11)在命令提示符下直接运行filec.exe效果如下:

(12)程序已经在指定目录下创建了FDATA.DAT文件:

写文件(filew.exe):

(1)程序开始时,从1552:

(2)清屏后效果如下图,将从1552:

001B处开始将调用OPENFILE宏指令打开指定文件:

(3)即将调用中断指令打开文件FDATA.DAT:

(4)可以看到,如果打开成功,则从1552:

0053处退出宏指令OPENFILE:

(5)从1552:

0054处开始将调用WRITEFILE宏指令将指定内容写入文件:

(6)当写文件成功后,将从1552:

008E处退出WRITEFILE宏指令:

(7)写文件完成后,则从1552:

008F处开始调用PUTS宏指令显示指定字符串:

(8)可以看到在指定位置输出了字符串“WRITEFILEOK!

”,表明写文件操作成功:

(9)从1552:

00B1处开始将调用CLOSEFILE宏指令,关闭文件:

(10)文件关闭后,从1552:

00E5处开始将调用RETURN宏指令,返回DOS:

(11)程序完成,退出:

(12)在命令提示符下直接运行filew.exe效果如下:

(13)程序已经在指定文件FDATA.DAT中写入了指定的内容:

读文件(filer.exe):

(3)从1552:

0053处退出OPENFILE宏指令,并准备调用PUTS宏指令输出当前缓冲区中的内容:

(4)可以看到,输出的当前缓冲区中的内容为RRRRRRRRRRRRR:

0076处开始将调用READFILE宏指令读取文件中的内容到缓冲区:

(6)从1552:

00B0处退出READFILE宏指令,并准备调用PUTS宏指令输出缓冲区中的内容:

(7)可以看到,读取文件内容到缓冲区后,其内容变为WRITEDEMO!

(8)然后调用PUTS宏指令,输出提示信息“READFILEOK!

”,表明读文件的操作成功:

00F5处开始将调用CLOSEFILE宏指令,关闭文件:

0129处开始将调用RETURN宏指令,返回DOS:

(12)在命令提示符下直接运行filer.exe效果如下:

六、实验结果、分析和结论(误差分析与数据处理、成果总结等。

其中,绘制曲线图时必须用计算纸)

1.在编写文件操作宏指令库时,要注意根据要求保护寄存器的值到堆栈,并在宏指令结束时按次序退栈,这样可以保证,无论程序中调用宏指令多少次,寄存器数据都始终保持一致,否则会导致不可预知的错误。

2.在进行文件的创建、打开、关闭、读写等操作时,要注意处理异常。

一旦操作失败,一定要运行指定的代码输出错误信息,否则一旦对文件操作失败,很可能导致程序出现异常或死循环,这种情况在程序设计中是非常有害的。

3.DOS系统把5个文件句柄分配给了标准输入输出设备。

既然设备和文件句柄之间建立了对应关系,那么用户就可以把这些设备视为文件一样处理,即可以通过文件句柄从输入设备中读数据或把数据写到输出设备上。

这是句柄方式访问文件的一个很大的好处,它方便了我们用程序对输入设备的操作,给我们的程序编写带来了很大的便利。

注:

教师必须按照上述各项内容严格要求,认真批改和评定学生成绩。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 法学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1