寻址方式与基本指令实验

2020-04-13 22:39

西 安 邮 电 大 学

(计算机学院)

课内实验报告

实验名称: 寻址方式与基本指令实验

专业名称: 班 级: 学生姓名: 学号(8位): 指导教师: 实验日期:

一. 实验目的及实验环境

1、熟悉80X86寻址方式及基本指令功能,进一步理解和巩固课堂学习内容。 2、掌握汇编语言程序设计上机过程,掌握汇编语言源程序结构,为后续汇编语言程序设计打好基础。 3、熟悉Microsoft的DEBUG或Borland的Turbo DEBUG 调试工具的使用方法。

二.实验预习要求

1、熟悉汇编语言程序设计上机步骤。 2、熟悉DEBUG调试工具的使用方法。

3、复习80X86操作数寻址方式及基本指令。

4、了解实验内容,并在实验前根据课堂所学知识回答有关问题,以便在实验中验证。

三.实验内容

1.源程序如下: DATA SEGMENT

NUM DB 82H,68H,88H SUM DB? DATA SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX

MOV BX,OFFSET NUM MOV AL,[BX] INC BX

ADD AL,[BX] INC BX

ADD AL,[BX] MOV SUM,AL MOV AH,4CH INT 21H CODE ENDS END START

读懂源程序,使用EDIT生成名为EX11.ASM的源程序,汇编生成EX11.OBJ文件和EX11.LST文件,连接生成EX11.EXE文件;用EDIT打开EX11.LST文件,了解.LST文件包含的信息;使用DEBUG调试工具单步执行EX11.EXE程序,注意观察IP值的变化,并回答下列问题。

(1)程序装入后,代码段寄存器CS的内容为 04AFH ,代码段第一条可执行指令MOV

AX,DATA对应的机器代码为8ED8,它是一个字节指令,注意观察执行该指令时IP值的变化情况,该指令源操作数DATA的寻址方式是立即数寻址,其值为04AEH

(2)执行完MOV DS,AX指令后,数据段寄存器DS的内容为04AEH,源程序在数据中定义的数据 82H、68H和88H被装入的存储单元的物理地址分别。

(3)程序中第一条ADD AL,[BX]指令对应的机器代码0207H,它是一个2指令字节,注意观察执行该指令时IP值的变化情况;该指令中源操作数的寻址方式为寄存器间接寻址,该操作数所在存储单元的逻辑地址(DS):(BX)为04AF:000E,其物理地址为0207;执行完该指令后(AL)=82H,CF=0,OF=0,ZF=0,SF=0,AF=0,PF=0;若两操作数为无符号数,计算结果是否正确;若两操作数为带符号数,计算结果是否正确;若计算结果正确,结果是正数还是负数。

(4)执行完第二条ADD AL,[BX]指令后(AL)=72H,CF=0,OF=0,ZF=0,SF=0,AF=0,PF=0;若两操作数为无符号数,计算结果是否正确错误;若两操作数为带符号数,计算结果是否正确错误。

(5)指令MOV SUM,AL中目的操作数的寻址方式为寄存器寻址。该指令执行完后,注意观察(DS):0003H单元中值的变化,该单元的值变为00H。

2.源程序如下:

STACK SEGMENT stack

STL DW 100H DUP(?) STACK ENDS CODE SEGMENT

ASSUME CS:CODE,SS:STACK START:MOV AX,STACK MOV SS,AX

MOV SP,LENGTH STL

MOV AX,0101101100001010B MOV BX,0100110010100011B PUSH AX PUSH BX ADD AX,BX POP AX POP BX AND AX,BX MOV AH,4CH INT 21H CODE ENDS END START

读懂源程序,编辑,汇编,连接生成EX12.ASM、EX12.OBJ、EX12.LST、EX12.EXE文件;使用DEBUG单步执行EX12.EXE文件,并回答以下问题。

(1)代码段的前三条指令MOV AX,STACK、MOV SS,AX和MOV SP,LENGTH STL的功能为堆栈初始化,试问执行完这三条指令后,堆栈栈底所在单元的逻辑地址(SS):(SP)为 04AE:0003H;执行PUSH AX指令后堆栈指针寄存器(SP)= 0100 H,此时,(SS):(SP+1)和(SS):(SP)单元的值为04AE,5B0A H;执行完PUSH BX后(SP)=00FC H,此时,(SS):(SP+1)和(SS):(SP)单元的值为5B0A,4CA3 H;执行完POP AX后(SP)= 00FCH;执行完POP BX后(SP)= 0000 H;此时(AX)= 4CA3 H,(BX)= 5B0A H。 (2)执行ADD AX,BX指令后(AX)= 0H,CF=0,OF=0 ,ZF= 0 ,SF= 1 ,AF= 0 ,PF= 0 ;若两操作数为无符号数,计算结果是否正确正确 若两操作数为带符号数,

计算结果是否正确不正确

(3)执行AND AX,BX指令后(AX)= 4802 H,CF= 0 ,OF= 0 ,ZF= 0 ,SF= 0 ,AF= 0 ,PF= 0 。

3.指出下列指令的错误原因,上机运行,观察汇编程序(MASM.EXE)给出的出错信息,改正后再上机验证。 (1)MOV BP,BL (2)MOV [BX],[BP] (3)MOV [BX],20H (4)INC [SI]

(5)ADD AX,[SI+DI] (6)SHL AX,3

(7)PUSH 2000H (8)POP AL (9)MOV CS,AX (10)MOV DS,1000H

四.执行结果

图1

图2

2

图3

图4

图5

五.总结

本次实验为寻址方式与基本指令实验,我们熟悉了微机原理的上机环境,进行了寻址实验,熟悉了基本指令,实验进行比较顺利,通过计算机看到寄存器的工作非常直观,实验中遇到的问题都得到解决。


寻址方式与基本指令实验.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2017级高一年级第一学期工作计划

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: