汇编语言输出10000以内的素数(小模式下)

这篇博客展示了如何在小模式下(MASM for Windows 2015版)编写汇编代码来寻找并输出10000以内的所有素数。博主通过优化算法,避免了直接求平方根,而是采用了一个判断阈值100,以提高效率。代码详细解释了判断素数的过程,并展示了如何输出三位数以上的素数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在小模式下(masm for window 2015版)输出10000以内的素数,两个重点,一是找到10000以内的素数,二是将这些数输出。
其中判断素数,因为用汇编不方便直接求该数的平方根,从2到本身的判断又太浪费时间,因此用的是100这个数,当判断的数较大时可以有效减少所需要的时间,当数小于100时,判断的条件就是从2到本身,因此需要增加一个判断条件看是否等于本身,即代码第10行。另一个重点就是关于较大数的输出。

.MODEL SMALL
.CODE
  MAIN PROC FAR 
    MOV AX,2
 NEXT:
    MOV CX,AX;CX记录AX的值
    MOV BX,2
 AGAIN:
    MOV AX,CX
    CMP BX,AX;只能除1和本身,即为素数
    JZ L2
    MOV DX,0
    DIV BX;DX是余数,AX是商
    CMP DX,0
    JZ L1   ;整除BX,不是素数
    INC BX
     ;除到100还没有跳出去,是素数
    CMP BX,101 
   JZ L2
    JMP AGAIN
 L1:
 &n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值