《汇编语言上机环境及基本步骤》实验报告.docx
汇编语言上机环境及基本步骤一、实验目的:1 .掌握编写汇编源程序的基本格式。2 .熟悉汇编语言上机环境。3 .掌握汇编源程序的编辑和修改,熟悉EDIT或记事本的使用方法。4. 掌握汇编源程序编译、连接成可执行文件的过程,熟悉MASM, LINK的使用方法。 二、实验内容:在屏幕上显示并打印字符串"This is a sample program.v三、实验仪器微机一台四、实验步骤:1 .在某盘如E盘,以自己的名字的汉语拼音建立一个工作目录(文件夹,名称不要太长,不超过8个字符比方zhangsan),将文件等复制到该目录下,编辑的源文件也保存到该目录下。从WINDOWS进入DOS环境:C: >2 .用EDIT编辑SWLASM源文件。(1).从当前目录进入自己的目录下,C: >E:回车E:> CD zhangsan / 回车键入EDIT并回车:E: zhangsan>EDIT根据菜单提示进行各种操作。(2)进入EDIT编辑-EDIT是一种全屏幕编辑软件,可输入、编辑、修改、保存、另 存源程序非常方便。说明:也可在WIDNDOWS环境下用记事本编辑源文件,在保存时,保存类型应选择所有文件,不 能选择文本文件否那么在编译时会找不到源文件的。(3) .编辑新文件:a、在EDIT编辑器中输入汇编源程序。b、检查输入有无错误。c、翻开文件菜单FILET选择另存为SAVE AS输入文件名为:SWl.ASM保 存。注意:保存到你自己的文件夹中d、假设需要修改此文件,用FILE菜单少选择翻开OPEN今输入文件名SWLASM,即 可修改。修改后注意重新再存盘。(4) .编辑汇编源程序a、在EDIT(或记事本)中输入源程序。b、检查。c、存盘。可保存为SWLASMD:yangli>MASM SW1;Microsoft (R) Macro Assembler Version 5.00Copyright (C) Microsoft Corp 1981T985) 1987. All rights reserved.50574 + 415346 Bytes symbol space free0 Warning Errors0 Severe Errors3.用汇编程序MASM将SW1.ASM文件汇编,生成SW1.OBJ目标文件。(1).一般简单程序只需生成.OBJ文件,可键入简化命令:E:zhangsan>MASM SW1 ; /假设有错误,那么显示错误行号及错误性质,如:SWl.ASM(5):error A2006:undefined symbor:xxxxC:UsersAdministrator>D:D:>CD yangliD:yangli>edit.假设有错重新进入EDIT进行修改。修改后并再存盘,退出编辑,回到DOS,再汇编。E: zhangsan >MASM SW 1 ; / (3).没有任何错误时,显示:Assembling: SWl.asm表示汇编成功,生成SW1.OBJ文件。(4).用DIR命令查看应有SW1.OBJ:E: zhangsan >DIR SWL*D:yangli>DIR SW1,*Volume in drive D is 软件Volume Serial Number is 0001-2CE5Directory of D:yangli305 SW1.ASM166 SW1.OBJ2022/05/14 周六 上午 11:432022/05/14 周六 上午 11:452 File(s)471 bytes0 Dir(s) 113,203,970,048 bytes free4,用连接程序LINK将SW1.OBJ文件连接,生成SW1.EXE可执行文件。(1).一般仅生成SW1.EXE文件,可键入简化命令:E: zhangsan >LINK SW 1 ; /假设有错误,那么显示错误信息,那么应返回编辑、修改、存盘,再汇编、连接直 到连接成功,生成SWLEXE可执行文件。用DIR命令查看应有SW1.EXE:E: zhangsan >DIR SW 1 .*/5.运行SWLEXE文件E: zhangsan > SW1 /执行SW1 .EXE文件,屏幕应显示:“This is a sample program."。由连接程序生成的.EXE,在 DOS下,直接键入文件名(不要扩展名.EXE)就可以把文件装入内存,并立即执行。但有的 程序没有直接显示结果;对于较复杂程序难免会出现错误,直接观察很难找到错误所在,这 样就要借用调试程序进行调试。实验现象记录:记录调试过程中出现的问题及修改措施,并记录程序执行结果。五、实验源程序DATA SEGMENTDAI DB This is a simple program.*DB 0DH,0AH; $'DATA ENDSSTACK SEGMENT STI DB 100 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOVAX, STACKMOV SS, AXMOV AX, DATAMOV DS, AXMOV AH, 9MOV DX, OFFSET DAIINT 21HMOV AH,4CHINT21HCODE ENDSEND STARTD:yangli>SWlThis is a simple program.