微机原理与接口技术实验报告_西安邮电

上传人:xmg****18 文档编号:120212927 上传时间:2020-02-05 格式:DOC 页数:52 大小:3.55MB
返回 下载 相关 举报
微机原理与接口技术实验报告_西安邮电_第1页
第1页 / 共52页
微机原理与接口技术实验报告_西安邮电_第2页
第2页 / 共52页
微机原理与接口技术实验报告_西安邮电_第3页
第3页 / 共52页
微机原理与接口技术实验报告_西安邮电_第4页
第4页 / 共52页
微机原理与接口技术实验报告_西安邮电_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《微机原理与接口技术实验报告_西安邮电》由会员分享,可在线阅读,更多相关《微机原理与接口技术实验报告_西安邮电(52页珍藏版)》请在金锄头文库上搜索。

1、下载可编辑 西 安 邮 电 大 学 (计算机学院)微机原理与接口技术实验报告实验名称: 寻址方式与基本指令实验 专业名称: 班 级: 学生姓名: 学 号: 指导教师: 实验日期: 2017年10月31日寻址方式与基本指令实验1、实验目的1.1、熟悉80x86寻址方式及基本指令的功能,进一步理解和巩固课堂学习内容。1.2、掌握汇编语言程序设计上机过程, 掌握汇编语言源程序结构,为后续汇编语言程序设计打好基础。1.3、熟悉Microsoft的DEBUG或Borland的Turbo DEBUG调试工具的使用方法2 、实验预习要求2.1、认真阅读本书第一部分第1章,熟悉汇编语言程序设计上机步骤。2.2

2、、认真阅读本书第三部分,熟悉DEBUG调试工具的使用方法。2.3、复习80x86操作数寻址方式及基本指令(数据传送、算术运算和逻辑运算等)。2.4、了解实验内容,并在实验前根据课堂所学知识回答有关问题(个别取决于程序实际运行环境的问题除外),以便在实验时进行验证。3、 实验内容3.1、读懂下列源程序,使用EDIT生成名为EX11.ASM的源程序,汇编生成EX11.OBJ文件和EX11.LST文件,连接生成EX11.EXE文件;用EDIT打开EX11.LST文件,了解.LST文件包含的信息;使用DEBUG调试工具单步执行EX11.EXE程序,注意观察IP值的变化,并回答下列问题。(1) 程序装入

3、后,代码段寄存器CS的内容为_0913_H,代码段第一条可执行指令MOVAX, DATA对应的机器代码为_B81209_H,它是一个_3_字节指令,注意观察执行该指令时IP值的变化情况,该指令源操作数DATA的寻址方式是_立即数寻址_,其值为_0912H_。(2) 执行完MOVDS, DATA指令后,数据段寄存器DS的内容为_0912_H,源程序在数据段中定义的数据82H、68H和88H被装入的存储单元的物理地址分别为_09120_H、_09121_H和_09122_H。(3) 程序中第一条ADD AL, BX 指令对应的机器代码为_0207_H,它是一个_2_字节指令,注意观察执行该指令时I

4、P值的变化情况;该指令中源操作数的寻址方式为_寄存器间接寻址_,该操作数所在存储单元的逻辑地址(DS): (BX)为_ 0912:0001_,其物理地址为_09121_H;执行完该指令后(AL)=_EA_H,CF=_0_,OF_=_0_,ZF=_0_,SF=1,AF=0,PF=0;若两操作数为无符号数,计算结果是否正确_是_?若两操作数为带符号数,计算结果是否正确_是_?若计算结果正确,结果是正数还是负数_负_?(4) 执行完第二条ADD AL, BX 指令后(AL)=_72_H,CF=_1_,OF=_1_,ZF=_0_,SF=_0_,AF=_1_,PF=_1_;若两操作数为无符号数,计算结果

5、是否正确_否_?若两操作数为带符号数,计算结果是否正确_否_?3.2、指令MOV SUM, AL中目的操作数的寻址方式为_寄存器寻址_。该指令执行完后,注意观察(DS):0003H单元中值的变化,该单元的值变为_72_H。DATASEGMENT NUMDB 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,

