您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 汇编语言与微机原理实验指导书
1《汇编语言与微机原理》实验指导书编写者:董建怀编写时间:2009-9-102实验一.熟悉DOS环境及DEBUG调试软件的使用一、实验要求:必做二、实验类型:验证三、实验学时:2四、实验地点:机房五、实验目的:1、.熟悉DOS环境和DEBUG调试软件的使用方法。2、掌握DEBUG常用命令A、U、D、E、R、T、G的使用,用DEBUG调试简单程序段。六、实验内容:(一)、熟悉DOS环境1、MS-DOS的启动:开始—程序—附件—MS-DOS方式(命令提示符)。2、MS-DOS全屏方式和窗口方式的切换:“ALT”+“ENTER”。3、MS-DOS工具栏的打开:“ALT”+空格键。4、MS-DOS方式下的选定、复制和粘贴:利用菜单栏下”编辑”菜单项中的“标记”、“复制”和“粘贴”的功能来实现。5、MS-DOS方式的退出:EXIT。练习:进入MS-DOS方式,并将屏幕上显示的全部内容复制到一WORD文档中。(二)、熟悉一些常用的DOS命令1、更改盘符,如:C:\WINDOWSd:并按“ENTER”,显示:D:\(盘符更改为D:)。2、建立子目录(文件夹)MD,如C:\>MDFOX(在当前驱动器C盘下创建子目录FOX)。3、显示当前目录CD,如:C:\CDWINDOWS,显示:C:\WINDOWS(即从当前目录C:\进入到C:\WINDOWS目录)。4、显示磁盘目录的内容DIR,如:C:\WINDOWS,显示的内容即为当前目录C:\WINDOWS中的所有内容。5、返回上级目录,如:C:\WINDOWScd..,显示C:\(即从当前目录C:\WINDOWS返回到它的上级目录C:\)。练习:在MS-DOS方式下,进入C:\WINDOWS\SYSTEM目录,并显示该目录下的所有内容,然后返回C盘的根目录(C:\)。(三)、熟悉调试程序DEBUG.EXE的应用,练习DEBUG的常用命令3实验1:利用DEBUG.EXE的A、D、U命令,观察指令MOVAH,[BX+DI+50H],对应的机器码是什么?,该指令是几个字节的指令?并对机器码进行反汇编,观察对应的指令是什么?ADD[2345H][BX][DI],DX的机器码是什么?该指令是几个字节的指令?并对机器码进行反汇编,观察对应的指令是什么?实验2:在DEBUG.EXE方式下(利用A、G命令),分析两个数相加(C8H+EFH)的结果,运用的指令为:movAL,0efhaddAL,0c8h问题:(1).运算后两个数的和是多少?(提示:运算的结果在AL寄存器中)(2).6位状态标志位(AF,CF,OF,PF,SF,ZF)分别是多少?(3).当相加的两个数均为无符号数时运算的结果是否正确?为什么?(4).当相加的两个数均为带符号数时运算的结果是否正确?为什么?(5).相加的两个数分别为5B0AH,4CA3H时,通过上机再回答(1)---(4)的问题。七、写出实验小结,内容包括实验心得(收获)、不足之处和今后应注意的问题。4实验二.数据传送类指令练习一、实验要求:必做二、实验类型:验证三、实验学时:2四、实验地点:机房五、实验目的:1、熟悉掌握DEBUG常用命令A、U、D、E、R、T、G的使用。2、对由数据传送类指令组成的简单程序进行调式验证。六、实验内容:实验(一)、运用数据传送指令(几条),实现如下操作:1、把一个数64H,送到以(DS)=3000H,偏移地址(EA)为1064H的存储单元中,在DEBUG方式下进行汇编并运行,用D命令观察该存储单元(3000H:1064H)中的内容是否为64H?2、通过指令使(31064H)=64H(同第1小题),用指令使(DS)=3001H,且将地址为31064H的字节内容(64H),送到AL寄存器中去。在DEBUG方式下,观察AL寄存器中的内容是否为64H?实验(二).逐条分析下列指令的运行结果和指出执行下列的程序片段后,(SP)=?,(AX)=?,(BX)=?;并上机验证。MOVSP,2000HMOVAX,3000HMOVBX,5000HPUSHAXPUSHBXPOPAX实验(三).逐条分析下列指令的运行结果和指出执行下列的程序片段后,(DS)=?,(AX)=?,(BX)=?;并上机验证。MOVAX,2000HMOVDS,AXMOVWORDPTR[0050H],5678HMOVWORDPTR[0052H],1234HMOVSI,0030HLDSAX,[SI][0020H]LEABX,[SI][0020H]5七、写出实验小结,内容包括实验心得(收获)、不足之处和今后应注意的问题。6实验三.算术运算类指令练习一、实验要求:必做二、实验类型:验证三、实验学时:2四、实验地点:机房五、实验目的:1、熟悉掌握DEBUG常用命令A、U、D、E、R、T、G的使用。2、对由算术运算类指令组成的简单程序进行调式验证。六、实验内容:实验(一).编写实现987654H+0ABCDEFH的指令序列,在DEBUG中进行调试,观察结果。实验(二).设(DS)=3000H,(30100H)=30FFH。则指出分别运行指令INCBYTEPTR[0100H]和INCWORDPTR[0100H]后,地址为30100H和30101内存单元的内容。编写指令序列上机验证。实验(三)、乘、除指令练习(1)利用适当的指令,上机求出两个不带符号数3CH×80H的结果,且运行后(CF)=,(OF)=。并说明为什么CF、OF会取该值?(2)利用适当的指令,上机求出两个不带符号数0CH×10H的结果,且运行后(CF)=,(OF)=。并说明为什么CF、OF会取该值?(3)利用适当的指令,上机求出两个不带符号数3C80H×3030H的结果,且运行后(CF)=,(OF)=。并说明为什么CF、OF会取该值?(4)利用适当的指令,上机求出两个带符号数0C80H×8000H的结果,且运行后(CF)=,(OF)=。并说明为什么CF、OF会取该值?(5)利用适当的指令,上机求出两个带符号数005DH×FF87H的结果,且运行后(CF)=,(OF)=。并说明为什么CF、OF会取该值?(6)利用适当的指令,上机求出两个带符号数A30BH÷E0FFH的结果是。实验(四)、十进制数运算指令练习(作业中要求写出指令)(1)通过适当的指令,上机求出两个十进数58+69的结果,结果是放在哪7些寄存器或状态标志位中,它们的值分别是多少?(2)通过适当的指令,上机求出两个十进数8+9的结果,结果是放在哪些寄存器中或状态标志位中,它们的值分别是多少?(3)通过适当的指令,上机求出两个十进数78-29的结果,结果是放在哪些寄存器或状态标志位中,它们的值分别是多少?七、写出实验小结,内容包括实验心得(收获)、不足之处和今后应注意的问题。8实验四逻辑、移位及串操作类指令练习一、实验要求:必做二、实验类型:验证三、实验学时:2四、实验地点:机房五、实验目的:1、熟悉掌握DEBUG常用命令A、U、D、E、R、T、G的使用。2、对由逻辑、移位运算及串操作算术运算类指令的简单程序进行调式验证。六、实验内容:实验(一)、写一指令序列完成将AX寄存器的最低4位置1,最高3位清0,第7、8、9位取反,其余位不变。若运行前(AX)=FFFFH,则运行后(AX)=?实验(二)、设在数据段中对应的地址为3000:0000的字变量X中的内容为无符号数0078H,在数据段中对应的地址为3000:0002的字变量Y中的内容为无符号数108CH,编写指令求出Z,Z=2X-Y,Z在数据段中,对应的地址为3000:0004。实验(三)、设(BX)=6D16H,(AX)=1100H,分析执行下面的三条批令后AX、BX中的内容分别是多少?并上机验证之。MOVCL,06HROLAX,CLSHRBX,CL实验(四)、指出下列程序段的功能,并上机验证之。CLDLEADI,[0404H]MOVCX,0080HMOVAX,5050H、REPSTOSW实验(五)、设(IP)=3D8FH,(CS)=4050H,(SP)=0F17CH,当执行CALL2000:0094H后,试指出(IP)、(CS)、(SP)、((SP))、((SP)+1)、((SP)+2)和((SP)+3)的内容。七、写出实验小结,内容包括实验心得(收获)、不足之处和今后应注意的问题。9实验五寻址方式与基本指令实验一、实验要求:必做二、实验类型:验证三、实验学时:2四、实验地点:机房五、实验目的:1、熟悉80X86寻址方式及基本指令的功能,进一步理解和巩固课堂学习内容。2、掌握汇编语言程序设计上机、调试过程和汇编语言源程序结构,为后续汇编语言程序设计打好基础。3、熟悉MASM、LINK、CODEVIEW工具软件、MASMFORWINDOWS集成实验环境的使用方法。六、实验内容:(一)、读懂下列源程序,使用EDIT或”记事本”程序生成名为EX11.ASM的源程序,汇编生成EX11.OBJ文件和EX11.LST文件,连接生成EX11.EXE文件;用EDIT或”记事本”程序打开EX11.LST文件,了解.LST文件包含的信息;使用DEBUG调试工具单步执行EX11.EXE程序,注意观察IP值的变化,并回答下列问题。1.程序装入后,代码段寄存器CS的内容为H,代码段第一条可执行指令:MOVAX,DATA对应的机器代码为H,它是一个个字节的指令,注意观察执行该指令时IP值的变化情况,该指令源操作数DATA的寻址方式是,其值为。2.执行完MOVDS,DATA指令后,DS的内容为H,源程序在数据段中定义的数据82H,68H,88H被装入的存储单元的物理地址分别是H,H,H.3.程序中第一条ADDAL,[BX]指令对应的机器代码为H,它是一个个字节的指令,注意观察执行该指令时IP值的变化情况;该指令源操作数的寻址方式是,该操作数所在存储单元的逻辑地址(DS):(BX)为,其物理地址为H;执行完该指令后(AL)=H,CF=,OF=,ZF=,SF=,AF=,PF=;若两操作数为无符号数,计算结果是否正确?若两操作数为带符号数,计算结果是否正确?若计算结果正确,结果是正数还是负数?4.执行完第二条ADDAL,[BX]指令后(AL)=H,CF=,OF=,ZF=,SF=,AF=,10PF=;若两操作数为无符号数,计算结果是否正确?若两操作数为带符号数,计算结果是否正确?5.指令MOVSUM,AL中,目的操作数的寻址方式为。该指令执行完后,注意观察(DS):0003H单元中值的变化,该单元的值变为H。datasegmentnumdb82h,68h,88hsumdb?dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovbx,offsetnummoval,[bx]incbxaddal,[bx]incbxaddal,[bx]movsum,almovah,4chint21hcodeendsendstart(二)、读懂下列源程序,编辑、汇编、连接生成EX12.ASM、EX12.OBJ、EX12.LST、EX12.EXE文件,使有DEBUG单步执行EX12.EXE文件,并回答以下问题。1.代码段的前三条指令:movax,stack,movss,ax,movsp,lengthstl的功能为堆栈初始化,试问执行完这三条指令后,(SS)=,(SP)=;执行pushax后,(SP)=H,此时(SS):(SP+1)和(SS):(SP)两单元的值为H,执行完pushbx后,(SP)=H,此时(SS):(SP+1)和(SS):(SP)两单元的值为H,执行完popax后,(SP)=H,执行完popbx后,(SP)=H,此时(AX)=H,(BX)=H。通过对堆栈操作指令执行情况的观察,进一步掌握进、出栈操作过程。-u1734:0000B83317MOVAX,17331734:00038ED8MOVDS,AX1734:0005BB0000MOVBX,00001734:00088A07MOV
本文标题:汇编语言与微机原理实验指导书
链接地址:https://www.777doc.com/doc-2368325 .html