微机原理实验报告DOS环境下的汇编语言编程环境使用.docx_第1页
微机原理实验报告DOS环境下的汇编语言编程环境使用.docx_第2页
微机原理实验报告DOS环境下的汇编语言编程环境使用.docx_第3页
微机原理实验报告DOS环境下的汇编语言编程环境使用.docx_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验二 dos环境下的汇编语言编程环境使用(基础与验证型)一、实验要求和目的1、掌握汇编语言程序设计的基本方法和技能;2、熟练掌握使用全屏幕编辑程序edit编辑汇编语言源程序;3、熟练掌握宏汇编程序masm的使用;4、熟练掌握连接程序link的使用。二、软硬件环境1、硬件环境:微机cpu 486以上,500mb以上硬盘,32m以上内存;2、软件环境:装有masm 5.0、debug、link、edit、cref.exe和exr2bin.exe等应用程序。三、实验涉及的主要知识单元1、汇编语言源程序的汇编过程汇编语言源程序的汇编过程是是利用汇编程序(masm)对已编辑好的源程序文件(.asm)进行汇编,将源程序文件中以ascii码表示的助记符指令逐条翻译成机器码指令,并完成源程序中的伪指令所指出的各种操作,最后可以建立3个文件:扩展名为 .obj的目标文件、扩展名为 .lst 的列表文件和扩展名为 .crf 的交叉索引文件。目标文件是必须建的,.lst和.crf两个文件不是必须建立的,可有有无,可以通过汇编时的命令加以选择。在对源程序文件(asm文件)汇编时,汇编程序将对asm文件进行两遍扫描,若程序文件中有语法错误,则结束汇编,汇编程序将指出源程序中存在的错误,这时应返回编辑环境修改源程序中的错误,再经过汇编,直到最后得到无错误的目标程序,即obj文件。因此,汇编程序的主要功能可以概括为以下三点: (1) 检查源程序中的语法错误,并给出错误信息;(2) 产生目标程序文件(obj文件),并可给出列表文件(.lst文件);(3) 展开宏指令。2、目标程序的连接过程汇编后产生的目标程序(obj文件)并不是可执行程序文件(exe文件),还不能直接运行,它必须通过连接程序(link)连接成一个可执行程序后才能运行。连接程序进行连接时,其输入有两个部分:一是目标文件(.obj),目标文件可以是一个也可以是多个,可以是汇编语言经汇编后产生的目标文件,也可以是高级语言(例如c语言)经编译后产生的目标文件;另一是库文件(.lib),库文件是系统中已经建立的,主要是为高级语言提供的。连接后输出两个文件,一是扩展名为 .exe的可执行文件,另一个是扩展名为 .map 的内存分配文件,它是连接程序的列表文件,又称为连接映像(link map),它给出每个段在存储器中的分配情况,该文件可有可无。连接程序给出的“无堆栈段的警告性错误”并不影响程序的运行。所以,到此为止,连接过程已经结束,可以在操作系统下执行该.exe程序了。四、实验内容与步骤1、实验内容运行教材p.57 例3.2运行教材p.62 例3.6修改例3.6,输入首字母大写名字,使输出全部变为小写。2、实验步骤汇编语言程序设计上机过程如图1.1所示。图1.1 汇编语言程序上机过程(一)用编辑程序edit建立汇编语言源程序文件(asm文件)(二)用汇编程序masm将asm文件汇编成目标程序文件(obj文件)(三) 用连接程序link生成可执行程序文件(exe文件)(四) 程序的执行五、实验结论及程序(1)实验结论;通过这次试验,我掌握了汇编语言程序设计的基本方法和技能,比如汇编语言程序格式汇编过程:汇编语言程序格式:完整的汇编语言源程序由段组成一个汇编语言源程序可以包含若干个代码段、数据段、附加段或堆栈段,段与段之间的顺序可随意排列需独立运行的程序必须包含一个代码段,并指示程序执行的起始点,一个程序只有一个起始点所有的可执行性语句必须位于某一个代码段内,说明性语句可根据需要位于任一段内通常,程序还需要一个堆栈段汇编过程:文本编辑器,如 edit.com源程序:文件名.asm汇编程序,如 ml.exe目标模块:文件名.obj连接程序,如 link.exe可执行文件:文件名.exe调试程序,如 debug.exe(2)记录实验结果。教材p.57 例3.2程序代码:datas segment;bvar1 db 100,01100100b,64h,d minint =5bvar2 db -1,minint,minint+5 db ?,2 dup(20h)wvar1 dw 2010h,4*4wvar2 dw ?dvar dd 12347777h,87651111h,? abc db a,b,c,?maxint equ 0ahstring db abcdefghijcrlfs db 13,10,$array1 dw maxint dup(0)array db 2 dup(2,3,2 dup(4)datas endsstacks segment ;stacks endscodes segmentassume ds:datas,ss:stacks,cs:codes; start:mov ax,datasmov ds,axmov dl,bvar1dec bvar2+1mov abc3,dlmov ax,word ptr dvar0mov dx,word ptr dvar2add ax,word ptr dvar4adc dx,word ptr dvar6mov word ptr dvar8,axmov word ptr dvar10,dxmov cx,maxintmov bx,0again: add stringbx,3 inc bx loop again lea dx,abc mov ah,09h int 21hlea dx,stringmov ah,9;int 21hmov ah,4ch;int 21hcodes endsend start教材p.62 例3.6程序代码:datas segment ;此处输入数据段代码keynum=255keybufdb keynumdb 0 db keynum dup(0)datas endsstacks segment ;此处输入堆栈段代码stacks endscodes segment assume cs:codes,ds:datas,ss:stacksstart: mov ax,datas mov ds,ax ;此处输入代码段代码 mov dx,offset keybuf mov ah,0ah int 21h mov dl,0ah mov ah,2 int 21h mov bx,offset keybuf+1 mov cl,bx mov ch,0again:inc bx mov dl,bxcmp dl,a jb dispcmp dl,zja dispsub dl,20h;disp:mov ah,2 int 21h loop again mov ah,9 int 21h mov ah,4ch int 21hcodes endsend start修改例3.6,输入首字母大写名字,使输出全部变为小写。程序代码:datas segment ;此处输入数据段代码keynum=255keybufdb keynumdb 0 db keynum dup(0)datas endsstacks segment ;此处输入堆栈段代码stacks endscodes segment assume cs:codes,ds:datas,ss:stacksstart: mov ax,datas mov ds,ax ;此处输入代码段代码 mov dx,offset keybuf mov ah,0ah int 21h mov dl,0ah mov ah,2 int 21h mov bx,offset keybuf+1 mov c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论