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

Subversion Repositories eco32

[/] [eco32/] [tags/] [eco32-0.22/] [fp/] [implementation/] [mmix/] [primessf.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 (using short floats)
% Example program ... Table of primes (using short floats)
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
fn      GREG
fn      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 TETRA #40000000
PRIME1 TETRA #40000000
       LOC  PRIME1+4*L
       LOC  PRIME1+4*L
ptop   GREG @
ptop   GREG @
j0     GREG PRIME1+4-@
j0     GREG PRIME1+4-@
BUF    OCTA
BUF    OCTA
       LOC  #100
       LOC  #100
Main   FLOT  fn,3
Main   FLOT  fn,3
       SET  jj,j0
       SET  jj,j0
2H     STSF fn,ptop,jj
2H     STSF fn,ptop,jj
       INCL jj,4
       INCL jj,4
3H     BZ   jj,2F
3H     BZ   jj,2F
0H     GREG #4000000000000000
0H     GREG #4000000000000000
4H     FADD fn,fn,0B
4H     FADD fn,fn,0B
5H     SET  kk,j0
5H     SET  kk,j0
sqrtn GREG 0
sqrtn GREG 0
      FSQRT sqrtn,fn
      FSQRT sqrtn,fn
6H     LDSF pk,ptop,kk
6H     LDSF pk,ptop,kk
      FREM r,fn,pk
      FREM r,fn,pk
       BZ   r,4B
       BZ   r,4B
7H    FCMP t,pk,sqrtn
7H    FCMP t,pk,sqrtn
       BNN  t,2B
       BNN  t,2B
8H     INCL kk,4
8H     INCL kk,4
       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,4
       NEG  mm,4
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     LDSF pk,ptop,mm
2H     LDSF pk,ptop,mm
       FIX  pk,pk
       FIX  pk,pk
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,4*L/10
       INCL mm,4*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,4*(L/10-1)
       CMP  t,mm,4*(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.