rev-global.as 2.6 KB
	.globl	readInt
	.globl	writeInt
	.globl	readBool
	.globl	writeBool
	.globl	readReal
	.globl	writeReal
	.globl	writeChar
	.globl	ar
	.data
ar:
	.space	400

	.globl	rev
	.text
rev:
# args:   4 bytes
# result: 1 bytes
# locals: 4 bytes
# temps:  12 bytes
#
#     n:	argument (4 bytes)	at (ap)
#     i:	local    (4 bytes)	at -4(fp)
#
	movl	sp, fp
	subl2	$16, sp
	movl	$0, -4(fp)
Lbg_1:
	movl	-4(fp), r0
	movl	(ap), r1
	divl2	$2, r1
	movb	$1, r2
	cmpl	r0, r1
	jlss	Lro_1
	movb	$0, r2
Lro_1:
	jlbc	r2, Lel_1
	movl	(ap), r0
	movl	-4(fp), r1
	subl2	r1, r0
	subl2	$1, r0
	movab	ar, r1
	mull2	$4, r0
	addl2	r0, r1
	movl	(r1), -12(fp)
	movl	-4(fp), r0
	movab	ar, r1
	mull2	$4, r0
	addl2	r0, r1
	movl	(r1), -8(fp)
	movl	-4(fp), r0
	mull2	$4, r0
	movab	ar, r1
	addl2	r0, r1
	movl	-12(fp), (r1)
	movl	(ap), r0
	movl	-4(fp), r2
	subl2	r2, r0
	subl2	$1, r0
	mull2	$4, r0
	movab	ar, r2
	addl2	r0, r2
	movl	-8(fp), (r2)
	movl	-4(fp), r0
	movl	r0, -16(fp)
	pushr	$0x3806
	movab	-16(fp), r11
	moval	-16(fp), ap
	jsb	writeInt
	popr	$0x3806
	movl	$10, -16(fp)
	pushr	$0x3806
	movab	-16(fp), r11
	moval	-16(fp), ap
	jsb	writeChar
	popr	$0x3806
	movl	-4(fp), r0
	addl3	$1, r0, -4(fp)
	jbr	Lbg_1
Lel_1:
Leg_1:
	movl	fp, sp
	rsb

	.globl	program
	.text
program:
# args:   0 bytes
# result: 4 bytes
# locals: 8 bytes
# temps:  5 bytes
#
#     n:	local    (4 bytes)	at -4(fp)
#     k:	local    (4 bytes)	at -8(fp)
#
	movl	sp, fp
	subl2	$13, sp
	pushr	$0x3800
	moval	-4(fp), r11
	movab	-8(fp), ap
	jsb	readInt
	popr	$0x3800
	movl	$0, -8(fp)
Lbg_2:
	movl	-8(fp), r0
	movl	-4(fp), r1
	movb	$1, r2
	cmpl	r0, r1
	jlss	Lro_2
	movb	$0, r2
Lro_2:
	jlbc	r2, Lel_2
	movl	-8(fp), r0
	mull2	$4, r0
	movab	ar, r1
	addl2	r0, r1
	pushr	$0x3802
	moval	(r1), r11
	movab	-8(fp), ap
	jsb	readInt
	popr	$0x3802
	movl	-8(fp), r0
	addl3	$1, r0, -8(fp)
	jbr	Lbg_2
Lel_2:
Leg_2:
Lbg_3:
	pushr	$0x3802
	movab	-9(fp), r11
	movab	-8(fp), ap
	jsb	readBool
	popr	$0x3802
	jlbc	-9(fp), Lel_3
	movl	-4(fp), r0
	movl	r0, -13(fp)
	pushr	$0x3802
	movab	-9(fp), r11
	moval	-13(fp), ap
	jsb	rev
	popr	$0x3802
	jbr	Leg_3
Lel_3:
Leg_3:
	movl	$0, -8(fp)
Lbg_4:
	movl	-8(fp), r0
	movl	-4(fp), r2
	movb	$1, r3
	cmpl	r0, r2
	jlss	Lro_3
	movb	$0, r3
Lro_3:
	jlbc	r3, Lel_4
	movl	-8(fp), r0
	movab	ar, r2
	mull2	$4, r0
	addl2	r0, r2
	movl	(r2), r0
	movl	r0, -13(fp)
	pushr	$0x3802
	movab	-8(fp), r11
	moval	-13(fp), ap
	jsb	writeInt
	popr	$0x3802
	movl	$32, -13(fp)
	pushr	$0x3802
	movab	-8(fp), r11
	moval	-13(fp), ap
	jsb	writeChar
	popr	$0x3802
	movl	-8(fp), r0
	addl3	$1, r0, -8(fp)
	jbr	Lbg_4
Lel_4:
Leg_4:
	movl	$10, -13(fp)
	pushr	$0x3802
	movab	-8(fp), r11
	moval	-13(fp), ap
	jsb	writeChar
	popr	$0x3802
	movl	fp, sp
	rsb