正文描述:《2011年考研数学必做主观题5200题精析.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验一两个多位十进制数相加的实验一、实验目的学习数据传送和算术运算指令的用法熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。二、实验内容将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。三、程序框图图3-1四、参考程序清单程序名:XIANGJ.ASM实验分析:预测和实验运行查看内存代码段中,MOVSI,OFFSETDATA1END和MOVDI,OFFSETDATA2END是分别将data1、data2最后一个数的偏移地址
2、给SI、DI。同时,把SI、DI存放在DX、BP中。程序先把两个数每一位分别减去30H,SI、DI分别减去1.BX是循环控制量,只要它不为0,就JNZ到两个执行数继续执行上述的过程。预测结果:0309010704040500-0802循环后的实际运行结果,如下。.十进制数再加30存入,预测最后结果为六.实验总结通过本次实验,学习了数据传送和一些算术运算指令的用法,基本了解了一些指令的用法和作用,这第一次实验也让我熟悉在cmd环境中建立、汇编、链接、调试和运行汇编语言程序的过程,运用到主要debug命令中的t命令来跟踪查看,以及d命令查看
3、结果。七,实验中应注意的问题实验在开始之前先应该将AX,DS初始化,即在cmd操作时先t两次,接下来的设计验过程才能正常运行。实验二排序实验一、实验目的掌握用汇编语言编写排序程序的思路和方法。二、实验内容将指定内存出开始的数据(最多为4位数)按从大到小的顺序排列。第一个数字表示数据的个数(不是要比较的数值!!!)。三、程序流程图图3-2四、程序清单程序名:PAIX.ASM五.实验结果预测及分析本实验目的是将8,234,35,67,876,54,39,765,237这几个十进制数排序比较大小,但程序运行结果会是十六进制,所以将这几个十进制
4、数转化为十六进制数分别为:(234)D=EAH(35)D=23H(67)D=43H(876)D=36CH(54)D=36H(39)D=27H(765)D=2FDH(237)D=EDH所以预测排序结果按照从小到大顺序为6C03FD02ED00EA004300360027六.实验总结预测结果与实际结果相同,虽然看起来多了0800,但程序中的8指的是要比较的数字个数,不参与比较,看结果的时候要注意到这一点。实验三计算N!实验一、实验目的通过编制一个阶乘计算程序,了解高级语言中的数学函数是怎样在汇编语言一级上实现的。二、实验内容编制计算N!的程
5、序,数值N由键盘输入,结果在屏幕上输出,N的范围是0到0xFF。即刚好能够被一个16位寄存器容纳。编制阶乘程序的难点在于随着N的增大,其结果远不是寄存器所能容纳的,这样就必须将结果放在一个内存缓冲区中,然而乘法运算只能限制两个字相乘,因此要确定好算法,依次从缓冲区中取数,进行两字相乘,并将DX中的高16位积作为产生的进位。程序根据阶乘的定义:N!=N·(N-1)·(N-2)·……·2·1,从左往右依次计算,结果保存在缓冲区BUF中,缓冲区BUF按结果由低到高依次排列。程序首先将BP初始化为存放N值,然后使BP为N-1,以后BP依次减1,
6、直至变化为1,每次让BP与BUF中的字单元按由低到高的次序相乘,低位结果AX仍保存在相应的BUF字单元中,最高位结果DX则送到进位字单元CY中,以作为高字单元相乘时从低字来的进位,初始化CY为0,计算结果的长度随着乘积运算而不断增长,由字单元LEN指示,当最高字单元与BP相乘时,若DX不为0,则结果长度要扩展。三、程序流程图四、程序清单程序名:JISN.ASM。五.实验结果预测:预测结果是:当N=8时,输出结果为:9D80H;当N=12时,输出结果为:16BEECCAH而程序得到结果和预期结果一致,说明程序得出的结果是正确的。(1)运行
7、程序得到的结果:(2)心得体会随着N的取值增大,其结果远超寄存器所能容纳,必须把结果放在一个内存缓冲区中,而乘法运算只限于两字相乘,所以要依次从缓冲区中取数,进行两字相乘,并将DX中高16位积作为产生的进位
显示全部收起
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。