寻址方式与基本指令-微机原理实验报告_第1页
寻址方式与基本指令-微机原理实验报告_第2页
寻址方式与基本指令-微机原理实验报告_第3页
寻址方式与基本指令-微机原理实验报告_第4页
寻址方式与基本指令-微机原理实验报告_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、西安郵電大學微型计算机原理课内实验报告书院系名称:计算机学院实验题目:寻址方式与基本指令学生姓名: 专业名称:软件工程班 级:软件1003班学号: 指导教师:葛茂1 实验目的1、熟悉80x86寻址方式及基本指令的功能,进一步理解和巩固课堂学习内容。2、掌握汇编语言程序设计上机过程, 掌握汇编语言源程序结构,为后续汇编语言程序设计打好基础。3、熟悉Microsoft的DEBUG或Borland的Turbo DEBUG调试工具的使用方法2 实验预习要求1、认真阅读本书第一部分第1章,熟悉汇编语言程序设计上机步骤。2、认真阅读本书第三部分,熟悉DEBUG调试工具的使用方法。3、复习80x86操作数寻

2、址方式及基本指令(数据传送、算术运算和逻辑运算等)。4、了解实验内容,并在实验前根据课堂所学知识回答有关问题(个别取决于程序实际运行环境的问题除外),以便在实验时进行验证。3 实验内容1、 读懂下列源程序,使用EDIT生成名为EX11.ASM的源程序,汇编生成EX11.OBJ文件和EX11.LST文件,连接生成EX11.EXE文件;用EDIT打开EX11.LST文件,了解.LST文件包含的信息;使用DEBUG调试工具单步执行EX11.EXE程序,注意观察IP值的变化,并回答下列问题。(1) 程序装入后,代码段寄存器CS的内容为0893H,代码段第一条可执行指令MOVAX, DATA对应的机器代

3、码为B80E08H,它是一个3字节指令,注意观察执行该指令时IP值的变化情况,该指令源操作数DATA的寻址方式是立即数寻址,其值为1425。(2) 执行完MOVDS, DATA指令后,数据段寄存器DS的内容为8629H,源程序在数据段中定义的数据82H、68H和88H被装入的存储单元的物理地址分别为86290H、86291H和86292H。(3) 程序中第一条ADD AL, BX 指令对应的机器代码为0207H,它是一个2字节指令,注意观察执行该指令时IP值的变化情况;该指令中源操作数的寻址方式为寄存器间接寻址,该操作数所在存储单元的逻辑地址(DS): (BX)为8629:0001,其物理地址

4、为86291H;执行完该指令后(AL)=EAH,CF=0,OF=0,ZF=0,SF=1,AF=0,PF=0;若两操作数为无符号数,计算结果是否正确是?若两操作数为带符号数,计算结果是否正确错误?(4) 执行完第二条“ADD AL, BX” 指令后(AL)=72H,CF=1,OF=1,ZF=0,SF=0,AF=1,PF=1;若两操作数为无符号数,计算结果是否正确错误?若两操作数为带符号数,计算结果是否正确错误?(5) 指令MOV SUM, AL中目的操作数的寻址方式为寄存器寻址。该指令执行完后,注意观察(DS):0003H单元中值的变化,该单元的值变为72H。DATASEGMENT NUMDB

5、82H, 68H, 88H SUM DB ?DATA ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATASTART:MOVAX, 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 21HCODE ENDS END START2、 读懂下列源程序;编辑、汇编、连接生成EX12.ASM、EX12.OBJ、EX12.LST、EX12.EXE文件;使用DEBUG单步执行EX12.EXE文件,并回答以下问题

6、。(1) 代码段的前三条指令MOV AX, STACK、MOV SS, AX和MOV SP, LENGTH STL的功能为堆栈初始化,试问执行完这三条指令后,堆栈栈底所在单元的逻辑地址(SS): (SP)为8629:0100;执行PUSH AX指令后堆栈指针寄存器(SP)=00FEH,此时,(SS): (SP+1)和(SS): (SP)单元的值为5B0A:CEDC和083A:CFDE H;执行完PUSH BX后(SP)=CFD8H,此时,(SS): (SP+1)和(SS): (SP)单元的值为083A:CED8和C83A:CFDAH;执行完POP BX后(SP)=CFCCH;此时(AX)=00

7、00H,(BX)=CD44H。请读者通过对堆栈操作指令执行情况的观察,进一步掌握进、出栈操作过程。(2) 执行ADD AX, BX指令后(AX)=0000H,CF=NC,OF=OU,ZF=NE,SF=NG,AF=NA,PF=PO(注意考虑PF值与计算结果高8位有无关系);若两操作数为无符号数,计算结果是否正确正确?若两操作数为带符号数,计算结果是否正确正确?(3) 执行AND AX, BX指令后(AX)=4802H,CF=0,OF=0,ZF=0,SF=0,AF=0,PF=0。STACK SEGMENT stack STL DW 100H DUP(?)STACK ENDSCODE SEGMENT

8、 ASSUME CS:CODE,SS:STACKSTART:MOVAX, STACK MOV SS, AX MOV SP, LENGTH STL;表达式“LENGTH STL”的功能为计算STL中定义的变量的个数,;汇编后其值为100H ,详见教材5.2.2 MOV AX, 0101101100001010B MOV BX, 0100110010100011B PUSH AX PUSH BX ADD AX, BX POP AX POP BX AND AX, BX MOV AH,4CH INT 21HCODE ENDS END START3、 指出下列指令的错误原因,上机运行,观察汇编程序(MASM.EXE)给出的出错信息,改正后再上机验证。(1) MOVBP, BL正确(2) MOV BX,BP错误,两个操作数不能同时为寄存器操作数(3) MOVBX,20H错误,目的操作数类型不明确(4) INC SI错误,目的操作数类型不明确(5) ADDAX,SI+DI错误,存储器寻址中有效地址不能由两个变址寄存器组成(6) SHL AX,3错误,移位次数大于1时应用CL寄存器(7) PUSH2000H错误,堆栈指令的操作数不能是立即数(8

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论