《计算机原理与汇编语言》课程设计报告.docx

《计算机原理与汇编语言》课程设计报告.docx

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《计算机原理与汇编语言》课程设计报告

中南大学 计算机原理与汇编语言课程设计报告 目录:实验一:使用子程序,计算出1000 以内的素数,以十进制形式输出。1、需求分析 2、总体设计3、详细设计4、调试分析5、测试结果 6、附录:带注释的源程序。实验二:计算50以内Fibonacci 数,以十进制形式输出。1、需求分析 2、总体设计3、详细设计4、调试分析5、测试结果 6、附录:带注释的源程序。三.实验三:从键盘输入年份,通过计算后,输出该年份是否为闰年的信息。1、需求分析 2、总体设计3、详细设计4、调试分析5、测试结果 6、附录:带注释的源程序。四.实验四:反向输出一个整数1、需求分析 2、总体设计3、详细设计4、调试分析5、测试结果 6、附录:带注释的源程序。五.课程设计总结六.参考文献一.实验一使用子程序,计算出1000 以内的素数,以十进制形式输出。1、需求分析 程序的功能:以十进制形式输出1000以内的素数变量以及数组需求:需要一个变量count来计数,以便于素数的输出;需要一个数组sushu来存放计算过程中得到的素数寄存器需求:在汇编里面,除法运算只能是16位除以8位或者32位除以16位,1000比255大,因此要用32位除以16,要用dx,ax来存放除数,bx存放被除数2、总体设计程序开始将求得素数以十进制输出计算素数并储存程序结束3、详细设计求素数的算法素数的约数只有1和本身bool isPrime(int n){ if(n 2) return false; for(int i = 2; i n; ++i) if(n%i == 0) return false; return true;}数据要以十进制输出,ASCII码要加上48dispsushu proc near lea si,sushu mov cx,count;控制输出L5: mov bx,[si] call disp10 mov dl,20h mov ah,2 int 21h add si,2 loop L5 ret dispsushu endp disp10 proc near;该子程序的作用是将BX中的数以十进制形式输出push cxmov cx,100d;转化百位mov ax,bxmov dx,0div cxmov bx,dxmov dl,aladd dl,30h;加48,变成字符型mov ah,2int 21hmov cx,10d;转化十位mov ax,bxmov dx,0div cxmov bx,dxmov dl,aladd dl,30hmov ah,2int 21hmov dl,bladd dl,30h;转化个位mov ah,2int 21hpop cxretdisp10 endp4、调试分析编写过程中遇到了一些问题这个错误系因为将count变量设为db型,而后面的数据存储时,用的是字节dw型这个错误找了好久,后来发现是个位输出程序有误,忘记了将余数赋给dl5、测试结果 更正错误后,输出如下:6、附录:带注释的源程序。DATAS SEGMENT ;此处输入数据段代码 count dw 0;计数器 sushu dw 1000 dup(?);存放素数 information db The sushu between 1 and 1000 are:,$;显示素数的提示信息DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 lea dx,information;显示提示信息 mov ah,9 int 21h mov ah,2 mov dl,0dh int 21h mov dl,0ah int 21h call jisuan call dispsushu MOV AH,4CH INT 21H jisuan proc near lea di,sushu mov ax,2L1: cmp ax,1000 ja exit;大于1000跳出子循环 mov bx,2L2: cmp bx,ax jae L3;小于ax的数都不能被ax整除,是素数 push ax mov dx,0 div bx cmp dx,0;判断是否能整除 pop ax jz L4;能整除,就ax加1,判断下一个数是否是素数 inc bx;不能整除就bx加1,继续判断 jmp L2L3: inc count mov [di],ax;保存ax add di,2;存储单元指针指向下一个L4: inc ax jmp L1exit:ret jisuan endp dispsushu proc

文档评论(0)

zhanghc + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档