汇编语言与微机原理实验指导书

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《汇编语言与微机原理》实验指导书

编写者:董建怀

编写时间:2009-9-10

实验一.熟悉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:\WINDOWS>d:并按“ENTER”,显示:D:\>(盘符更改为D:)。

2、建立子目录(文件夹)MD,如C:\>MD FOX (在当前驱动器C盘下创建子目录FOX)。

3、显示当前目录CD,如:C:\>CD WINDOWS,显示:C:\WINDOWS>(即从当前目录C:\进入到C:\WINDOWS目录)。

4、显示磁盘目录的内容DIR,如:C:\WINDOWS>,显示的内容即为当前目录C:\WINDOWS中的所有内容。

5、返回上级目录,如:C:\WINDOWS>cd ..,显示C:\>(即从当前目录C:\WINDOWS返回到它的上级目录C:\)。

练习:在MS-DOS方式下,进入C:\WINDOWS\SYSTEM目录,并显示该目录下的所有内容,然后返回C盘的根目录(C:\)。

(三)、熟悉调试程序DEBUG.EXE的应用,练习DEBUG的常用命令

实验1:利用DEBUG.EXE的A、D、U命令,观察指令MOV AH,[BX+DI+50H],对应的机器码是什么?,该指令是几个字节的指令?并对机器码进行反汇编,观察对应的指令是什么?ADD [2345H][BX][DI],DX的机器码是什么? 该指令是几个字节的指令? 并对机器码进行反汇编,观察对应的指令是什么?

实验2:在DEBUG.EXE方式下(利用A、G命令), 分析两个数相加(C8H+EFH)的结果,运用的指令为:mov AL,0efh

add AL,0c8h

问题:

(1).运算后两个数的和是多少?(提示:运算的结果在AL寄存器中)

(2).6位状态标志位(AF,CF,OF,PF,SF,ZF)分别是多少?

(3).当相加的两个数均为无符号数时运算的结果是否正确?为什么?

(4).当相加的两个数均为带符号数时运算的结果是否正确?为什么?

(5).相加的两个数分别为5B0AH, 4CA3H时,通过上机再回答(1)---(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)=?;并上机验证。

MOV SP,2000H

MOV AX,3000H

MOV BX,5000H

PUSH AX

PUSH BX

POP AX

实验(三).逐条分析下列指令的运行结果和指出执行下列的程序片段后,(DS)=?,(AX)=?,(BX)=? ;并上机验证。

MOV AX,2000H

MOV DS,AX

MOV WORD PTR[0050H],5678H

MOV WORD PTR[0052H],1234H

MOV SI,0030H

LDS AX,[SI][0020H]

LEA BX,[SI][0020H]

七、写出实验小结,内容包括实验心得(收获)、不足之处和今后应注意的问题。

实验三. 算术运算类指令练习

一、实验要求: 必做

二、实验类型: 验证

三、实验学时:2

四、实验地点:机房

五、实验目的:

1、熟悉掌握DEBUG常用命令A、U、D、E、R、T、G的使用。

2、对由算术运算类指令组成的简单程序进行调式验证。

六、实验内容:

实验(一).编写实现987654H+0ABCDEFH的指令序列,在DEBUG中进行调试,观察结果。

实验(二).设(DS)=3000H,(30100H)=30FFH。则指出分别运行指令INC BYTE PTR[0100H]和INC WORD PTR[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的结果,结果是放在哪

相关文档
最新文档