- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机实验报告一.docx
微机实验报告一
实验题目
求从TABLE开始的10个无符号字节数的的和,结果存放在SUM中。
求出10个数中的最大值和最小值。
二、实验目的
1、学习并掌握IDE86集成开发环境的使用,编辑、编译、链接、调试与运行等步骤
编辑:源程序的输入、修改。
编译:常见编译出现的语法错误的修改。
连接:形成可执行文件
运行:全速运行、断点设置、单步运行、单步跟踪;观察寄存器、标志寄存器值;观察 数据存储器中的数据;
实验内容
1、参考书例4-8,P165 (第3版161页),输入该程序,编译、连接、运行以单步形式观察程序的执行过程;
(1)执行每条指令后,寄存器AX、CX、SI及标志位CF的值。
(2)分别查看前5个数值和、前8个数之和。
(3)查看以TABLE开始的存储器单元中的内容。
2、修改例4-8程序,求出10个数中的最大值和最小值,并以单步形式观察如何求出最大值、最小值。
1、文字叙述设计思路
本次试验的主要目的是熟悉汇编语言编程编译环境,会用IDE86对汇编语言进行调试,会通过IDE86的汇编编译环境监视通用寄存器的变化及内存空间的一些值。
第一个程序的基本思想是先将10个无符号字节数依次存放在某一个连续的内存空间。将AX作为累加寄存器,将10个无符号数依次赋值给BX,然后与AX累加,最后输出的AX值即为10个无符号数的和。再将AX的值赋给SUM值即可。
第二个程序的基本设计思想是:将AX,BX分别用作存储最大值、最小值的寄存器,然后将10个数依次与AX、BX进行比较,若大于AX,将其赋给AX,小于BX,将其赋值给BX,直至10个数比较结束,即可得到最大值AX和最小值BX。
流程图
程序一:求和 程序二:求最大值最小值
四、实验源程序(必要的文字注释)
程序一:
DATA SEGMENT
TABLE DB 12H,23H,34H,45H,56H
DB 67H,78H,89H,9AH,0FDH
SUM DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
START:MOV AX,DATA
MOV DS,AX
LEA SI,TABLE
程序二、
MOV CX,10
XOR AX,AX
NEXT: ADD AL,[SI]
ADC AH,0
INC SI
LOOP NEXT
MOV SUM,AX
HLT
CODE ENDS
END START
DATA SEGMENT
NUM DB 12H,23H,34H,45H,56H,67H,78H,89H,9AH,0FDH
MAX DB ?
MIN DB ?
ZIFU DB 4 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
LEA SI,NUM
MOV CX,10
MOV AH,0
MOV BH,0
MOV AL,[SI]
MOV BL,[SI]
NEXT1:CMP AL,[SI]
JNC NEXT2
MOV AL,[SI]
JMP NEXT3
NEXT2:CMP BL,[SI]
JC NEXT3
MOV BL,[SI]
NEXT3:INC SI
LOOP NEXT1
MOV MAX,AL
MOV MIN,BL
MOV AH,4CH
INT 21H
CODE ENDS
END START
五、实验运行结果
实验一、
六、实验中遇到的问题及解决方法
问题1:用IDE86直接编写程序非常的不方便,因为不能直接复制粘贴,但是在用记事本写时又没有办法修改后缀名(机房的能够改),最后解决的方法是找到一个已有的asm文件,复制一份,这个文件就可以当asm文件使用了。
七、心得体会
通过本次上机实验,我学会了使用IDE 86编译汇编程序,对汇编程序的基本架构有了更加深入的了解,而且由于IDE86不能直接粘贴复制程序很不方便,所以我可以使用记事本来写汇编程序,然后用IDE86来进行编译即可,方便快捷。也学会了用Debug来调试程序,通常语法错误是很容易发现的和改正的,但非语法类的错误却不见得容易发现,所以可以单步运行,用监视寄存器和内存中的值的方式来寻找程序中不易发现的错误。
文档评论(0)