ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:128.39KB ,
资源ID:16435440      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16435440.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理课程设计Word格式文档下载.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机原理课程设计Word格式文档下载.docx

1、具体的设计任务及要求:1)出现提示后输入要显示的磁盘文件的路径名;2)显示一页后暂停,等待用户命令:用户输入“1”,继续显示下一页;用户输入“2”,将刚才显示的一页拷贝到指定的磁盘文件中;用户输入“3”,将刚才显示的一页从文件中删除;用户输入“0”,结束程序。3)文件显示完后显示提示信息。设计中使用的方法:1.文件代号存取方式在DOS 2.0以上的版本中,为了支持层次结构,引用了树形结构目录,因此相应增加了一个新的存取方式即文件代号存取方式(file handles access)。这种方式将有关文件的完整的路径名(path name),一旦文件的路径名被送入操作系统,就被赋予一个简单的文件代

2、号(file handle),这个文件代号是一个16位的数。以后对该文件进行读写时,就用这个文件代号去查找相应的文件。对于每一个打开的文件,DOS还为其管理一个读写指针(read/write pointer),读写指针总是指向下一个要存取的文件的字节,这个读写指针可以引动到文件的任意位置,从而能满足随机存取的要求。 2.写磁盘文件 写一个新文件或用同一个文件名重写一个旧文件时,首先要建立文件并赋给它一个属性,如果DOS发现要建立的文件已经存在,那么原来的文件就破坏。建立文件的功能调用是3CH,调用该功能时,在DX中装入ASCIZ串的地址,在CX中装入文件的属性。当写入文件操作完成后,必须用DO

3、S功能调用3EH来关闭文件,以确保操作系统将文件记录在磁盘上,这个操作只要求在BX中放入文件代号。3.读磁盘文件 调用读文件或设备功能(3FH),要求把文件打开取得文件代号,然后按照指定的字节数从磁盘中把文件读出,送入内存中预先定义好的数据缓冲区。如果读入的字节数大于缓冲区空间,那么,这些多余的数据将送到程序所占空间上的存储器中。打开文件操作(3DH)要检查文件名是否合法,文件是否有效。文件名是一个ASCIZ串,其地址装入DX寄存器,并在AL中设置存取代码。一个文件分几次读取,取决于文件的大小和输入缓冲区的空间。如果文件很大,程序中不能设置如此大的缓冲区,则必须分几次重复调用读功能,直到整个文

4、件结束。程序流程图:运行结果:在exe运行文件目录下新建yzq1.txt和空文档yzq2.txt,程序开始运行显示如下:按1翻页:按2删除:按3复制:5.设计心得: 通过此次汇编课程设计,学到了很多实际运用得上的知识,并认识到了自己动手能力的不足,过程虽然很困难,但还是收获匪浅。 在课程设计的过程中,首先认识到了汇编语言与别的高级语言的差别。汇编语言它与硬件知识联系非常紧密,要想学好汇编语言,对计算机组成原理和操作系统等课程要有一定的要求。同时,汇编语言与存储地址的对应关系是非常明了的。其次可从汇编语言的角度剖析高级计算机语言的组成,更一步了解了汇编语言在处理文件分页显示时运用到的一些基本知识

5、。这次课程设计是前面那些实验结合在一起的综合运用,并且通过这次课程设计进一步加深了我对整个汇编语言的理解和运用。最后此次实验启示我们,要善于运用所学的知识并把它运用到实际的操作中,加强自己动手动脑的能力,加强独立思考分析的能力并以此检验所学知识的是否牢固扎实,知识是否欠缺和是否有漏洞以及如何运用所学知识实现真正需求的问题。因此,在以后学习中要进一步加强运用知识解决问题和实际动手的能力。6.程序清单:;#Mode=DOSdata segment Pagesize dw ? buf_size db 80 s_buf db ? buf db 200 dup(?) names db 20 dup(?)

