预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

微机原理第一次试验 寻址方式与基本指令实验 班级: 姓名: 学号: 日期: 一、试验目的 (1)熟悉80x86寻址方式及基本指令的功能,进一步理解和巩固课堂学习内容。 (2)掌握汇编语言程序设计上机过程和汇编语言源程序结构,为后续汇编语言程序设计打好基础。 (3)熟悉Microsoft的DEBUG或Borland的TurboDebugger调试工具的使用方法。 二、实验内容 (1)读懂下列源程序,使用EDIT生成名为EX11.ASM的源程序,汇编生成EX11.OBJ文件和EX11.LST文件,连接生成EX11.EXE程序,注意观察IP值的变化,并回答下列问题。 ①程序装入后,代码段寄存器CS的内容为0913H,代码段第一条可执行指令“MOVAX,DATA”对应的机器代码为B81209H,它是一个3字节指令,注意观察执行该指令时IP值的变化情况,该指令源操作数DATA的寻址方式是立即数寻址方式,其值为0912H。 ②执行完“MOVDS,AX”指令后,数据段寄存器DS的内容为0912H,源程序在数据段中定义的数据82H、68H和88H被装入的存储单元的物理地址分别为09120H、09121H和09122H。 ③程序中的一条“ADDAL,[BX]”指令对应的机器代码为0207H,它是一个2字节指令,注意观察执行该指令时IP值的变化情况;该指令中源操作数的寻址方式为寄存器间接寻址方式,该操作数所在存储单元的逻辑地址(DS):(BX)为0912:0001,其物理地址为09121H;执行完该指令后(AL)=EAH,CF=0,OF=0,ZF=0,SF=1,AF=0,PF=0;若两操作数为无符号数,计算结果是否正确?若两操作数为带符号数,计算结果是否正确?若计算结果正确,结果是正数还是负数? 答:若两操作数为无符号数,计算结果正确;若两操作数为带符号数,计算结果正确;结果应为负数。 ④执行完第二条“ADDAL,[BX]”指令后(AL)=72H,CF=1,OF=1,ZF=0,SF=0,AF=1,PF=1;若两操作数为无符号数,计算结果是否正确?若两操作数为带符号数,计算结果是否正确?答:若两操作数为无符号数,计算结果不正确;若两操作数为带符号数,计算结果不正确。 ⑤指令“MOVSUM,AL”中,目的操作数的寻址方式为直接寻址方式。该指令执行完后,注意观察(DS):0003H单元中值的变化,该单元的值变为72H。 DATASEGMENT NUMDB82H,68H,88H SUMDB? DATAENDS CODESEGMENT ASSUMECS:CODE,DS:DATA START:MOVAX,DATA MOVDS,AX MOVBX,OFFSETNUM MOVAL,[BX] INCBX ADDAL,[BX] INCBX ADDAL,[BX] MOVSUM,AL MOVAH,4CH INT21H CODEENDS ENDSTART (2)读懂下列源程序,编辑、汇编、连接生成EX12.ASM、EX12.OBJ、EX12.LST、EX12.EXE文件使用DEBUG单步调试EX12.EXE文件,并回答一下问题。 ①代码的前三段指令“MOVAX,STACK”、“MOVSS,AX”和“MOVSP,LENGTHSTL”的功能为堆栈初始化,试问执行完这三条指令后,堆栈栈底所在单元的逻辑地址(SS):(SP)为0912:0100;执行“PUSHAX”指令后,堆栈指针寄存器(SP)=00FEH,此时(SS):(SP+1)和(SS):(SP)单元的值为0AH和5BH;执行完“PUSHBX”后,(SP)=00FCH;此时(SS):(SP+1)和(SS):(SP)单元的值为4CH和A3H;执行完“POPAX”后,(SP)=00FEH;执行完“POPBX”后,(SP)=0100H,此时(AX)=4CA3H,(BX)=5B0AH。请读者通过对堆栈操作指令执行情况的观察,进一步掌握进、出栈操作过程。 ②执行“ADDAX,BX”指令后,(AX)=A7ADH,CF=0,OF=1,ZF=0,SF=1,AF=0,PF=0,(注意考虑PF值与计算结果高8位有无关系);若两操作数为无符号数,计算结果是否正确?若两操作数为带符号数,计算结果是否正确?答:若两操作数为无符号数,计算结果正确;若两操作数为带符号数,计算结果不正确。 ③执行“ANDAX,BX”指令后,(AX)=4802H,CF=0,OF=0,ZF=0,SF=0,AF=0,PF=0. STACKSEGMENTstack STLDW100HDUP(?) STACKENDS CODESEGMENT ASSUMECS:CODE,SS:STACK START:MOVAX,STACK