prim.s
上传用户:wecan5
上传日期:2021-07-24
资源大小:529k
文件大小:1k
源码类别:

模拟服务器

开发平台:

C/C++

  1. ;*********** WINDLX Exp.2: Generate prime number table *************
  2. ;*********** (c) 1991 G黱ther Raidl        *************
  3. ;*********** Modified 1992 Maziar Khosravipour        *************
  4. ;-------------------------------------------------------------------
  5. ; Program begins at symbol main
  6. ; generates a table with the first 'Count' prime numbers from 'Table'
  7. ;-------------------------------------------------------------------
  8. .data
  9. ;*** size of table
  10. .global Count
  11. Count: .word 10
  12. .global Table
  13. Table: .space Count*4
  14. .text
  15. .global main
  16. main:
  17. ;*** Initialization
  18. addi r1,r0,0 ;Index in Table
  19. addi r2,r0,2  ;Current value
  20. ;*** Determine, if R2 can be divided by a value in table
  21. NextValue: addi r3,r0,0  ;Helpindex in Table
  22. Loop: seq r4,r1,r3 ;End of Table?
  23. bnez r4,IsPrim ;R2 is a prime number
  24. lw r5,Table(R3)
  25. divu r6,r2,r5
  26. multu r7,r6,r5
  27. subu r8,r2,r7
  28. beqz r8,IsNoPrim
  29. addi r3,r3,4
  30. j Loop
  31. IsPrim:  ;*** Write value into Table and increment index
  32. sw Table(r1),r2
  33. addi r1,r1,4
  34. ;*** 'Count' reached?
  35. lw r9,Count
  36. srli r10,r1,2
  37. sge r11,r10,r9
  38. bnez r11,Finish
  39. IsNoPrim: ;*** Check next value
  40. addi r2,r2,1  ;increment R2
  41. j NextValue
  42. Finish:  ;*** end
  43. trap 0