6、 dstname db 20 dup(? cur dw ? handle dw ? handle_cpy dw ? ;copy文件句柄 buf_tmp db 24*80 dup(? cur_tmp dw ? name_tmp db tmp,0 handle_tmp dw ? mark db ? mess_getname db 0dh,0ah,Please input filename: $ mess_getdstname db 0dh,0ah,Please input dst filename:目标文件 mess_err1 db 0ah,0dh,Illegal filename ! mess_

7、err2 db 0ah,0dh,File not found ! mess_err3 db 0ah,0dh,File read error ! mess_psize db 0ah,0dh,Page Size:$ mess_dele db 0dh,0ah,The page is deleted! mess_ok db 0dh,0ah,file opened! crlf db 0ah,0dh, mess_star db 0ah,0dh,* db 0ah,0dh,data endscode segment assume ds:data,cs:code main proc farstart: push

8、 ds sub ax,ax push ax mov ax,data mov ds,ax mov mark,0 mov Pagesize,24 mov cur,200 ;File data buffer is empty call getline ;Get file name call openf ;open the file and creat temporary file,(ax)=0 means no such file or ax,ax jnz display mov dx,offset mess_err2 mov ah,09h int 21h jmp file_enddisplay:

9、mov cx,Pagesize mov cur_tmp,0show_page: call read_block ;read a line from handle to buf jnz next2 mov dx,offset mess_err3 int 21h ;error in read.next2: call show_and_reserve;display a line in buf,and put the line in buf_tmp.(bx)returned=0means that the file reach its end. or bx,bx jz file_end ;(bx)=

10、0:at the end of file. or cx,cx jnz show_page (cx)=0:end of a page,print a line of stars. mov dx,offset mess_starthe current page has been on screen,and followed by a line of stars.wait_space: mov ah,1 cmp al, jnz psize call write_buf_tmpcommand=space,then reserve the page in temp file. jmp displayps

11、ize:p jnz copydstthe last page is reserved. call change_psize jmp stickcopydst : cmp al,c jnz delete call getdstname call opendstf or ax,ax jz stick call showmessage; call write_dst call write_buf_tmp jmp stick delete:d jnz wait_spacecommand is DELETE,the last pagenot reserved in temp file. mov mark

12、,1 mov dx,offset mess_dele mov ah,02hstick: jnz stickfile_end: call write_buf_tmp cmp mark,0 jz ok call write_tmp_back ;write the temp file backto users file.ok: retmain endpchange_psize proc near push bx push cx push dx mov dx,offset mess_psize mov ah,01 cmp al,0dh jz illeg sub al,0 mov cl,algetp:

13、jz pgot mov dl,al mov al,cl mov cl,dl ;exchange al and cl. mov bl,10 mul bl add cl,al jmp getppgot: mov dl,0ah mov ah,2output 0ah to complete the RETURN. cmp cx,0 jle illeg cmp cx,24 jg illeg mov Pagesize,cxilleg:output 0ah to complete the RETURN pop dx pop cx pop bx pop axchange_psize endpopenf pro

14、c near mov dx,offset names mov al,2 mov ah,3dh mov handle,ax mov ax,0 jc quit mov dx,offset name_tmp mov cx,0 mov ah,3ch mov handle_tmp,ax mov ax,1quit: pop bx ret openf endpgetline proc near mov dx,offset mess_getname mov dx,offset buf_size mov ah,0ah mov bl,s_buf mov bh,0 mov namesbx,0 ;insert 0 t

15、o form the asciiz string.name_move: dec bx mov al,bufbx mov namesbx,al ;move the line got into name string jnz name_movegetline endp read_block proc near cmp cur,200 jnz back mov cx,200 mov bx,handle mov dx,offset buf mov ah,3fh mov cur,0 jnc back mov cur,200back:read_block endpshow_and_reserve proc

16、 near mov bx,cur mov bp,cur_tmploop1: cmp bx,200 jl lp jmp exitlp: mov dl,bufbx mov ds:buf_tmpbp,dl ;(dl)need shown,reserveit in buf_tmp. inc bx inc cur inc bp inc cur_tmp cmp dl,1ah ;search the file end jz exit_eof mov ah,02show the (dl). cmp dl,0ah jz exit_ln ;if meets RETURN,exit. jmp loop1 ;else

17、 show another char.exit_eof: mov bx,0exit_ln: dec cxexit:show_and_reserve endpwrite_buf_tmp proc near mov dx,offset buf_tmp mov cx,cur_tmp mov bx,handle_tmp mov ah,40hwrite_buf_tmp endpwrite_tmp_back proc near mov ah,3ehclose the temporary fileclose the file giving mov al,0open the temporary file fo

18、r reading mov al,1reopen the file giving for writing mov si,1wrt_back:read a page bytes from temporary file to buf jc wrt_end mov si,ax mov cx,siwrite a page bytes from buf to the file giving or si,si jnz wrt_backwrt_end:write_tmp_back endpgetdstname proc near mov dx,offset mess_getdstname mov dstnamebx,0 ;name_move1: mov dstnamebx,al ; jnz name_move1getdstname endpopendstf proc near mov dx,offset dstname mov handle_cpy,ax jc quit1quit1:opendstf endp write_dst proc near mov bx,handle_cpywrite_dst endpshowmessage proc near mov dx,offset mess_ok showmessage endpcode endsend start

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

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