全球旧事资料 分类
图中操作实现的功能是将ADD和ADC两条语句替换为CALL语句,通过A命令可以直接修改程序指令,通过插入NOP指令使CPU空闲。也可以通过M命令拷贝CALLSUB1的机器代码到目的地址,但操作容易出错,原因是源地址和目标地址指令长度不一致。
当重新使用编辑软件,把源程序最后一句中的STAR去掉。再次生成可执行文件,再次DEBUG时。当使用U命令时,结果如下图所示。可以看到,没有ENDSTAR语句,编译器将不知道代码段的入口地址是多少,导致从数
第6页
f微机原理软件实验报告据段开始译码,后续译码全部紊乱。ENDSTAR的作用是指示编译器程序结束,同时告诉编译器程序执行时代码段的入口地址。
五、实验总结
此次实验是微机原理软件实验的第一次实验。由于平时只是注重理论的学习,没有多少实际编程和调试经验,上机操作还不熟练。以后需要加强实践。汇编的调试很重要,有时比写出源代码更重要。代码是很容易写出的,就看是好是坏,编程技巧是否足够,编程经验是否丰富,但代码的测试,排错确实十分困难的,很难把每一种可能的情况考虑周到,用户的操作也可能出现各种不可预知的情况,往往细小的错误甚至是不明确的地方都可能成为错误的隐患。这也就是为何软件开发三个之一的人写代码,三分之二的人进行测试。这次实验我学会了汇编程序的基本调测方法,也体会到汇编的调试和CC或者Java调试的差异。汇编的调试需要深入堆栈和内存区,关心每一地址和每一个指令。这也体现汇编是底层语言的特点。
第7页
f微机原理软件实验报告
实验二分支、实验二分支、循环程序设计
一、实验目的
1开始独立进行汇编语言程序设计;2掌握基本分支,循环程序设计;3掌握最简单的DOS功能调用。
二、实验内容
1安排一个数据区,内存有若干个正数,负数和零。每类数的个数都不超过9。2编写一个程序统计数据区中正数,负数和零的个数。3将统计结果在屏幕上显示。4(扩展题)统计出正奇数、正偶数,负奇数、负偶数以及零的个数。
三、预习思考
1十进制数09所对应的ASCII码是什么?如何将十进制数09在屏幕上显示出来?答:0~9分别对应ASCII码的30H~39H。欲将十进制数0~9显示在屏幕上,只需要用二进制数0~9分别加上30H即可。2如何检验一个数为正,为负或为零?你能举出多少种不同的方法?答:方法有多种,现举出两种。一是直接用CMP命令和0比较,然后用JZ等命令进行判断;二是和0相比是否相等,然后用该数(假设为8位)和10000000相与,取r
好听全球资料 返回顶部