Skip to content

9-2 判断素数

根据给定的c语言,判断一个数字是否是素数

c
bx = 2;
again:
if(bx < cx)
{
   if(cx % bx == 0)
      goto check;
   bx = bx + 1;
   goto again;
}
check:
if(bx == cx)
   ax = 1;
else
   ax = 0;

提示:

16位/8位举例

x86asm
mov ax, 123h
mov bl, 10h
div bl ; 当除数为8位时,被除数默认为AX,故div bl就是计算 AX/BL=AL..AH,其中AL为商=12h,AH为余数=03h

32位/8位举例

x86asm
mov dx, 123h
mov ax, 4567h
mov bx, 1000h
div bx ; 当除数为16位时,被除数默认为DX与AX组合而成的32位数,
       ; 故div bx就是计算 (DX*0x10000+AX)/BX=AX..DX,
       ; 其中AX为商=1234h,DX为余数=567h

提交内容:

x86asm
.386
code segment use16
assume cs:code
main:
   mov cx, 5; cx的值在评测时会发生改变
   ;#1_begin--------------------------------------

   ;#1_end========================================
exit:
   mov ah, 4Ch
   int 21h
code ends
end main