文档详情

微机原理 寻址方式与基本指令实验.doc

发布:2017-12-16约5.36千字共11页下载文档
文本预览下载声明
西 安 邮 电 大 学 (计算机学院) 课内实验报告 实验名称: 寻址方式与基本指令实验 专业名称: 通信工程 班 级: 通工1203 学生姓名: 杜媛媛 学号(8位): 指导教师: 宁 晓 菊 实验日期: 2014年10月29日 一. 实验目的及实验环境 1、熟悉80x86寻址方式及基本指令的功能,进一步理解和巩固课堂学习内容 2、掌握汇编语言程序设计上机过程,掌握汇编语言程序结构,为后续汇编语言 程序设计打好基础。 3、熟悉Microsoft的DEBUG或Borland的Turbo DEBUG调试工具的使用方法。 二. 实验内容 二、实验内容 (1)读懂下列源程序,使用EDIT生成名为EX11.ASM的源程序,汇编生成EX11.OBJ 文件和EX11.LST文件,连接生成EX11.EXE程序,注意观察IP值的变化,并回答下列问题。 ①程序装入后,代码段寄存器CS的内容为0913H,代码段第一条可执行指令“MOV AX, DATA”对应的机器代码为 B81209H,它是一个 3字节指令,注意观察执行该指令时IP值的变化情况,该指令源操作数DATA的寻址方式是 立即数寻址方式,其值为0912H。 ②执行完“MOV DS, AX”指令后,数据段寄存器DS的内容为 0912 H,源程序在数据段中定义的数据82H、68H和88H被装入的存储单元的物理地址分别为09120H、09121H和09122H。 ③程序中的一条“ADD AL, [BX]”指令对应的机器代码 为0207 H,它是一个 2 字节指令,注意观察执行该指令时IP值的变化情况;该指令中源操作数的寻址方式为寄存器间接寻址方式,该操作数所在存储单元的逻辑地址(DS):(BX)为0912:0001,其物理地址为09121H;执行完该指令后(AL)=EAH,CF=0,OF=0,ZF=0,SF=1,AF=0,PF=0 ;若两操作数为无符号数,计算结果是否正确?若两操作数为带符号数,计算结果是否正确?若计算结果正确,结果是正数还是负数? 答:若两操作数为无符号数,计算结果正确;若两操作数为带符号数,计算结果正确;结果应为负数。 ④执行完第二条“ADD AL, [BX]”指令后(AL)= 72 H,CF=1,OF= 1,ZF=0,SF=0,AF= 1,PF=1; 若两操作数为无符号数,计算结果是否正确?若两操作数为带符号数,计算结果是否正确?答:若两操作数为无符号数,计算结果不正确;若两操作数为带符号数,计算结果不正确。 ⑤指令“MOV SUM, AL”中,目的操作数的寻址方式为直接寻址方式 。该指令执行完后,注意观察(DS):0003H单元中值的变化,该单元的值变为 72 H。 DATA SEGMENT NUM DB 82H, 68H, 88H SUM DB ? DATA ENDS CODE 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 (2)读懂下列源程序,编辑、汇编、连接生成EX12.ASM、EX12.OBJ、EX12.LST、EX12.EXE文件使用DEBUG单步调试EX12.EXE文件,并回答一下问题。 ①代码的前三段指令“MOV AX, STACK”、“ MOV SS, AX”和“ MOV SP, LENGTH STL”的功能为堆栈初始化,试问执行完这三条指令后,堆栈栈底所在单元的逻辑地址(SS): (SP)为0912:0100 ;执行“PUSH AX”指令后,堆栈指针寄存器(SP)=00FEH,此时(S
显示全部
相似文档