OpenCores
URL https://opencores.org/ocsvn/eco32/eco32/trunk

Subversion Repositories eco32

[/] [eco32/] [tags/] [eco32-0.22/] [fp/] [implementation/] [mmix/] [primes.mms] - Diff between revs 15 and 21

Only display areas with differences | Details | Blame | View Log

Rev 15 Rev 21
% Example program ... Table of primes
% Example program ... Table of primes
L      IS   500          The number of primes to find
L      IS   500          The number of primes to find
t      IS   $255         Temporary storage
t      IS   $255         Temporary storage
n      GREG
n      GREG
q      GREG
q      GREG
r      GREG
r      GREG
jj     GREG
jj     GREG
kk     GREG
kk     GREG
pk     GREG
pk     GREG
mm     IS   kk
mm     IS   kk
       LOC  Data_Segment
       LOC  Data_Segment
PRIME1 WYDE 2
PRIME1 WYDE 2
       LOC  PRIME1+2*L
       LOC  PRIME1+2*L
ptop   GREG @
ptop   GREG @
j0     GREG PRIME1+2-@
j0     GREG PRIME1+2-@
BUF    OCTA
BUF    OCTA
       LOC  #100
       LOC  #100
Main   SET  n,3
Main   SET  n,3
       SET  jj,j0
       SET  jj,j0
2H     STWU n,ptop,jj
2H     STWU n,ptop,jj
       INCL jj,2
       INCL jj,2
3H     BZ   jj,2F
3H     BZ   jj,2F
4H     INCL n,2
4H     INCL n,2
5H     SET  kk,j0
5H     SET  kk,j0
6H     LDWU pk,ptop,kk
6H     LDWU pk,ptop,kk
       DIV  q,n,pk
       DIV  q,n,pk
       GET  r,rR
       GET  r,rR
       BZ   r,4B
       BZ   r,4B
7H     CMP  t,q,pk
7H     CMP  t,q,pk
       BNP  t,2B
       BNP  t,2B
8H     INCL kk,2
8H     INCL kk,2
       JMP  6B
       JMP  6B
       GREG @
       GREG @
Title  BYTE "First Five Hundred Primes"
Title  BYTE "First Five Hundred Primes"
NewLn  BYTE #a,0
NewLn  BYTE #a,0
Blanks BYTE "   ",0
Blanks BYTE "   ",0
2H     LDA  t,Title
2H     LDA  t,Title
       TRAP 0,Fputs,StdOut
       TRAP 0,Fputs,StdOut
       NEG  mm,2
       NEG  mm,2
3H     ADD  mm,mm,j0
3H     ADD  mm,mm,j0
       LDA  t,Blanks
       LDA  t,Blanks
       TRAP 0,Fputs,StdOut
       TRAP 0,Fputs,StdOut
2H     LDWU pk,ptop,mm
2H     LDWU pk,ptop,mm
0H     GREG #2030303030000000
0H     GREG #2030303030000000
       STOU 0B,BUF
       STOU 0B,BUF
       LDA  t,BUF+4
       LDA  t,BUF+4
1H     DIV  pk,pk,10
1H     DIV  pk,pk,10
       GET  r,rR
       GET  r,rR
       INCL r,'0'
       INCL r,'0'
       STBU r,t,0
       STBU r,t,0
       SUB  t,t,1
       SUB  t,t,1
       PBNZ pk,1B
       PBNZ pk,1B
       LDA  t,BUF
       LDA  t,BUF
       TRAP 0,Fputs,StdOut
       TRAP 0,Fputs,StdOut
       INCL mm,2*L/10
       INCL mm,2*L/10
       PBN  mm,2B
       PBN  mm,2B
       LDA  t,NewLn
       LDA  t,NewLn
       TRAP 0,Fputs,StdOut
       TRAP 0,Fputs,StdOut
       CMP  t,mm,2*(L/10-1)
       CMP  t,mm,2*(L/10-1)
       PBNZ t,3B
       PBNZ t,3B
       TRAP 0,Halt,0
       TRAP 0,Halt,0
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.