四川大学微机原理实验报告.docxVIP

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
. 微机原理实验报告 学 院 : 专业班级: 姓 名 学 号 . . 实验一 汇编语言编程基础 1.3 汇编语言程序上机操作和调试训练 一.功能说明 运用 8086 汇编语言,编辑多字节非压缩型 BCD 数除法的简单程序,文件名取为*.ASM。 运用 MASM﹒EXE 文件进行汇编,修改程序中的各种语法错误,直至正确,形成*.OBJ 文件。 运用 LINK.EXE 文件进行连接,形成*.EXE 文件。 仔细阅读和体会 DEBUG 调试方法,掌握各种命令的使用方法。 运用 DEBUG。EXE 文件进行调试,使用单步执行命令—T 两次,观察寄存器中内容的变化,使用察看存储器数据段命令—D,观察存储器数据段内数值。 再使用连续执行命令—G,执行程序,检查结果是否正确,若不正确可使用 DEBUG 的设置断点,单步执行等功能发现错误所在并加以改正。 二.程序流程图 设置被除数、商的地址指针 设置被除数、商的地址指针 设置单位除法次数计数器 取被除数一位作十进制调整 作字节除法、存商 N 被除数各位已除完? Y 显示运算结果 结束 结束 三.程序代码 修改后的程序代码如下: ADB A DB 9,6,8,7,5 B DB 5 C DB 5 DUP (0) N EQU 5 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA . . START: MOV AX,DATA MOV DS,AX MOV ES,AX CLD LEA SI,A LEA DI,C MOV CX,N MOV AH,0 LP1: LODSB AAD DIV B STOSB LOOP LP1 MOV CX,N LEA DI,C LP2: MOV DL,[DI] ADD DL,30H MOV AH,2 INT 21H INC DI LOOP LP2 MOV AH,4CH INT 21H CODE ENDS END START 四.实验感想和收获 通过这次试验,我对微机原理上级试验环境有了初步的认识,可以较为熟练地对汇编语言进行编译,汇编及连接,同时也学会了用 DEBUG 调试程序,收获很大。 在这次试验中我也遇到了一些困难。在刚开始我发现自己无法打开MASM.EXE,计算机提示是由于版本不兼容。我这才想起来我的操作系统是 64 位的,和该软件版本不兼容。不过我并没有放弃,经过我的摸索之后,我发现用DOSBOX 这个程序可以解决我的电脑运行不了该程序的问题。在解决了第一个难题后,我开始着手改正试验 1.3 中的语法错误和逻辑错误,但是无论我怎么修改却始终都无法通过编译,并且基本上每句话都有编译错误。根据我多年编程的经验来看,这应该是中文输入法在搞鬼,之后我耐心地把程序重新输了一遍,果然通过了编译,并且之后的连接也进行的很顺利。在用 DEBUG 调试时发现得出的结果也很正确。 尽管这次的实验内容非常简单,仅仅是教会我们一些基本的操作,但我却明显感觉到了汇编语言和 C 语言等高级语言所不同的地方。越是底层,基础的东西就越不人性化,用 C 语言一行代码就能实验的功能在汇编语言中可能要花上数十行。看来汇编语言的学习不是几周就能速成的,必须要有长年累月的积淀才能掌握。 . . 实验二 设计汇编语言程序 一.功能说明 练习 1. 实验题目:编程计算下列表达式:A=90,B=-70,C=5,Y 均为有符号数,计算 Y=2 ×(A+B)+(A×C)÷5 要编写一些稍微复杂的程序,我们会遇到一段程序被反复执行,这样,我们会用到 LOOP 指令。使用该指令时,需在CX 中装入循环次数。练习 2.码转换程序设计 编制程序,把十进制数 15786 转化成二进制数。 提示:15786=1×10×10×10×10+5×103+7×102+8×10+6,循环CX=5 练习 3.编制程序,从键盘输入最多 5 个数,求他们的和,存入SUM。 练习 4.用“冒泡“法对一组数 300,250,280,240,260,按从小到大的顺序排列。 提示:用冒泡的方法对一组数据元素排序,它的基本方法是:将相邻的两个元素通过比较进行排序,通过多次,多遍的邻元素排序,实现整个一组数的排序。 对于 5(N)个元素,整个排序通过 4 遍(=N-1)邻元素排序完成。每一遍的排序由若干次邻元素的排序组成。 4 遍排序中,邻元素的排序依次为 4,3,2,1 遍。完成第一遍排序后,最大数沉底,已经到达它应占据的位置,不需要参加下一遍的排序。 外循环的次数为CX=4 次(N-1),内循环的次数为 4,3,2,1(DEC CX) 排序遍数 本遍排序前 第一次排序 后 第二次排序 后 第三次排序 后 第四次排序 后 1 300,250,280, 250,300,280, 250,28

文档评论(0)

hao187 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档