为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

汇编实验判断素数

2017-11-26 5页 doc 16KB 25阅读

用户头像

is_995397

暂无简介

举报
汇编实验判断素数汇编实验判断素数 实验4.2 判断素数 1( 题目:找出前100个素数。 2( 实验要求:将前100个素数找出并显示值,要求每行显示5个素数。 3( 提示:有很多方法可以判断素数,下面给出了其中一种方法的伪代码。 prime[1] := 2; {第一个素数数字} prime[2] := 3; {第二个素数数字} primeCount := 2; candidate := 4; {新素数的第一个candidate } while primeCount primeCount) then {不存在素数能除尽can...
汇编实验判断素数
汇编实验判断素数 实验4.2 判断素数 1( 目:找出前100个素数。 2( 实验要求:将前100个素数找出并显示值,要求每行显示5个素数。 3( 提示:有很多方法可以判断素数,下面给出了其中一种方法的伪代码。 prime[1] := 2; {第一个素数数字} prime[2] := 3; {第二个素数数字} primeCount := 2; candidate := 4; {新素数的第一个candidate } while primeCount < 100 loop index := 1; while (index ? primeCount) and (prime[index]不能除尽candidate)loop 加 1到 index; end while; if (index > primeCount) then {不存在素数能除尽candidate, 所以它是一个新的素数} 加1到primeCount; prime[primeCount] := candidate; end if; 加1到candidate; end while; display "Prime Numbers"; for index := 1 to 100 loop {每行显示5个素数} display prime[index]; if index能被5除尽,则跳到新的一行; end if; end for; .386 .MODEL FLAT INCLUDE io.h ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD cr EQU 0dh lf EQU 0ah maxNbrs EQU 100 .STACK 4096 .DATA PrimeCount DWORD ? ;计数素数的个数 candidate DWORD ? index DWORD ? temp DWORD ? directions BYTE cr, Lf, "本程序将会打印出100个素数:",cr,lf,0 change BYTE cr, Lf,0 ;换行 nbrArray DWORD maxNbrs DUP (0) outValue BYTE 11 DUP (?),0 endlabels BYTE cr,Lf,"程序结束~",0 .CODE _start: output directions lea ebx,nbrArray mov eax,2 mov [ebx],eax add ebx,4 mov eax,3 mov [ebx],eax add ebx,4 mov PrimeCount,2 ;计数素数的个数 mov candidate,4 ;从4开始判断素数 whileloop: cmp PrimeCount,100 jnb endwhile ;当素数计数大于或等于100时跳转 mov ecx, 2 ;ecx寄存器存放除数,判断被除数是否为素数 whilefind: cmp ecx,candidate jnb endfind mov eax,candidate cdq div ecx cmp edx,0 ;edx寄存器存放的是余数 je endfind ;若余数等于0,则跳转 inc ecx jmp whilefind endfind: cmp ecx,candidate jne continue ;当除数不等于被除数,继续寻找,否则当前被除数为素数 mov eax,candidate mov [ebx],eax add ebx,4 inc PrimeCount continue: inc candidate jmp whileloop endWhile: mov index,0 lea ebx,nbrArray mov temp,5 ;计数每一行素数的个数 whileoutput: cmp index,100 jnb endwhileoutput ;当打印的素数个数大于或等于100时,停止打印 dtoa outValue,[ebx] output outValue inc index mov eax,index cdq div temp cmp edx,0 jne continueOut output change continueOut: add ebx,4 jmp whileoutput endwhileoutput: output endlabels INVOKE ExitProcess, 0 PUBLIC _start END
/
本文档为【汇编实验判断素数】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索