找素数

.model small

.stack 200h


.CODE

;***************************************

;显示正整数子程序

;功能描述:以十进制方式输出任意的16位正整数

;入口参数:AX=要输出的整数

write proc

  push si

  push bx

  push cx

  push dx

  xor si,si

mov bx,10

tostring:

   xor dx,dx

div bx

add dx,30h

push dx

inc si

test ax,ax

jnz tostring

mov cx,si

display:

pop dx

mov ah,2

int 21h

loop display

pop dx

pop cx

pop bx

pop si

ret

write endp

;***************************************


;***************************************

;入口参数:AX=所要判断的数

;出口参数:BX=1或0,1代表是素数,0则不是素数

isprime proc

   push ax

   push cx

   push dx

   push si

   push di

   mov si,ax

   mov cx,2

loop1:   

   mov di,ax

   xor dx,dx

   div cx

   mov ax,di

   test dx,dx

   jz  decide

   inc cx 

   cmp cx,si

   jbe loop1

decide:   

   cmp cx,ax

   jb not_prime   

   mov bx,1

   jmp over

not_prime:   

   xor bx,bx

over:   

   pop di

   pop si

   pop dx

   pop cx

   pop ax

   ret

isprime endp

;***************************************



START:

mov ax,@data

mov ds,ax

xor si,si

mov cx,9999

loop2: 

mov ax,cx

call isprime

test bx,bx

jz next

call write

inc si

cmp si,10

jnz tab

mov dl,0ah

mov ah,2

int 21h

mov dl,0dh

mov ah,2

int 21h

tab: 

mov dl,' '

mov ah,2

int 21h

next: 

dec cx

dec cx

cmp cx,2

jg  loop2 


mov ah,1

int 21h

mov ah,4ch

int 21h


END START   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值