试验四汇编语言程序设计和调试_第1页
试验四汇编语言程序设计和调试_第2页
试验四汇编语言程序设计和调试_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

1、实验四汇编语言程序设计和调试(一)一实验目的1进一步掌握汇编语言上机全过程;2 .进一步掌握用 DEBUG:具调试汇编语言程序;3了解汇编语言程序的根本结构;4.掌握 8086/8088 数据传送、加法与十进制调整指令的功能。二. 实验准备1. PC 系列微型计算机一台;2. 软件安装 DOS系统、含 EDIT.EXE、MSAM.EXE、LINK.EXE或其他软件编辑工具;3. C盘下创立MASM目录。三. 实验要求1启动计算机并进入 DOS犬态和MASM子目录。2 在当前盘的 MASM目录下用EDIT编辑工具将自己编写的源程序编辑成一个源程序 文件,以“文件名.ASM名称存储在当前盘。3 .

2、使用MASM寸源程序汇编,生成目标程序文件(文件名.OBJ)( 注 : 假设汇编出错 , 找出错误原因并进行修改 , 直至正确 )(1) 命令格式及操作过程。(2) 汇编结束后记录屏幕所显示的内容。4 .返回EDIT环境查看列表文件(1) 命令格式及操作过程。(2) 记录屏幕所显示的内容。5 .使用LINK软件生成可执行程序文件(文件名.EXE)(1) 命令格式及操作过程。(2) 记录屏幕所显示的内容。6.运行生成可执行程序文件 ( 文件名 .EXE)(1) 命令格式及操作过程。(2) 记录屏幕所显示的内容。7 .在DEBUGS态下装入文件名.EXE,按要求调试程序。8 .用DEBU啲D命令查

3、看程序区。9 .用DEBU啲U命令反汇编出全代码段的语句。10.用DEBU啲T命令,按步数运行该程序,并用R或D命令查看结果。四. 实验内容和实验步骤使用EDIT、MASK和LINK等程序实现以下汇编语言源程序的输入、汇编、链接、调试和运行。1、程序一: 实现十个十六进制数相加,结果为字节数据。(程序名: LX41.ASM )该源程序实现的功能是:在偏移地址X开始的十个连续字节单元中存储01H 03H、05H 07H、09H 0AH 10H、12H 14H及16H;将该数据块转移到偏移地址 Y开始的十个连续字节单元中 去;并求取它们的和 , 将“和存放到偏移地址 Z 开始的存储单元中。源程序如

4、下:NAME SUMDATA SEGMENTXDB 01H,03H,05H,07H,09H,0AH,10H,12H,14H,16HY DB 10 DUP(?)Z DB (?)DATA ENDSSTACK SEGMENT PARA STACK STACKSTA DB 50 DUP(?)TOP EQU $STACK ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXLEASP,TOPXORAX,AXXORBX,BXMOVCL,0AHMOVS

5、I,OFFSET XMOVDI,OFFSET YLOP: MOV BL,SIMOVDI,BLINCSIINCDIDECCLJNZLOPMOVSI,OFFSET XMOVAL,00HMOVCL,0AHADD1: ADD AL,SIINCSIDECCLJNZADD1MOV Z,ALMOV AH,4CHINT 21HRETHLTMAIN ENDPCODE ENDSEND START1利用EDIT全屏幕编辑程序的编辑功能输入以上程序,以文件名为 盘MASM5子目录下。LX41.ASM 存入 C2在DOS系统下执行执行文件 MASM.EXE ,用宏汇编程序将 LX41.ASM.汇编成目标文件LX41.O

6、BJ。操作过程如下:显示键入C:MASMMICROSOFT(R)COPYRIGHT(C)MASM .SOURCE FILENAME .ASM OBJECT FILENAME LX41.OBJ SOURCE LISTINGNUL.LST CROSS-REFERENCENUL.CRFLX41 .LX41 .WARNIING ERRORSSEVERE ERRORS0如ERRORS均为0表示汇编正确,如不为 0,那么必须在编辑状态下重新修改源程序。3运行子目录 DOS下LINK 执行文件将目标文件LX41.EXE。操作如下:显示C:MICROSOFT(R)COPYRIGHT(C)LX41.OBJ连接成

7、为可执行的文件键入LINKOBJECT MODULES.OBJ:LX41RUN FILELX41.EXE可执行文件-LIST FILENUL.MAP忽略MAP文件LIBRARIES . LIB忽略库文件4查看列表文件 LX41 .L ST ,键入 C: MASM5EDIT LX41.LST 观察显示列表文件内容,记录有关内容: 数据段的起始单元的偏移地址:数据段中变量 X、Y、Z 的偏移地址: 数据段占有字节数:数据段中变量 X 单元存放的数据:Y 单元存放的数据: 代码段中从 LOP 标号开始的 14 句指令的机器码为:5 在DOS环境下运行程序,命令格式为:C : MASM5 文件名 .E

8、XE enter ;运行可执行文件 程序运行结束屏幕所显内容为:6在 MASM5 目录下输入如下命令,写出屏幕所显示的内容:C: MASMMASM5DEBUG LX41.EXE7在 DEBUG 状态下输入如下命令U观察屏幕所显示的内容,写出: 代码段的首单元的段地址和偏移地址: 和LX41 LST文件显示的代码段指令比拟,从LOP开始的14句指令的机器码及其存放的地址有否区别: 数据段和堆栈段的段基地址分别为:8)根据数据段的段地址, 在 DEBUG 状态下输入显示存储单元 D 命令, 检查变量 X、Y、 Z 的地址及其存放的数据:(9)在DEBUG下采用G命令运行程序,命令格式为: G= 0

9、000 XXXX( HLT指令的下一个地址) 写出屏幕所显示的内容: 再次检查变量 X、Y、Z 的地址及其存放的数据,和运行程序前有和区别:2、程序二: 实现十个十进制数移动、相加并进行十进制加法调整。(程序名 LX42.ASM)该源程序实现的功能是:在偏移地址X开始的十个连续字节单元中存储BCD码数01H、02H、03H 04H 05H、06H 07H 08H 09H及10H;将该数据块转移到偏移地址 Y开始的十个连续 字节单元中去;并求取这 10 个十进制数的和 , 将和存放到偏移地址 Z 开始的存储单元中。 在进行十进制数的加法时要使用指令DAA进行十进制数调整,以使 Z单元显示十进制数

10、。源程序如下:NAME SUMDATA SEGMENTX DB 01H,02H,03H,04,05H,06H,07H,08H,09H,10HY DB 10 DUP(?)Z DB (?)DATA ENDSSTACK SEGMENT PARA STACK STACKSTA DB 50 DUP(?)TOP EQU $STACK ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXLEA SP,TOPXOR AX,AXXOR BX,BXMOV CL,0AHMOV SI,OFFSET XMOV DI,

温馨提示

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

评论

0/150

提交评论