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

Subversion Repositories eco32

[/] [eco32/] [tags/] [eco32-0.26/] [fp/] [implementation/] [mmix/] [halves.mms] - Diff between revs 15 and 270

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

Rev 15 Rev 270
% Example program ... 2^-n in decimal
% Example program ... 2^-n in decimal
%
%
       LOC #2000000000000000 % Data segment
       LOC #2000000000000000 % Data segment
HALF   BYTE '5'
HALF   BYTE '5'
       LOC  @+'0'-1
       LOC  @+'0'-1
       BYTE "0011223344"     % Table of half-digits
       BYTE "0011223344"     % Table of half-digits
DATA   BYTE '1',0
DATA   BYTE '1',0
%
%
       GREGTOP $g250
       GREGTOP $g250
pbase  GREG DATA-1
pbase  GREG DATA-1
half   GREG HALF
half   GREG HALF
p      GREG 0
p      GREG 0
starp  GREG 0
starp  GREG 0
carry  GREG 0
carry  GREG 0
acc    GREG 0
acc    GREG 0
       LOC  #1000
       LOC  #1000
Main   OR   p,pbase,0        % p = &DATA-1.
Main   OR   p,pbase,0        % p = &DATA-1.
       SETL carry,0          % carry = 0.
       SETL carry,0          % carry = 0.
       JMP  1F
       JMP  1F
Loop   ADD  acc,acc,carry    % acc += carry.
Loop   ADD  acc,acc,carry    % acc += carry.
       ZSOD carry,starp,5    % carry = 5[*p odd].
       ZSOD carry,starp,5    % carry = 5[*p odd].
       STB  acc,p,0          % *p = acc.
       STB  acc,p,0          % *p = acc.
1H     LDB  starp,p,1
1H     LDB  starp,p,1
       INCL p,1              % p++.
       INCL p,1              % p++.
       LDB  acc,half,starp  % acc = half[*p].
       LDB  acc,half,starp  % acc = half[*p].
       PBNZ starp,Loop       % repeat until *p='\0'.
       PBNZ starp,Loop       % repeat until *p='\0'.
       STB  acc,p,0          % *p = '5'.
       STB  acc,p,0          % *p = '5'.
       JMP  Main             % repeat indefinitely.
       JMP  Main             % repeat indefinitely.
 
 

powered by: WebSVN 2.1.0

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