数据为:123456123000实验结果如下图所示。
本实验较为简单,意在练习基本的分支、循环结构。关键的点在于和0比较,区分正负和零,然后在正数和负数中判断奇偶,这里巧妙地使用了和1与之后加和到偶数中,最后利用统计的数的个数减去偶数得奇数的方法。使得程序更加流畅和简洁,思路也更清晰。第13页
f微机原理软件实验报告
五、实验总结
实验中设计好的计算思路是很重要的,汇编的代码由各种跳转和逻辑结构组成,需要考虑代码间的逻辑关系,否则容易出错。语法错误是很显而易见的,但逻辑错误却不容易发现。当有大量判断和循环存在时,需要考虑清楚程序跳转的条件和方向,这点和高级语言有较大差异,汇编本质上没有循环和分支,都是通过将IP赋予代码区地址进行跳转实现的,程序员需要自主控制如何跳转,向何处跳转,这点和CC中饱受诟病的goto语句处理有些类似。考虑到实验练习的重点在分支循环结构,此次写代码时暂时没有使用子程序或宏,导致输出部分代码有些过长。
第14页
f微机原理软件实验报告
实验三代码转换程序设计
一、实验目的
1掌握几种最基本的代码转换方法;2运用子程序进行程序设计。
二、实验内容
1从键盘上输入若干两位十进制数,寻找其中的最小值,然后在屏幕上显示出来。2两个十进制数之间的分隔符,输入结束标志自定,但要在报告中说明。3对输入要有检错措施,以防止非法字符输入,并有适当的提示。4将整个程序分解为若干模块,分别用子程序实现。在报告中要给出模块层次图。
三、预习思考
1如何将输入的两个字符0~9变为十进制或二进制数?答:输入的字符0~9是ASCII码表示的,对应于30H~39H,通过减去30H,可以转换为相应的计算机数。2如何将选出的最小值二进制或十进制变为ASCII码再进行显示?答:如果采用输入时把ASCII码转换为数字,然后比较数字的大小再输出,那么输出时还需要把数字再次转换为ASCII码。这是不明智的。可以直接读入并存储数字的ASCII码,容易比较其大小,然后直接输出ASCII码即可。3你觉得采用二进制运算还是十进制运算更适合于这个实验?答:采用二进制或者十进制都需要进行ASCII码到数字的转换和其反向转换,换用新的思路可以大大简化编程负担。即直接使用数字对应的ASCII比较,分别比较十位和个位,最后直接输出字符即可。
第15页
f微机原理软件实验报告
四、实验过程
一流程图一流程图
二模块层次图二模块层次图
第16页
f微机原理软件实验r