实验三 汇编语言程序上机操作方法
- 格式:ppt
- 大小:417.00 KB
- 文档页数:11
汇编语言的上机过程汇编语言程序的上机过程包括编辑、汇编、连接和执行这四个步骤。
汇编程序我们提供宏汇编程序MASM5.0和MASM6.14两个版本。
1、建立源程序文件建立和编辑汇编语言源程序可以使用EDIT、记事本、写字本,也可以使用TC等来输入源程序。
保存时,源程序文件的扩展名必须是ASM。
练习:(1)在DOS下用编辑软件EDIT建立如下源程序文件,将文件保存为Hello.ASM,保存在MASM5目录下。
(调用命令“C:\EDIT”进入EDIT编辑器。
)源程序文件如下:DSEG SEGMENTMESSAGE DB 'HOW DO YOU DO?',0DH,0AH,24HDSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEGBEGIN:MOV AX,DSEGMOV DS,AXMOV DX,OFFSET MESSAGEMOV AH,9INT 21HMOV AH,4CHINT 21HCSEG ENDSEND BEGIN(2)编程计算1+2+3+ ……+100,和放在AX寄存器中,要求用循环实现。
对于MASM5.0和MASM6.14两个版本,编译和连接的方法有所不同。
以下分别就两个版本的编译和连接的方法进行讲解。
如果使用MASM5.0的话,操作方法如下(以HELLO.ASM源程序文件为例):2、对源程序进行汇编,生成目标文件HELLO.OBJ。
操作:(1)在DOS下进入MASM5.0的目录,如C:\MASM5>(2)敲入命令: MASM HELLO说明:.obj文件:目标代码文件,纯二进制代码文件,不能直接显示在屏幕上。
.lst文件:包含源程序中各语句及其对应的目标代码,各语句的偏移量等相关信息,对调试程序有帮助,但一般情况不需要。
.crf文件:交叉索引文件,给出源程序中定义的符号引用情况,初学时不需建立。
3、连接目标文件,生成执行文件HELLO.EXE,操作:敲入命令LINK HELLO说明:.EXE文件:可执行文件.MAP文件:连接映象文件,包括各个段在存储器中的分配情况,初学时不需要。
实验3 汇编语言程序上机过程3.1 实验目的(1)掌握常用工具软件EDIT,MASM,和LINK的使用。
(2)伪指令:SEGMENT ,ENDS,ASSUME,END, OFFSET,DUP.(3)利用INT 21H的1号功能实现键盘输入的方法。
(4)了解.EXE和.COM文件的区别及用INT 21H 4C号功能返回系统的方法。
3.2 实验类型验证型实验3.3 实验内容data segmentmessage DB 'THIS IS A SAMPLE PROGRAM OF KEY AND DISPLAY'DB 0DH, 0AH, 'PLEASE STRIKE THE KEY!', 0DH, 0AH,'$'data endsstack segment PARA STACK'STACK'DB 50 DUP(?)stack endscode segmentassume CS:COE, DS:DATA, SS:STACKstart:mov ax, datamov ds, axmov dx, OFFSET MESSAGEmov ah, 9INT 21h ; add your code hereAGAIN:MOV AH,1INT 21HCMP AL,61HJE NDCMP AL,61HJC NDCMP AL,74HJA NDAND AL,11011111BND: MOV DL,ALMOV AH,2INT 21HJMP AGAINEXIT:MOV AH,4CHINT 21HCODE ENDSEND START3.5 实验报告(1)汇编,连接及调试时产生的错误,其原因及解决办法。
(2)思考①若在源程序中把INT 21H的‘H’省去,会产生什么现象?答:若在源程序中把INT 21H的‘H’省去,可以生成.EXE,但是在运新生儿湿疹行时提示出错语句:refer to the list of support interruptsIf you need to int 21h, put h suffix to 21②把INT 21H 4CH 号功能改为INT20H,行不行?答:不行。
实验一上机操作一、实验目的把握汇编语言程序编辑、汇编、连接、运行和利用DEBUG调试程序的方式。
二、实验设备PC机及相应的软件。
三、实验内容及步骤1、编辑一个指定的汇编语言源程序,并对其进行汇编、连接和运行。
2、利用DEBUG进行程序调试,把握经常使用命令的利用方式,观看运行结果。
3、汇编语言上机操作,见图1-1 汇编语言上机操作流程。
上机操作进程:开始输入cmd 确认后显示:C:\Documents and setting\Administrator>-输入 cd c:\masm 后显示:c:\masm>-c:\masm>EDITc:\masm>MASM ABC;假设有语法错,回EDIT下改该程序c:\masm>LINK ABC;假设有错,回EDIT下改程序c:\masm>ABC假设运行结果错,回EDIT下改程序或在DEBUG下调试,找缘故。
c:\masm>DEBUG手写源程序图 1-1 汇编语言上机操作流程汇编语言程序举例例1:将BL寄放器的内容按二进制形式显示出来。
设:(BL)=01010011B分析:采纳2号功能挪用,别离输出30 31 30 31 30 30 31 31 显示:01010011参考程序:CODE SEGMENTASSUME CS: CODESTART:MOV CX ,8 ;显示字符个数为8MOV BL ,53HNEXT:SHL BL ,1 ;将显示位移至CF中JC ONE ;CF=1?MOV DL ,30H ;CF=0,将0的ASCII放在DL中JMP EXITONE:MOV DL ,31H ;CF=1,将1的ASCII放在DL中EXIT:MOV AH ,2INT 21H ;挪用DOS功能显示DEC CX ;循环次数减1JNZ NEXT ;判定是不是终止MOV AH,4CH ;返回DOSINT 21HCODE ENDSEND START上机操作:c:\masm>EDIT ;编辑源程序c:\masm>MASM ShowBL ;汇编成Microsoft (R) Macro Assembler VersionCopyright (C) Microsoft Corp 1981,1988. All rights reserved.48912 + 447243 Bytes symbol space free0 Warning Errors0 Severe Errorsc:\masm>LINK ShowBL ;连接成Microsoft (R) Overlay Linker VersionCopyright (C) Microsoft Corp 1983-1987. All rights reserved.LINK : warning L4021: no stack segmentc:\masm>ShowBL ;装载并执行01010011 ;屏幕显示c:\masm>-在DEBUG下查看的装入情形:c:\masm>DEBUG- R ;查看当前寄放器内容AX=0000 BX=0000 CX=001B DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=0B51 ES=0B51 SS=0B61 CS=0B61 IP=0000 NV UP EI PL NZ NA PO NC B353 MOV BL,53- U CS:0 ;查看程序0B61:0000 B353 MOV BL,530B61:0002 B90800 MOV CX,00080B61:0005 D0E3 SHL BL,10B61:0007 7205 JB 000E…….0B61:0017 B44C MOV AH,4C0B61:0019 CD21 INT 21…….-G ;执行程序01010011Program terminated normally-例2:将某段中的字符串“Hello!”传送到另一段中。
汇编上机实验报告实验目的:通过进行汇编语言上机实验,掌握汇编语言的基本语法和编程技巧,培养汇编程序设计能力。
实验内容:实验一:汇编程序的简单输入输出1.编写一个汇编程序,要求从键盘输入两个整数,然后将其相加,并将结果输出到屏幕上。
2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。
实验二:汇编程序的条件跳转1.编写一个汇编程序,要求从键盘输入一个整数,判断其是否大于10,若是,则将其打印到屏幕上;否则,将其乘以5并打印到屏幕上。
2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。
实验三:汇编程序的循环1.编写一个汇编程序,要求计算1到10的累加和,并将结果打印到屏幕上。
2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。
实验四:汇编程序的数组操作1.编写一个汇编程序,要求定义一个长度为10的数组,并将数组中的值初始化为0,然后利用循环将数组中的每一个元素加1,并将每个元素的值打印到屏幕上。
2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。
实验结果:实验一:汇编程序的简单输入输出编写的汇编程序通过键盘输入两个整数,实现了相加并将结果输出到屏幕上的功能。
程序运行正常,输出结果与预期一致。
实验二:汇编程序的条件跳转编写的汇编程序通过键盘输入一个整数,根据条件判断,实现了将输入数大于10时打印在屏幕上,否则将其乘以5并打印在屏幕上的功能。
程序运行正常,输出结果与预期一致。
实验三:汇编程序的循环编写的汇编程序通过循环计算1到10的累加和,并将结果打印在屏幕上。
程序运行正常,输出结果与预期一致。
实验四:汇编程序的数组操作编写的汇编程序通过定义一个长度为10的数组,并将数组中的值初始化为0,利用循环将数组中的每一个元素加1,并将每个元素的值打印到屏幕上。
汇编语言程序设计上机实验报告(实验三)一、实验题目、内容及要求:一、实验题目、内容及要求:题目:循环程序设计内容:编写一程序,要求从键盘接收一个4位十六进制数,在终端上显示与它等值的二进制数。
二进制数。
要求:实验前要作好充分准备,包括程序清单、调试步骤、调试方法,对程序结果的分析等。
本实验要求在EDIT 下编写完整的汇编语言程并生成可执行文件运行。
下编写完整的汇编语言程并生成可执行文件运行。
二、实验时间及地点二、实验时间及地点日期:日期: 2011/11/21 节次:节次: 7.8 地点:地点:电子实验楼二楼电子机房电子实验楼二楼电子机房 三、实验目的三、实验目的通过本实验掌握DOS 系统功能调用功能,掌握循环程序设计的方法;学会编写循环结构程序。
构程序。
简述在实验过程中遇到的问题和解决的方法:简述在实验过程中遇到的问题和解决的方法:1、问题:遇到死循环解决方法:程序显示disp 中发现执行int int 21h 21h 会修改al 的值,避免这种情况的方法就是使用堆栈段。
2、问题:调试中出现no data segment 解决方法:start 开始时没有将数据段的IP 地址赋给dx 。
data segment 3、问题:可执行,结果为乱码解决方法:数据划分比较的粗,没有系统的将数据系统划分。
系统划分:<30h other 30h-39h num 39h-41h other 41h-46h big zi mu 46h-61h other 61h-67h small zi mu >67h other 运行结果:(要求用“抓图软件”抓程序的运行结果)(要求用“抓图软件”抓程序的运行结果)结果分析及实验体会:结果分析及实验体会:1、结果0001001000110100是十六进制数1234转化而来。
十六进制数通过ASCII码对照转换为二进制数。
A~F----- -57hA~ f----- -57h0~9 ------ -37h2、学习应用了循环指令并了解了其特点:A、循环指令不影响标志位B、其功能为使寄存器CX的值减1,如果结果不等于0,则循环至标号,否则顺序执行。
汇编语言程序设计上机指导一、debug的使用Debug是为汇编语言设计的一种8086实模式的调试工具,它通过单步执行、设置断点等方式为汇编语言程序员提供了非常有效的程序调试手段。
Debug可以直接用来检查和修改内存单元内容、装入、运行程序、检查及修改寄存器的值,也就是说Debug可深入到计算机的内部,可使用户更紧密地与计算机中真正进行的工作相联系。
通过Debug能更好的理解代码。
(一)启动Debug方法1:在运行对话框中输入“cmd”启动DOS命令窗口后输入“Debug”回车;方法2:在程序/附件/命令提示符,启动DOS命令窗口后输入“Debug”回车。
Debug的提示符是符号“-”。
即出现提示符“-”就表示可以接受DEBUG命令了。
按Alt+Enter 键可在全屏与窗口之间切换。
(二)Debug命令格式DEBUG的每个命令都是一个字母,后跟一个或多个参数,参数与参数之间,用空格或逗号隔开,参数与命令符之间可用空格隔开,命令的结束符是回车键Enter。
下面对DEBUG命令作几点说明:●字母不分大小写。
●只使用16进制数,且不能带后缀H。
●以空格或逗号作为命令各项之间的分隔符。
分隔符只在两个数值之间是必须的。
●可以用Ctrl+C终止命令的执行。
●若输入的命令有语法错误,则提示“Error”,并用“^”指出错误位置。
(三)Debug常用命令1、R命令格式: R [<寄存器名>](1) R功能:显示当前所有寄存器内容,状态标志及将要执行的下一指令的地址、代码及汇编语句形式(反汇编CS:IP所指的指令),其中对状态标志FLAG以每位的形式显示。
(2) R <寄存器名>功能:显示指定寄存器内容,例如:-R AX <Enter> 等待用户键入新的值,按回车键结束。
当进入DEBUG时,寄存器和标志设成以下数值:DS,ES指向最低可用段处的程序区前缀。
BX和CX为被装入文件的长度值。
汇编语言上机实践1、在“资源管理器”中把汇编源程序的模板文件重命名,但后缀不能修改,必须是.asm;2、用“记事本”打开上一步的汇编源程序文件,编辑、修改好后保存,注意:除注释可以中文外,其它内容一定要在英文状态下输入;(假设汇编、链接、调试及汇编源程序等文件都放在D盘的MASM50目录下。
)3、如果计算机的操作系统是32位系统,则按如下步骤进行汇编、链接、运行及调试;(1)、开始→ 程序 → 附件 → 命令提示符,进入DOS系统;(2)、输入“d:”,回车,进入“d盘”;(3)、输入“cd空格masm50”,进入MASM50目录,然后按下图所示进行汇编、链接及调试;(4)、汇编、链接及调试完毕,输入“exit”,回车,则返回Windows系统。
4、如果计算机的操作系统是64位系统,则按如下步骤进行汇编、链接、运行及调试;(1)、安装DosBox-0.74,安装完后会在桌面创建DosBox-0.74快捷图标;(2)、开始→ 所有程序 → DOSBox-0.74 → Options,如下图所示;(3)、单击DOSBox 0.74 Options,出现记事本编辑器,把记事本编辑器右边的垂直滚动条拖到最后,然后在记事本编辑器的最后面添加“mount d d:\”和“d:”两行,如下图所示,最后保存并退出记事本编辑器;(4)、双击桌面的DosBox-0.74快捷图标,如下图所示,注意两个窗体要同时出现,不能关闭其中的一个;(5)、输入“cd空格masm50”,进入MASM50目录,然后按下图所示进行汇编、链接及调试;(6)、汇编、链接及调试完毕,输入“exit”,回车,则返回Windows系统。
华南师范大学物理与电信工程学院杨志勇2015/4/11。
第1章汇编语言程序设计实验1.1 汇编语言程序设计的实验环境及上机步骤1.1.1 实验环境汇编语言程序设计的实验环境如下。
1.硬件环境微型计算机(Intel x86系列 CPU)1台。
2.软件环境·Windows 98/XP/Me/2000操作系统;·任意一种文本编辑器(EDIT、NOTEPAD(记事本)、UltraEDIT等);·汇编程序(MASM.EXE或TASM.EXE);·链接程序(LINK.EXE或TLINK.EXE);·调试程序(DEBUG.EXE或TD.EXE)。
本书建议文本编辑器使用EDIT或NOTEPAD,汇编程序使用MASM.EXE,链接程序使用LINK.EXE,调试程序使用TD.EXE。
1.1.2 上机步骤汇编语言程序设计的实验2和实验3仅使用TD.EXE,关于TD.EXE的使用方法请参见附录B。
下面介绍的上机实验步骤适用于除实验2和实验3的所有实验(包括硬件接口部分的全部实验)。
1.确定源程序的存放目录建议源程序存放的目录名为ASM,并放在C盘或D盘的根目录下。
如果没有创建过此目录,请用如下方法创建。
通过Windows的资源管理器找到C盘的根目录,在C盘的根目录窗口中单击右键,弹出的菜单中选择“新建”→“文件夹”,并把新建的文件夹命名为ASM。
请把MASM5文件夹下的所有文件及TD.EXE都复制到此目录中。
2.建立ASM源程序建立*.ASM源程序可以使用记事本文本编辑器。
注意:保存时扩展名必须ASM。
设建立的源文件为HELLO.ASM3.用MASM.EXE汇编源程序产生OBJ目标文件源文件HELLO.ASM建立后,要使用汇编程序对源程序文件汇编,汇编后产生二进制的目标文件(.OBJ文件)。
具体操作如下:方法一:在Windows中操作用资源管理器打开源程序目录C:\ASM,把HELLO.ASM拖到MASM.EXE程序图标上。
学生实验报告实验课程名称:微机原理汇编实验开课实验室:年月日年级、专业、班学号姓名成绩实验项目名称汇编语言程序上机操作方法实验指导教师教师评语一、实验目的学习程序设计的基本方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法,为后继课程打下坚实的基础。
二、实验原理使用MASM汇编语言设计工具,设计简单的汇编语言程序并进行运行调试,以便掌握汇编语言设计、编写、调试和运行程序的方法。
三、实验仪器、材料1.软件MASM5.02.PC微机一台四、实验步骤1.建立asm文件在windows系统环境下,应用写字板或其它文字编辑软件编写汇编语言源文件。
注意保存的源文件以asm为后缀。
2.用汇编程序MASM对源文件汇编产生目标程序.OBJ。
3.用连接程序LINK产生可执行文件.EXE。
4.执行程序。
5.程序调试五、实验源代码;------------------------------------------------- ;程序名:Lab101;功能:把NUM数组中的最大值取出并显示输出;-------------------------------------------------DATA SEGMENTNUM DB 12,52,36,14,25,32,14,126 COUNT EQU ($-NUM)DATA ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV CX,COUNT ;初始化循环次数MOV SI,OFFSET NUMMOV AL,[SI]MOV DL,ALINC SIAGAIN:MOV AL,[SI]INC SICMP DL,ALJL SWAPLOOP AGAINJMP FINISHSWAP:MOV DL,ALLOOP AGAINJMP FINISH;--------------------------------;子程序名:TRANNUM;功能:将数字转换为字符串;入口参数:AL;出口参数:无;--------------------------------TRANNUM PROC NEARMOV AL,DLXOR AH,AHMOV CX,3MOV DL,10TRAN1:DIV DLXCHG AH,ALADD AL,'0'PUSH AXXCHG AH,ALMOV AH,0LOOP TRAN1MOV CX,3TRAN2:POP DXCALL DISPLAYLOOP TRAN2RETTRANNUM ENDP;--------------------------------;子程序名:DISPLAY;功能:将单个字符显示输出;入口参数:DL;出口参数:无;--------------------------------DISPLAY PROC NEARMOV AH,02HINT 21HRETDISPLAY ENDPFINISH:CALL TRANNUMMOV AH,4CH ;程序结束返回DOSINT 21HMAIN ENDPCODE ENDSEND START六、实验过程原始记录(数据图表、计算等)1、打开命令提示符:输入cmd2、输入:cd G:/asm/tos3、输入:G:4、输入:masm lab1015、输入:link lab1016、输入:lab101七、实验结果分析从程序代码分析,所给数值中最大值为126,运行程序后输出结果为126,说明程序能够实现其功能。
汇编语言程序上机过程1.编写源程序进入MS-DOS方式,进入MASM40子目录,提示符后键入edit 源文件名.asm,回车,利用DOS的全屏幕编辑软件编写汇编语言源程序,存盘,退出也可以先在WINDOWS环境中用记事本编写源程序,存为扩展名为.asm的文件(注意文件保存在MASM40子目录下),再进入MS-DOS方式,进入MASM40子目录2.汇编源程序提示符后键入masm 源文件名.asm,回车,提示输入OBJ文件名,按回车提示输入LST文件名, 键入源文件名,回车这两步只要试一次,打开它们了解其作用即可,以后就一路按回车提示输入CRF文件名, 键入源文件名,回车汇编完成,源程序中如有错误,显示错误信息3.如汇编后报错,改正源程序中的错误,直至汇编无错,则生成源文件名.obj4.连接提示符后键入link 源文件名,回车,对于提示信息,全部按回车若无连接错误,则生成源文件名.exe5.运行提示符后键入源文件名,回车6. 提示符后键入exit,回车,退出DOS环境调试软件Debug使用说明:DOS环境下,提示符后键入debug 源文件名.exe,回车,出现提示符’_’1._u[address] (反汇编命令)从指定的地址起反汇编32个字节,若不指定,则从头开始或从上一个u命令的最后一条指令的下一个单元开始反汇编2._g[=address1] [address2] (运行命令)从指定的地址address1起执行,如不指定则从当前的CS:IP开始执行(address1为000则从头开始执行),当执行到后面的断点地址address2时,停止执行并显示当前所有寄存器及标志位的内容,和下一条将要执行的指令3._t[=address] [n](跟踪命令)从指定的地址address起执行n条(不指定n,则执行一条指令)后停下来, 显示当前所有寄存器及标志位的内容,和下一条将要执行的指令, 如不指定address则从当前的CS:IP开始执行4._d[address]或_d[range]在DS段寄存器经MOV指令传送有具体值后,从指定的数据段偏移地址address起开始显示80个字节或指定范围的字节的内容,如_d000 020显示数据段中偏移地址为000h至0020h的字节的内容,如在address前指定段寄存器(CS、SS、ES),也能观察到其它段的内容5._r (显示所有寄存器和标志位内容)6._q (退出debug)Debug的使用练习:●在DOS提示符下键入debug aswjsj2.exe●_u 回车(或_u000 回车)反汇编32个字节,显示内容为:代码段段地址:偏移地址机器代码指令(地址表达式的值已算出)可看出该指令的机器代码的存放地址和长度(即为几字节指令)问:(1)指令mov dl,2对应的机器代码为多少?是几字节指令?(2)在指令部分,原先的mov di,offset d1已变为mov di 000a,故可知变量d1在数据段中的偏移地址为000a,由于在数据段中d1,d2,z是连续定义的,故变量d2的偏移地址和z 的偏移地址各是多少?(3)原先的call p1已变为call 0080, 问过程p1在代码段中的起始偏移地址为多少?●_r 回车显示所有寄存器和标志位内容观察CS、IP的值●_t 5 回车(或_t=000 5 回车)从开头执行5条指令 (使每个段寄存器有了具体值)后停下_d000 回车察看数据段从偏移量为000开始的10个单元的内容,为多少?●_u000 回车察看源程序中标志1处的下一条指令,其偏移地址是多少?将它作为断点地址_g 断点地址,回车_d000a, 回车察看变量d1的值变为了多少?●采用类似的方法将标志2处的下一条指令作为断点,运行至断点处, 察看变量d2的值变为多少?●将标志3处的下一条指令作为断点,运行至断点处, 察看AL的值为多少?●将标志4处的下一条指令作为断点,运行至断点处, 察看AL的值为多少?弄清das指令的作用●将标志5处的下一条指令作为断点,运行至断点处,察看变量z的值为多少?●_q 回车结束Debug,返回DOS提示符下。
汇编语言程序设计上机步骤与调试方法在汇编语言程序设计中,上机步骤与调试方法是非常重要的,它们能够帮助程序员更好地编写和调试程序。
本文将介绍汇编语言程序设计的上机步骤以及常用的调试方法,帮助读者更好地理解和应用这些知识。
一、上机步骤1. 准备工作在开始上机之前,我们需要做一些准备工作。
首先,确认计算机已经连接好必要的硬件设备,例如键盘、显示器等。
其次,确保操作系统和开发环境已经正确安装并能够正常运行。
最后,根据需要准备好所需的汇编语言文档和程序样例。
2. 创建新项目在开始编写汇编语言程序之前,我们需要创建一个新的项目。
在项目中,我们可以组织和管理相关的文件和代码。
通常,我们会选择一个合适的集成开发环境(IDE)来创建和管理项目。
3. 编写程序在创建项目之后,我们可以开始编写汇编语言程序。
首先,我们需要了解目标机器的指令集和寄存器,以便正确地编写程序。
然后,根据需求,我们可以使用不同的指令、寄存器和内存来实现所需的功能。
在编写程序的过程中,注意代码的可读性和易于维护性是非常重要的。
4. 调试程序编写完汇编语言程序后,我们需要进行调试,以确保程序的正确性和稳定性。
调试是一个迭代过程,通常包括以下步骤:- 设置断点:在程序中设置断点,以便在特定位置停止程序的执行。
- 单步执行:通过逐条执行程序的指令,我们可以观察程序的执行过程,并检查各寄存器和内存的值。
- 监视变量:在调试过程中,我们可以监视程序中的变量值,以验证其正确性。
- 查看输出:观察程序的输出结果,与预期结果进行比较,以确定程序是否按照预期执行。
- 修复错误:如果发现程序中存在错误,我们需要对程序进行修改和调整,直到问题解决为止。
5. 运行程序在完成程序的调试之后,我们可以运行程序并观察其运行效果。
在运行过程中,我们可以测试程序的各种功能,以确保其正常工作。
二、调试方法1. 打印输出在调试汇编语言程序时,打印输出是一种常用且简单有效的调试方法。
汇编语言程序设计上机实验指导一、实验目的1.掌握汇编语言的基本原理和编程技巧。
2.加深对计算机系统结构的理解。
3.培养实验操作和编程能力。
二、实验环境1.所需软件:MARS仿真器。
2.操作系统:任意支持MARS仿真器的操作系统。
三、实验内容1.实验一:编写一个简单的汇编语言程序,实现加法运算。
(1)要求用户输入两个整数。
(2)将两个数相加。
(3)输出两个数的和。
2.实验二:编写一个汇编语言程序,实现乘法运算。
(1)要求用户输入两个整数。
(2)将两个数相乘。
(3)输出两个数的乘积。
3.实验三:编写一个汇编语言程序,实现判断一些数是否为质数。
(1)要求用户输入一个整数。
(2)判断该整数是否为质数。
(3)输出判断结果。
4.实验四:编写一个汇编语言程序,实现打印从1到N之间的所有质数。
(1)要求用户输入一个整数N。
(2)打印出从1到N之间的所有质数。
四、实验步骤1.打开MARS仿真器,创建一个新的程序。
2.按照实验要求,编写汇编语言程序代码。
3.在MARS仿真器中调试和运行程序。
4.检查程序输出结果是否与预期相符。
5.优化程序代码,提高程序的效率和性能。
五、实验注意事项1.确保编写的代码逻辑正确、语法规范。
2.程序设计要遵循模块化设计原则,尽量将程序划分为多个模块,提高程序代码的可读性和维护性。
3. 实验过程中要注意调试程序,排除可能出现的bug。
4.在程序编写过程中,保持良好的编程习惯,合理命名变量和子程序,提高代码的可读性。
六、实验总结1.实验报告中需包含实验的目的、内容、步骤、注意事项等内容。
2.分析并总结实验中遇到的问题和解决方法。
3.对实验过程、结果的合理性进行分析和讨论。
4.提出对实验中存在问题的改进建议。
以上就是一份汇编语言程序设计上机实验指导的内容。
希望这份指导能够帮助学生们更好地进行汇编语言程序设计的实验,提高他们的实践能力和编程水平。
汇编上机实验报告实验名称:汇编上机实验报告1. 实验目的通过完成汇编上机实验,掌握汇编语言的基本概念和语法规则,理解计算机底层运行的原理,加深对计算机体系结构的理解。
2. 实验环境硬件环境:个人电脑一台,操作系统为Windows 10软件环境:MASM汇编语言开发工具(Microsoft Macro Assembler)、DOSBox模拟器3. 实验内容及步骤3.1 实验一:汇编程序基本框架搭建步骤:(1) 在MASM环境下创建一个新的汇编源文件,命名为"lab1.asm"。
(2) 在源文件中编写汇编程序的基本框架,包括段定义、数据定义和代码段等。
(3) 使用MASM汇编器将源文件编译为目标文件。
(4) 使用链接器将目标文件连接为可执行程序。
(5) 在DOSBox模拟器中执行可执行程序,观察程序输出结果。
3.2 实验二:实现简单的数值运算步骤:(1) 按照实验一的步骤,在MASM环境下创建一个新的汇编源文件,命名为"lab2.asm"。
(2) 在源文件中编写汇编程序,实现两个数的相加、相减、相乘和相除等简单的数值运算。
(3) 使用MASM汇编器将源文件编译为目标文件。
(4) 使用链接器将目标文件连接为可执行程序。
(5) 在DOSBox模拟器中执行可执行程序,输入两个数值,观察程序计算结果。
3.3 实验三:字符串处理步骤:(1) 按照实验一的步骤,在MASM环境下创建一个新的汇编源文件,命名为"lab3.asm"。
(2) 在源文件中编写汇编程序,实现字符串的输入、输出和处理。
(3) 使用MASM汇编器将源文件编译为目标文件。
(4) 使用链接器将目标文件连接为可执行程序。
(5) 在DOSBox模拟器中执行可执行程序,输入一个字符串,观察程序对字符串的处理结果。
4. 实验结果与分析实验一:汇编程序基本框架搭建在DOSBox模拟器中成功执行了汇编程序,没有出现任何错误提示,并得到了预期的输出结果。
实验一汇编语言上机基本步骤一、实验目的:熟悉汇编语言的上机过程,掌握各项工具软件的使用方法二、实验环境:1.硬件:PC微机2.软件:DOS系统、EDIT.EXE、MASM.EXE、LINK.EXE、DEBUG.EXE三、实验内容:1.前期准备:在开始进行汇编语言上机练习之前,建立并进入自己的工作子目录,准备好相关工具软件如MASM.EXE、LINK.EXE等,其后所有工作均在自己的子目录中进行,以避免因路径概念不清而导致的文件存取错误,以及对系统其它部分造成影响。
1)建立自己的工作子目录(例如MYTEST):C:\>MD MYTEST2)进入自己的工作子目录:C:\>CD MYTEST3)将所需工具软件从其它地方(如C:\MASM)拷贝进自己的工作子目录:C:\MYTEST>COPY C:\MASM\MASM.EXEC:\MYTEST>COPY C:\MASM\LINK.EXE2.编写源程序:原则上可以用任何文字处理软件(如EDIT、写字板、甚至WORD)编写源程序,但必须注意,源程序应为ASCII码文件(或称纯文本文件),扩展名一般为.ASM。
因此,建议使用DOS环境下的EDIT软件。
1)在DOS系统操作提示符下键入EDIT并回车,即可进入EDIT文本编辑环境。
如果没有进入,检查当前路径下是否存在EDIT.EXE文件,以及文件是否完整等。
2)从键盘输入下列程序(不必输入注释部分):CODE SEGMENT;定义一个CODE段ASSUME CS:CODE;定义CODE段为代码段START:;可执行语句起始处MOV AH,02H ;以下三条语句将显示字母aMOV DL,’a’INT 21HMOV AH,4CH ;以下二条语句将返回DOSINT 21HCODE ENDS;CODE段结束END START;整个程序结束该程序的功能是仅在CRT屏上显示一个字母a,完成功能的只有其中的三条语句,但其它部分则是一个完整的汇编语言源程序必不可少的部分。
实验三要求:1)通过上机实验熟悉汇编语言程序的完整的上机过程2)熟悉汇编语言程序的编程当编制好汇编语言原程序后,必须要在机器上运行,要经过以下几个步骤见图:一、上机程序一要求:请把DS段源缓冲区中以source_buf为首地址的40个小写字母a传送到ES段以dest_buf为首地址的目的缓冲区中实验步骤:1.用EDIT编辑程序建立ASM源文件文件取名为ex_movs.asmDATA SEGMENTSOURCE_BUF DB 40 DUP (‘a’)DATA ENDSEXTRA SEGMENTDEST_BUF DB 40 DUP (‘?’)EXTRA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:EXTRASTART: MOV AX,DATAMOV DS,AXMOV AX,EXTRAMOV ES,AXLEA SI,SOURCE_BUFLEA DI,DEST_BUFCLDMOV CX,40REP MOVSBMOV AH,4CHINT 21HCODE ENDSEND START2.用MASM程序产生OBJ文件原程序建立后就要用汇编程序MASM对原程序进行汇编,汇编后如果没有语法错误,就会产生二进制的目标文件(文件名.OBJ),其操作过程及屏幕显示如下c:MASM ex_movs.asm↙(‘↙’表示回车)汇编程序的输入文件是ASM原文件,其输出文件有三个,表示于应该回答的三行中,第一个是OBJ文件,这是我们需要的目标文件,第二个是LST文件称为列表文件,这个文件同时列出原程序和机器语言程序清单,同时也给出符号表,因而可给调试程序带来方便。
这个文件可要可不要,不需要时可用回车回答,如果需要这个文件,就写出文件名作答ex_movs↙ex_movs.lst的列表文件的屏幕显示如下:汇编程序提供的第三个文件是CRF 文件,这个文件用来产生交叉引用表REF,对于一般程序不需要建立此文件,所以对于第三行以回车键作答3.用LINK连接程序产生EXE文件汇编程序已经产生二进制的目标文件(OBJ文件),但OBJ文件并不是可执行的文件,还必须用连接程序(LINK)把OBJ文件转换成可执行的EXE文件,主要原因是OBJ文件中的存储器地址还没有真正分配实际的存储器物理地址,而分配的是浮动地址,连接程序操作方法和屏幕显示如下:c:LINK ex_movs↙屏幕显示如下:连接程序有二个输出文件,一是EXE文件这是我们需要的,用回车作答就可以了,另一个输出文件为MAP文件,它是连接程序的列表文件,又称为连接映象(Link map),它给出了每个段在存储器中的分配情况。