Initial commit. Harptool, some docs, and the initial logo attempt.
git-svn-id: http://www.cdkersey.com/harp/harptool@1 0246edb2-e076-4747-b392-db732a341fa2
This commit is contained in:
50
src/test/lib.s
Normal file
50
src/test/lib.s
Normal file
@@ -0,0 +1,50 @@
|
||||
/*******************************************************************************
|
||||
HARPtools by Chad D. Kersey, Summer 2011
|
||||
********************************************************************************
|
||||
|
||||
Sample HARP assmebly programs. These should work on anything from a 4x up.
|
||||
|
||||
*******************************************************************************/
|
||||
/* Library: print decimals and strings! */
|
||||
.perm x
|
||||
.global
|
||||
printdec: ldi %r8, #1;
|
||||
shli %r8, %r8, (__WORD*8 - 1);
|
||||
and %r6, %r8, %r7;
|
||||
rtop @p0, %r6;
|
||||
@p0 ? ldi %r6, #0x2d;
|
||||
@p0 ? st %r6, %r8, #0;
|
||||
@p0 ? neg %r7, %r7;
|
||||
printdec_l1: modi %r6, %r7, #10;
|
||||
divi %r7, %r7, #10;
|
||||
addi %r6, %r6, #0x30;
|
||||
st %r6, %r9, digstack;
|
||||
addi %r9, %r9, __WORD;
|
||||
rtop @p0, %r7;
|
||||
@p0 ? jmpi printdec_l1;
|
||||
printdec_l2: subi %r9, %r9, __WORD;
|
||||
ld %r6, %r9, digstack;
|
||||
st %r6, %r8, #0;
|
||||
rtop @p0, %r9;
|
||||
@p0 ? jmpi printdec_l2;
|
||||
ldi %r6, #0x0a;
|
||||
st %r6, %r8, #0;
|
||||
jmpr %r5
|
||||
|
||||
.global
|
||||
puts: ldi %r8, #1;
|
||||
shli %r8, %r8, (__WORD*8 - 1);
|
||||
|
||||
puts_l: ld %r6, %r7, #0;
|
||||
andi %r6, %r6, #0xff;
|
||||
rtop @p0, %r6;
|
||||
notp @p0, @p0;
|
||||
@p0 ? jmpi puts_end;
|
||||
st %r6, %r8, #0;
|
||||
addi %r7, %r7, #1;
|
||||
jmpi puts_l;
|
||||
puts_end: jmpr %r5
|
||||
|
||||
.perm rw
|
||||
.word digstack 0
|
||||
.word 9
|
||||
Reference in New Issue
Block a user