在小模式下(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
.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