URL
https://opencores.org/ocsvn/eco32/eco32/trunk
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.
|
|
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.