还剩16页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
微机原理与汇编技术课程设计(论文)求以内素数⑵100院(系)名称专业班级______________________________________________________学号学生姓名______________________________________________________指导教师起止时间
2.4图求平均数程序流程
2.3课程设计的具体内容说明把送到、将的码送到在循环完毕后,采用的号调用将的数0〜99buf0~99ASCII bufldos9bufl据输出到屏幕上,即「输出到屏幕上99算法描述开始,输出素数1判断是否退出,不退出则到2q3按任意键继续程序3输出全部数据40T00按任意键,每按一次删除一个非素数5删除完毕,输出平均数67结束,退出程序
2.4课程设计中关键内容的分析设计说明程序data segmentinputldb Oah,Odh,if you want to quit,please pressQ/q!’db Oah,Odh,if you want toprint099,please press any other〜key!’,Oah,Odh,5$input2db Oah,Odh,if youwant to quit,please pressQ/q!’db Oah,Odh,if youwant tofind the prime number,please press any otherkey!,Oah,Odh,Oah,Odh,$input3db Oah,Odh,if youwant toquit,please pressQ/q!’db Oah,Odh,if youwant toget the avreage of the primenumbers,please press any otherkey,Oah,Odh,Oah,Odh,$‘input4db Oah,Odh,theavreage oftheprime numbersisinput5db Oah,Odh,press any key toquitbuf db99dup,0;用于存099〜buf1db99dup,//,Odh,Oah,J press anykey to continue!,Odh,Oah,$;用于放1~91buf2db,,Odh,Oah,$data endscode segmentassumeds:data,cs:code start:mov ax,datamov ds,axlea dx,inputlmov ah,9int21h mov ah,08h int21hcmp al,5Q5jE exit cmp al,q,je exitlea bx,bufmov ax,0mov al,1mov ex,99loopl:mov[bx],alinc alinc bx loop looplmov ex,99lea si,buf1lea bx,bufloop2:mov ax,0mov al,[bx_mov dl,10div dladd al,30h;十位asc码add ah,30h;个位asc码mov[si],almov[si+1],ahadd si,3add bx,1loop loop2lea dx,buf1mov ah,9int21hmov ah,08hint21h;显示0100〜jmp bbexit:mov ax,4c00hint21h;退出bb:lea dx,input2mov ah,9int21hmov ah,08hint21hcmp al,Q jEexit cmp al,q,je exitmov ex,0lea bx,buf leasi,buf1al:mov dl,1a2:and ax,0mov al,[bx+3]dec alinc dlcmp al,dl jza3inc aldiv dlcmp ah,0jnz a2mov[si+9],ah mov[si+10],ahjmp a4a3:inc exa4:lea dx,buf1mov ah,9int21h mov ah,08h int21hadd si,3incbxmov dl,[bx+3]cmp dl,0;跳出循环jnz allea dx,input3mov ah,9int21hmov ah,08hint21h;输入提示cmp al,Q jEexitcmpal,q,je exitmovdi,exadd di,3;计数送到dimov ex,99and si,0lea bx,buf1loop3:mov al,[bx];十位and ax,OOffhmov dh,[bx+1];个位cmpal,0jz clsubdh,30h subal,30h movdl,10mul dladdal,dh addsi,ax addbx,3looploop3lea dx,input4mov ah,9int21hmov ah,08hint21hmov ax,si;和送至Uaxmov bx,di;个数送到bxand bx,OOffh divbl incaland ax,OOffhmov bx,10and bx,OOffhdiv bladdal,30hadd ah,30h;将平均值转化为asc码,al为十位,ah为个位leabx,buf2mov[bx],almov[bx+1],ahmov ah,09•mov al,0mov bh,00movex,2mov bl,4int lOhlea dx,buf2movah,9int21hmov ah,08h int21hleadx,input5movah,9int21hmov ah,08h int21hexitl:mov ax,4c00h int21hcode endsend start
2.5运行结果SJ C:\Windows\system32\cmd.exeif youwant toquit,please pressQ/q!if youwant toprint199,please press any otherkey I
2.5图初始界面C:\Win dows\syste m32\cmd.exe if youwant toquit,please pressQ/q!if youwant toprint199,please press any otherkey!01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,press anykey tocontinue I
2.699图显示广rawC:\Windows\system32\cmd.exeif youwant toquit,please pressQ/qlif youwant toprint199,please press any otherkey101,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,press anykey tocontinue1if youwant toquit,please pressQ/q!ifyouwant tofind theprime number,please press any otherkey
12.7选择是否继续求素数,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,
85.86,87,889,90,91,92,93,94,95,96,97,98,99,press anykey tocontinue101,02,03,05,07,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,669,70,71,72,73,74,75,76,77,78,79,80J81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,pressanykey tocontinue!01,02,03,05,07,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80J81,82,83,84,
85.86,87,88,89,90,91,92,93,94,95,96,97,98,99,pressanykey tocontinue101,02,03,05,07,11,13,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80J81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,pressanykey tocontinue I01,02,03,05,07,11,13,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80J81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,pressanykey tocontinue
12.8动态删除合数保留素数29,31,41,43,47,53,59,61,67,71,73,79,83,pressany89,97,98,99,01,02,03,key tocontinue129,05,11,13,17,19,23,31,37,41,43,47,53,59,61,67,71,73,7%83,89,97,98,99,pressanykey tocontinue!01,02,03,05,07,IL13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,pressany89,97,99,01,02,03,key tocontinue!29,05,07,11,13,17,19,23,31,37,41,43,47,53,59,67,71,73,79,83,pressany97,keytocontinue Iifyouwanttoquit,please pressQ/qlif youwanttoget theavreageoftheprimenumbers,please pressany otherkey1图C:\Windows\system32\cmd.exe
2.9图选择是否求平均值
2.10图将素数平均值以红色字输出到屏幕第章课程设计总结3这次的微机原理课程设计,求以内的素数,在数学的学习中,我们会经常接触到100素数这个概念素数又称质数指在一个大于的自然数中,除了和此整数自身外,不11能被其他自然数(不包括)整除的数因为合数是由若干个质数相乘而得来的,所以,没有质数就没有合数,由此可见素数在数论中有着很重要的地位比大但不是素数的数称1为合数和既非素数也非合数这个学期我们刚好学了《微机原理与接口技术》这门10课,并且初步的了解了汇编语言知识,并且可以编写简单的代码因此,我们可以运用汇编语言来编写程序,求取以内的素数,动态的删除合数,并且以红色的字输出素数的100平均值起初以为这个课题比较简单,通过查书和资料可以很快做出来,结果开始做却发现不是那么回事,发现了很多的问题首先,课本上的知识还远远不够,需要我借鉴别人的程序来提升自己对汇编语言的认识以及了解,并且很多复杂难懂的程序还无法读懂其次,在编写的过程中,总会有各种各样的问题出现,即使一个小小的标点符号错误也无法将程序运行出来,这就需要我们的耐心仔细去慢慢的调试并且发现错误在哪里第三,我们对于汇编语言的认识还远远不够,一学期的简单学习,应用于编程还很吃力,调用、调用我们接触的非常非常少dos bios总之,费了九牛二虎之力,总算是解决这次的课程设计这次课程设计给我带来的收获很多第一,它让我更进一步的了解了汇编语言,并用其来做一些实践性的东西第二,我在编写和调试程序的时候,也锻炼了我的耐心和细心第三,这次课程设计也锻炼了我查阅资料的能力课程设计(论文)任务及评语院(系)电子与信息工程学院教研室计算机科学与技术学号学生姓名专业班级课程设计(论求100以内的素数
(2)文)题目设计内容编制程序,按要求求出以内的素数和其它结果100课技术要求程、求出这些素数设1计、在屏幕上显示出求素数的动态过程(在屏幕上先显示出以内的论2100文所有数,再动态地删去不符合要求的数,删除的过程要明显)任、计算这些素数的平均值(取整,四舍五入),以十进制形式输出,并务3让改制以红色显示、数据的输入和结果的输出都要有必要的提示,且提示独占一行
4、要用到子程序5指导教师评语及平时成绩_________答辩成绩__________论文成绩成绩总成绩__________指导教师签字年月II注平时成绩占答辩成绩占论文成绩占20%,40%,40%参考文献彭虎,周佩玲,傅忠谦.《微机原理与接口技术(第版)》.北京电子工业出版社,
[1]22010年⑵李敬兆.《和核汇编语言程序设计》.合肥中国科技大学出版社年8086/8088arm.2000沈美明,温冬婵.《汇编语言程序设计(第二版)》.北京清华大学出版社
[3]IBM—PC出版年.2003沈美明,温冬婵,张赤红.《汇编语言程序设计实验教程》.北京清华大学
[4]IBM—PC出版社出版年.2003杨立.《微机原理与接口技术》.天津天津大学出版社,年
[5]2010目录第章前言11背景
1.11基本功能要求
1.22第章程序设计23题目的基本内容
2.13程序流程图
2.24课程设计的具体内容说明
2.37课程设计中关键内容的分析设计说明
2.48运行结果
2.513第章课程设计总结316参考文献17第章前言
11.1背景汇编语言)是一种用于电子计算机、微处理器、微控制器或其他(assembly language可编程器件的低级语言,亦称为符号语言在汇编语言中,用助记符)代替(Mnemonics机器指令的操作码,用地址符号)或标号)代替指令或操作数的地址在(Symbol(Label不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植许多汇编程序为程序开发、汇编控制、辅助调试提供了额外的支持机制有的汇编语言编程工具经常会提供宏,它们也被称为宏汇编器汇编语言不像其他大多数的程序设计语言一样被广泛用于程序设计在今天的实际应用中,它通常被应用在底层,硬件操作和高要求的程序优化的场合驱动程序、嵌入式操作系统和实时运行程序都需要汇编语言汇编语言的另一个特点就是它所操作的对象不是具体的数据,而是寄存器或者存储器,也就是说它是直接和寄存器和存储器打交道,这也是为什么汇编语言的执行速度要比其它语言快,但同时这也使编程更加复杂,因为既然数据是存放在寄存器或存储器中,那么必然就存在着寻址方式,也就是用什么方法找到所需要的数据例如上面的例子,我们就不能像高级语言一样直接使用数据,而是先要从相应的寄存器、中把数据取出这也就增加了编程的复杂性,因为在高级语言中寻址AX BX这部分工作是由编译系统来完成的,而在汇编语言中是由程序员自己来完成的,这无异增加了编程的复杂程度和程序的可读性
1.2基本功能要求由于DOS的9号调用输出的是ASCII码,因此我们在输出到屏幕的时候一定要将其先转换为ASCH码再使用9号调用输出考虑到ASCII码转化为数字较为麻烦,因此可以定义两个组数据buf、bufl,其中buf用于存放广99,bufl用于存放「99的ASCH码这段程序运用的两次loop循环分别实现把(P99送到buf、将0~99的ASCII码送到buflo在循环完毕后,采用dos的9号调用将bufl的数据输出到屏幕上,即199输出到屏幕上〜完成这段程序后,跳到下一个模块,即删除合数保留素数并显示模块然后跳转到下一模块求和,最后到求平均数模块第章程序设计
22.1题目的基本内容设计题目求以内的素数100具体要求()求出这些素数1()在屏幕上显示出求素数的动态过程(在屏幕上先显示出以内的所有数,再2100动态地删去不符合要求的数,删除的过程要明显)()计算这些素数的平均值(取整,四舍五入),以十进制形式输出,并让改制以3红色显小O)数据的输入和结果的输出都要有必要的提示,且提示独占一行
(4)要使用子程序(
52.2程序流程图
2.1显示素数程序流程图结束
2.2图删除合数保留素数程序流程图
2.3图求和程序流程。