6、AL MOV AH, 4CH INT 21HCODE 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,此时(SS): (SP+1)和(SS): (

7、SP)单元的值为 0AH和5B H;执行完“PUSH BX”后,(SP)= 00FC H;此时(SS): (SP+1)和(SS): (SP)单元的值为 4CH和A3 H;执行完“POP AX”后,(SP)= 00FEH;执行完“POP BX”后,(SP)= 0100 H,此时(AX)=4CA3 H,(BX)= 5B0A H。请读者通过对堆栈操作指令执行情况的观察,进一步掌握进、出栈操作过程。执行“ADD AX, BX”指令后,(AX)=A7AD H,CF=0 ,OF= 1,ZF=0 ,SF=1,AF=0 ,PF=0,(注意考虑PF值与计算结果高8位有无关系);若两操作数为无符号数,计算结果是否

8、正确正确?若两操作数为带符号数,计算结果是否正确不正确?执行“AND AX, BX”指令后,(AX)= 4802 H,CF=0 ,OF= 0,ZF=0 ,SF=0,AF=0 ,PF=0.STACKSEGMENTstack STLDW 100H DUP(?)STACKENDSCODESEGMENT ASSUMECS:CODE, SS:STACKSTART:MOVAX, STACK MOVSS, AX MOVSP, LENGTH STL;表达式“LENGTH STL ”的功能为计算STL中定义的变量的个数;汇编后其值为100H MOVAX, 0101101100001010B MOVBX, 010

9、0110010100011B PUSHAX PUSHBX ADDAX, BX POPAX POPBX ANDAX, BX MOVAH, 4CH INT21HCODE ENDS ENDSTART(3)指出下列指令的错误原因,上机运行,观察汇编程序(MASM.EXE)给出的出错信息,改正后上机验证。MOV BP, BLMOV BX, BP MOV BX, 20HINC SIADD AX,SI+DISHL AX, 3PUSH 2000HPOP ALMOV CS, AXMOV DS,1000H答:出错信息:warning A4031:Operand types must match错误原因:操作数类型

10、不匹配, BP 是一个16位寄存器,而BL是一个8位寄存器。 改正后:MOV BP, BX ; 出错信息:error A2052:Improper operand type错误原因:源操作数和目的操作数不能同时为存储器。改正后:MOV AX, BP MOV BX, AX ;出错信息:error: A2035:Operand must have size错误原因:源操作数长度不明确出错信息:error: A2035:Operand must have size错误原因:操作数的长度未指定出错信息:error: A2047:Multiple index registers错误原因:同时使用了多个变

11、址寄存器出错信息:error A2052:Improper operand type错误原因:循环次数大于1应该间接移位出错信息:error A2056:Immediate mode illegal错误原因:不能对立即数进行栈操作出错信息:error A2058:Byte register illegal错误原因:要求用字寄存器而使用了字节寄存器出错信息:error A2059:Illegal use of CS register错误原因:CS不能作为目的操作数出错信息:error A2056:Immediate mode illegal错误原因:立即数不能送入数据段4、 实验总结这是第一次上

12、机实验,并不知道具体怎样做,通过老师讲的知识和操作,理解和巩固了课堂学习内容,基本掌握了汇编语言程序设计上机过程和汇编语言源程序结构,为以后汇编语言程序设计打好基础。初步掌握了调试工具的使用方法。 西 安 邮 电 大 学 (计算机学院)微机原理与接口技术实验报告实验名称:字符及字符串输入输出与顺序程序设计 专业名称: 班 级: 学生姓名: 学 号: 指导教师: 实验日期: 2017年11月14日字符及字符串输入输出与顺序程序设计1、实验目的1.1、学习和掌握字符及字符串的输入输出方法。1.2、掌握顺序程序设计方法。1.3、进一步掌握调试工具的使用方法。2、实验内容从键盘输入两个一位十进制数,计

13、算这两个数之和,并将结果在屏幕上显示出来。2.1、问题分析比如使用功能号为01H的用于实现单个字符输入的DOS功能调用接收从键盘输入的两个十进制数8和6,这时计算机内部得到的是这两个数的ASCII码值38H和36H。由于数字09的ASCII码值与其代表的数值之间相差30H,因此将其减去30H即可得到以非压缩型BCD数形式表示的十进制数08H和06H,使用ADD指令对它们进行相加后结果为0EH(00001110B),显然需要用非压缩型BCD数加法调整指令对ADD的运算结果进行调整,调整后得到两个非压缩型BCD数01H和04H,将它们分别加上30H后变为其对应的ASCII码31H(1的ASCII码)和34H(4的ASCII码),然后调用功能号为02H用于单个字符输

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号