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

上传人:夺命阿水 文档编号:16380 上传时间:2022-06-30 格式:DOC 页数:6 大小:311KB
返回 下载 相关 举报
寻址方式与基本指令实验.doc_第1页
第1页 / 共6页
寻址方式与基本指令实验.doc_第2页
第2页 / 共6页
寻址方式与基本指令实验.doc_第3页
第3页 / 共6页
寻址方式与基本指令实验.doc_第4页
第4页 / 共6页
寻址方式与基本指令实验.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

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

1、一,实验目的与实验环境1,熟悉80*86寻址方式与根本指令的功能,进一步理解和巩固课堂学习容。2,掌握汇编语言设计上机过程,掌握汇编语言源程序结构,为后续汇编语言程序设计打好根底。3,熟悉Microsoft的DEBUG或Borland的Turbo DEBUG调试工具的使用方法。1. 实验容1,读懂以下源程序,使用EDIT生成名为EX11.ASM的源程序,汇编生成EX11.OBJ文件和EX11.LST文件,连接生成EX11,EXE文件;用EDIT打开EX11.LST文件,了解.LST文件包含的信息;使用DEBUG调试工具单步执行EX11.EXE程序,注意观察IP值得变化,并回答以下问题。(1)

2、程序装入后,代码段存放器CS的容为1172H,代码段第一条可执行指令MOV AX,DATA对应的机器代码为B87111H,它是一个3字节指令,注意观察执行该指令时IP值的变化情况,该指令源操作数DATA的寻址方式为立即数寻址其值为1171(2) 执行完MOV DS,AX指令后,数据段存放器DS的容为1171H,源程序在数据段中定义的数据82H,68H和88H被装入的存储存储单元的物理地址分别为11792H11778H和11798H。(3) 程序中第一条ADD AL,BX指令对应的机器代码为8A07它是一个2字节指令,注意观察执行该指令时IP值的变化情况;该指令中源操作数的寻址方式为存放器间接寻

3、址;该操作数所在的存储单元的逻辑地址DS:(BX)为1171:0000,其物理地址为11170H;执行完该指令后AL=EAH,CF=0,OF=(0),ZF=(0),SF=(1) ,AF=(0) ,PF= (0);假设操作数为无符号数,计算结果是否正确正确?假设两操作数为带符号数,计算结果是否正确错误?假设计算结果正确,结果是正数还是负数负数?(4) 执行完第二条ADD AL,BX指令后,AL=(68)H,CF=(1) ,OF= (1),ZF=(0) ,SF= (1),AF=(1) ,PF=(1) ;假设两操作数为无符号数,计算结果是否正确错误?假设两操作数为带符号数,计算结果是否正确正确?(5

4、) 指令MOV SUM,AL中的目录操作数的寻址方式为直接寻址?该指令执行完后,注意观察DS:0003H单元中值的变化,该单元的值变为68H。2 读懂以下源程序;编辑、汇编、连接生成EX12.ASM、EX12.OBJ、EX12.LST、EX12.EXE文件;使用DEBUG单步执行EXE12.EXE文件,并回答以下问题。(1) 代码段的前三条指令MOV AX,STACK、MOV SS,AX和MOV SP,LENGTH STL的功能为堆栈初始化,试问执行完这三条指令后,堆栈栈底所在单元的逻辑地址SS:SP为_1171:0100_;执行PUSH AX指令后堆栈指针存放器SP =_00FE_H,此时,

5、SS:SP+1和SS:SP单元的值为_5B08_H;执行完PUSH BX后SP=_00FC_H,此时,SS:SP+1和SS:SP单元的值为_4CA3_H;执行完POP AX后SP=_00FE_H;执行完POP BX后SP=_0100_H;此时AX=_4CA3_H,BX=_5B0A_H。请读者通过对堆栈操作指令执行情况的观察,进一步掌握进、出栈操作过程。(2) 执行ADD AX,BX后AX=A7ADH,CF=(0),OF=1,ZF=0,SF=1,AF=0,PF=0;假设两操作数为无符号数,计算结果是否正确?正确假设两操作数为带符号数,那么计算结果是否正确?错误。(3) 执行AND AX,BX指令

6、后AX=4802H,CF=0,OF=1,ZF=0,SF=1,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+DISI和DI不能同时出现在操作数中(6) SHL AX,3循环次数大于1,应该间接移位(7) PUSH 2000H不能对立即数进展堆栈操作(8) POP ALPOP不能对字节进展操作(9) MOV CS,AXCS

7、不能作为目的操作数(10) MOV DS,1000H立即数不能送入数据段三方案设计4 测试数据与运行结果实验一调试程序图连接生成EX11.EXE文件并对其进展调试实验二调试程序图五总结由于初次接触汇编语言上机环境,对于汇编的过程还是有点陌生,按照实验指导书上的容一步步进展练习,熟练掌握了汇编,连接,调试的根本步骤。也明白了任何语言的编写都非常严谨,哪怕一个符号的错误都会导致运行的错误,但对于程序,我们不仅要能看明白他的意思,更要懂得如何运用。6 附录:源代码电子版实验一代码DATA SEGMENT NUM DB 82H,68H,88H SUM DB ?DATA ENDSCODE SEGMENT

8、 ASSUME CS:CODE,DS:DATASTART: 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 21HCODE ENDS END START实验二代码STACK SEGMENT stack STL DW 100H DUP(?)STACK ENDSCODE SEGMENTASSUMECS:CODE,SS:STACKSTART:MOV AX,STACKMOV SS,AXMOV SP,LENGTH STLMOV AX,01010BMOV BX,00011BPUSH AXPUSH BXADD AX,BXPOP AXPOP BXAND AX,BXMOV AH,4CHINT 21HCODE ENDS END START

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

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号