寻址方式与基本指令实验.doc

上传人:聆听****声音 文档编号:359355 上传时间:2023-04-29 格式:DOC 页数:7 大小:321.50KB
下载 相关 举报
寻址方式与基本指令实验.doc_第1页
第1页 / 共7页
寻址方式与基本指令实验.doc_第2页
第2页 / 共7页
寻址方式与基本指令实验.doc_第3页
第3页 / 共7页
寻址方式与基本指令实验.doc_第4页
第4页 / 共7页
寻址方式与基本指令实验.doc_第5页
第5页 / 共7页
寻址方式与基本指令实验.doc_第6页
第6页 / 共7页
寻址方式与基本指令实验.doc_第7页
第7页 / 共7页
亲,该文档总共7页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

寻址方式与基本指令实验.doc

《寻址方式与基本指令实验.doc》由会员分享,可在线阅读,更多相关《寻址方式与基本指令实验.doc(7页珍藏版)》请在冰点文库上搜索。

寻址方式与基本指令实验.doc

西安邮电大学

(计算机学院)

课内实验报告

专业名称:

班级:

学生姓名:

学号(8位):

指导教师:

实验日期:

一,实验目的及实验环境

1,熟悉80*86寻址方式及基本指令的功能,进一步理解和巩固课堂学习内容。

2,掌握汇编语言设计上机过程,掌握汇编语言源程序结构,为后续汇编语言程序设计打好基础。

3,熟悉Microsoft的DEBUG或Borland的TurboDEBUG调试工具的使用方法。

一.实验内容

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

(1)程序装入后,代码段寄存器CS的内容为(1172H),代码段第一条可执行指令MOVAX,DATA对应的机器代码为(B87111H),它是一个(3)字节指令,注意观察执行该指令时IP值的变化情况,该指令源操作数DATA的寻址方式为(立即数寻址)其值为(1171)

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

(3)程序中第一条ADDAL,[BX]指令对应的机器代码为(8A07)它是一个

(2)字节指令,注意观察执行该指令时IP值的变化情况;该指令中源操作数的寻址方式为(寄存器间接寻址);该操作数所在的存储单元的逻辑地址(DS):

(BX) 为(1171:

0000),其物理地址为(11170H);执行完该指令后(AL)=(EA)H,CF=(0),OF=(0),ZF=(0),SF=

(1),AF=(0),PF=(0);若操作数为无符号数,计算结果是否正确(正确)?

若两操作数为带符号数,计算结果是否正确(错误)?

若计算结果正确,结果是正数还是负数(负数)?

(4)执行完第二条ADDAL,[BX]指令后,(AL)=(68)H,CF=

(1),OF=

(1),ZF=(0),SF=

(1),AF=

(1),PF=

(1);若两操作数为无符号数,计算结果是否正确(错误)?

若两操作数为带符号数,计算结果是否正确(正确)?

(5)指令MOVSUM,AL中的目录操作数的寻址方式为(直接寻址)?

该指令执行完后,注意观察(DS):

0003H单元中值的变化,该单元的值变为(68)H。

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

(1)代码段的前三条指令MOVAX,STACK、MOVSS,AX和MOVSP,LENGTHSTL的功能为堆栈初始化,试问执行完这三条指令后,堆栈栈底所在单元的逻辑地址(SS):

(SP)为_1171:

0100____;执行PUSHAX指令后堆栈指针寄存器(SP)=__00FE__H,此时,(SS):

(SP+1)和(SS):

(SP)单元的值为__5B08___H;执行完PUSHBX后(SP)=___00FC__H,此时,(SS):

(SP+1)和(SS):

(SP)单元的值为__4CA3___H;执行完POPAX后(SP)=__00FE___H;执行完POPBX后(SP)=___0100__H;此时(AX)=__4CA3___H,(BX)=__5B0A___H。

请读者通过对堆栈操作指令执行情况的观察,进一步掌握进、出栈操作过程。

(2) 执行ADDAX,BX后(AX)=(A7AD)H,CF=(0),OF=1,ZF=0,SF=1,AF=0,PF=0;若两操作数为无符号数,计算结果是否正确?

(正确)若两操作数为带符号数,则计算结果是否正确?

(错误)。

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

3指出下列指令错误的原因,上机运行,观察汇编程序(MASM。

EXE)给出的出错信息,改正后再上机验证。

(1)MOVBP,BL类型不匹配

(2)MOV[BX],[BP] 源操作数和目的操作数不能同时为寄存器

(3)MOV[BX],20H 操作数类型不明确

(4)INC[SI] 操作数类型不明确

(5)ADDAX,[SI+DI] SI和DI不能同时出现在操作数中

(6)SHLAX,3 循环次数大于1,应该间接移位

(7)PUSH2000H 不能对立即数进行堆栈操作

(8)POPAL POP不能对字节进行操作

(9)MOVCS,AX CS不能作为目的操作数

(10)MOVDS,1000H 立即数不能送入数据段

三.方案设计

四.测试数据及运行结果

实验一调试程序图

连接生成EX11.EXE文件并对其进行调试

实验二调试程序图

五.总结

由于初次接触汇编语言上机环境,对于汇编的过程还是有点陌生,按照实验指导书上的内容一步步进行练习,熟练掌握了汇编,连接,调试的基本步骤。

也明白了任何语言的编写都非常严谨,哪怕一个符号的错误都会导致运行的错误,但对于程序,我们不仅要能看明白他的意思,更要懂得如何运用。

六.附录:

源代码(电子版)

实验一代码

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

实验二代码

STACKSEGMENTstack

STLDW100HDUP(?

STACKENDS

CODESEGMENT

ASSUME CS:

CODE,SS:

STACK

START:

MOVAX,STACK

MOVSS,AX

MOVSP,LENGTHSTL

MOVAX,01010B

MOVBX,00011B

PUSHAX

PUSHBX

ADDAX,BX

POPAX

POPBX

ANDAX,BX

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

顶管位置主要位于粉质粘土层,地下水位以下。

开挖竖井过程中如出现异常地质情况,及时与设计单位联系,进行协商处理。

施工前应与铁路供电段、电务段、通信段联系,首先探明铁路两侧施工范围内各种管线位置、埋深、并进行监护和防护。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2