微机原理上机实验作业.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

汇编语言程序设计上机步骤与调试方法一.上机环境硬件系统软件应用软件操作系统:DOS系统编辑器:EDIT.exe编程序:MASM.exe连接程序:LINK.exe调试程序:DEBUG.exe用户程序:ABC.exe等CPU、存储器(ROM、RAM)、I/O接口、输入、输出设备二.上机步骤①D:EDITABC.ASM②D:MASMABC.ASM;有语法错,回EDIT下改源程序③D:LINKABC.OBJ;有错,回在EDIT下改源程序④D:ABC运行结果错,回EDIT下改源程序或在DEBUG下调试,找原因。⑤D:DEBUGABC.exe编辑源程序EDITABC.ASM汇编源程序MASMABC.ASM形成目标程序ABC.OBJ连接目标程序LINKABC.OBJ有连接错误信息?形成可执行程序ABC.EXE装入可执行程序到内存,并执行D:\ABC下一程序用DEBUG调试可执行程序D:\DEBUGABC.EXE找到原因YNYNNYN有汇编错误信息?Y运行结果正确?用DEBUG调试程序查错?点击“运行”三.具体操作步骤举例第一步:COMMAND三.具体操作步骤举例DOS提示符三.具体操作步骤举例进入EDIT编辑环境三.具体操作步骤举例第二步:三.具体操作步骤举例编辑源程序三.具体操作步骤举例编辑完后,准备存盘三.具体操作步骤举例另存为……三.具体操作步骤举例三.具体操作步骤举例三.具体操作步骤举例退出EDIT环境三.具体操作步骤举例对源程序进行汇编源程序名源程序17行语法错第三步:三.具体操作步骤举例重新进入EDIT,打开源程序,进行改错三.具体操作步骤举例类型不明确,两存储器单元之间不能直接传送数据三.具体操作步骤举例1.改正2.存盘3.退出三.具体操作步骤举例重新汇编三.具体操作步骤举例对目标文件进行连接第四步:三.具体操作步骤举例目标文件名三.具体操作步骤举例用DEBUG对可执行文件进行调试第五步:三.具体操作步骤举例DEBUG提示符用R命令显示各寄存器内容三.具体操作步骤举例用U命令反汇编三.具体操作步骤举例用T命令单步执行一条指令三.具体操作步骤举例三.具体操作步骤举例用D命令显示存储器单元内容三.具体操作步骤举例三.具体操作步骤举例三.具体操作步骤举例三.具体操作步骤举例三.具体操作步骤举例三.具体操作步骤举例三.具体操作步骤举例三.具体操作步骤举例三.具体操作步骤举例用P命令单步执行一个过程三.具体操作步骤举例用Q命令退出DEBUG三.具体操作步骤举例三.具体操作步骤举例用G命令设置断点,连续(全速)运行程序的调式方法三.具体操作步骤举例用G命令连续执行到断点处三.具体操作步骤举例用D命令显示存储器单元内容三.具体操作步骤举例用G命令连续执行到断点处三.具体操作步骤举例用D命令显示存储器单元内容三.具体操作步骤举例用N命令命名用L命令装入程序DEBUG装入用户可执行文件的另一种方法三.具体操作步骤举例用E命令修改内存三.具体操作步骤举例三.具体操作步骤举例三.具体操作步骤举例用D命令显示存储器单元内容DEBUG常用命令汇总表(一)命令名格式功能R格式1:R显示所有寄存器中的内容.格式2:R寄存器名显示修改寄存器的内容U格式1:U[地址]从指定地址开始反汇编格式2:U地址范围对指定的地址范围进行反汇编D格式1:D[地址]从指定地址开始显示内存单元内容格式2:D地址范围显示地址范围内的内存单元内容E格式:E地址[数据]把给定的数据送到指定地址开始连续的内存单元中命令名格式功能T格式:T[=地址][x]从指定的地址开始跟踪x条指令.N格式:N[磁盘][路径]文件名在指定的盘,路径下建立文件G格式:G[=地址][断点]从指定地址开始执行程序,到断点处停下来.W格式:W[地址]从地址开始的内存块写文件.L格式:L[地址]将N命令指定的文件调入指定的内存地址.DEBUG常用命令汇总表(二)DEBUG常用命令汇总表(三)命令名格式功能A格式:A[地址]从指定地址开始,对输出的语句汇编到内存.P格式:P[=地址][x]执行一个循环直到中断,x代表执行循环的次数.Q格式:Q结束并退出DEBUG程序.I格式:I端口地址从指定的端口地址读一个字节,并显示出来.O格式:O端口地址值将值送到指定端口.上机要点及复习重点一、汇编语言基础1.掌握机器语言、机器语言程序、汇编语言、汇编语言源程序、汇编、汇编程序等概念。2.掌握汇编语言中表达式,特别是属性表达式及属性修改操作符PTR的应用。3.熟练掌握DB、DW、DD变量定义伪指令的应用,会画出变量定义语句汇编后的存储器分配示意图。上机要点及复习重点二、8086指令系统1.数据传送类指令掌握MOV、XCHG、LEA、XLAT、PUSH、POP等指令的应用。2.算术运算类指令掌握加法、减法、乘法、除法、BCD数调整等指令的应用及对标志位的影响。上机要点及复习重点3.掌握逻辑运算类指令(AND、OR、XOR、NOT、TEST)的应用及对标志位的影响。4.掌握移位指令(SHL、SHR、SAL、SAR)、循环移位指令(ROL、ROR、RCL、RCR)等指令的应用。上机要点及复习重点三、汇编语言程序设计1.掌握汇编语言程序设计步骤。2.熟练掌握汇编语言源程序的完整结构及相应的伪指令的意义。3.掌握分支程序设计时应注意的几个问题,会设计简单的分支程序。4.掌握循环程序的基本结构及循环程序的设计,会用气泡排序法进行二重循环程序设计。上机要点及复习重点5.掌握子程序设计时的几个问题,包括:子程序的定义方法CALL、RET指令的应用(注意段内、段间子程序调用与返回时现场的保护与恢复以及堆栈的变化情况)主程序与子程序之间参数的传递方法用户信息的保护与恢复方法子程序说明文件包含的内容上机要点及复习重点6.熟练掌握DOS的01H、02H、09H、0AH功能的调用方法。7.掌握字符串处理指令(MOVS、CMPS、SCAS、STOS、LODS)的共同约定以及应用8.掌握宏指令的定义及调用方法上机要点及复习重点四、汇编语言程序的上机调试1.掌握汇编语言程序设计上机的基本步骤。2.掌握DEBUG的R、U、T、G、D、E、A、N、L、Q等命令的功能及使用方法。上机作业(一)1.熟练掌握8086/8088的各种寻址方式及应用。2.掌握DEBUG调试程序中的一些常用命令的使用方法,为以后的实验打下基础。一.实验目的二.实验仪器微型计算机1台寻址方式练习上机作业(一)1.关于数据的寻址方式练习8086/8088提供多种方式实现操作数寻址,大体可分为7种:a.立即寻址b.寄存器寻址c.直接寻址d.寄存器间接寻址e.寄存器相对寻址f.基址变址寻址g.基址变址且相对寻址三.实验内容a-b要寻找的操作数与存储器无关。c-g要寻找的操作数在存贮器某单元,存贮器单元的地址由寻址方式确定。上机作业(一)掌握8086/8088的这些寻址方式,是学习汇编语言编程的关键。因此,我们编写了下面的程序段,以数据传送指令为例,列举了部份寻址方式,请同学们按下列要求认真完成。[1]在全屏幕编辑软件下,建立以下汇编语言源程序。上机作业(一)STACKSEGMENTSTACKDB0B0H,0B1H,0B2H,0B3H,0B4H,0B5H,0B6H,0B7H,DB0B8H,0B9HDB0BAH,0BBH,0BCH,0BDH,0BEH,0BFHDB10HDUP(00)STACKENDSDATA1SEGMENTDB0A0H,0A1H,0A2H,0A3HTABLEDW0A5A4HDB0A6H,0A7H,0A8H,0A9H,0AAH,0ABHDB0ACH,0ADH,0AEH,0AFHDATA1ENDS上机作业(一)DATA2SEGMENTDB0C0H,0C1H,0C2H,0C3H,0C4H,0C5H,0C6H,0C7HDB0C8H,0C9H,0CAH,0CBH,0CCH,0CDH,0CEH,0CFHDATA2ENDSCODESEGMENTASSUMECS:CODE,DS:DATA1,ES:DATA2,SS:STACKSTART:MOVAX,DATA1MOVDS,AXMOVAX,DATA2MOVES,AXMOVBX,0004HMOVCX,0005H上机作业(一)MOVBP,0003HMOVSI,0002HMOVDI,0001HMOVAX,CX;以下指令按后表要求完成MOVAX,500HMOVAX,TABLEMOVAX,ES:[BX]MOVAX,[BX+05H]MOVAX,SS:[BX]+03HMOVAX,TABLE[BX]MOVAX,07H[BX]MOVAX,[BP]上机作业(一)MOVAX,TABLE[BP]MOVAX,08H[BP]MOVAX,[BP+06H]MOVAX,DS:[BP+03H]MOVAX,[BP]+05HMOVAX,ES:[SI+03H]MOVAX,[DI+06H]MOVAX,[DI]+05HMOVAX,TABLE[SI]MOVAX,[SI]MOVAX,TABLE[DI]MOVAX,[SI]+05H上机作业(一)MOVAX,[BX][DI+01H]MOVAX,[BX][SI]+03HMOVAX,TABLE[BX][SI]MOVAX,ES:[BX][DI]MOVAX,[BP][DI+02H]MOVAX,TABLE[BP][DI]MOVAX,ES:[BP][SI]MOVAX,[BP][SI+05H]MOVAX,03H[BP][DI]MOVAX,[BP][SI]MOVAX,[BP+02H][DI+03H]MOVAX,TABLE[BP+02H][DI+03H]MOVAH,4CHINT21HCODEENDSENDSTART上机作业(一)[2]用MASM.EXE宏汇编程序对以上源程序进行汇编,其方法为:MASM文件名.ASM;回车此时,如果源程序中无语法错误,则在磁盘上形成文件名.OBJ文件。[3]用LINK.EXE连接程序对文件名.OBJ文件进行连接,其方法为:LINK文件名.OBJ;回车此时,如果连接正确,则在磁盘上形成:文件名.EXE可执行文件。[4]对源程序中从MOVAX,CX开始以下所有指令按下表进行计算。上机作业(一)指令SRC寻址方式SRC的地址AX推算值AX实际值MOVAX,CX寄存器寻址无地址0005H0005HMOVAX,500H立即数寻址无地址0500H0500HMOVAX,TABLE直接寻址DS:0004HA5A4HA5A4HMOVAX,ES:[BX]寄存器间接寻址ES:0004HC5C4HC5C4HMOVAX,[BX+05H]寄存器相对寻址DS:0009HAAA9HAAA9HMOVAX,SS:[BX]+03H寄存器相对寻址SS:0007HB8B7HB8B7HMOVAX,TABLE[BX]寄存器相对寻址DS:0008HA9A8HA9A8HMOVAX,07H[BX]寄存器相对寻址DS:000BHACABHACABHMOVAX,[BP]寄存器相对寻址SS:0003HB4B3HB4B3H上机作业(一)指令SRC寻址方式SRC的地址AX推算值AX实际值MOVAX,TABLE[BP]寄存器相对寻址DS:0007HA8A7HA8A7HMOVAX,08H[BP]寄存器相对寻址SS:000BHBCBBHBCBBHMOVAX,[BP+06H]寄存器相对寻址SS:0009HBAB9HBAB9HMOVAX,DS:[BP+03H]寄存器相对寻址DS:0006HA7A6HA7A6HMOVAX,[BP]+05H寄存器相对寻址SS:0008HB9BBHB9BBHMOVAX,ES:[SI+03H]寄存器相对寻址ES:0005HC6C5HC6C5HMOVAX,[DI+06H]寄存器相对寻址DS:0007HA8A7HA8A7HMOVAX,[DI]+05H寄存器相对寻址DS:0006HA7A6HA7A6HMOVAX,TABLE[SI]寄存器相对寻址DS:0006HA7A6HA7A6H上机作业(一)指令SRC寻址方式SRC的地址AX推算值AX实际值MOVAX,[SI]寄

1 / 84
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功