2005-08-26 04:48:05 +00:00
|
|
|
.section ".data"
|
|
|
|
.global words
|
|
|
|
.type words,#object
|
|
|
|
.align 4
|
|
|
|
words:
|
|
|
|
.word 0x1
|
|
|
|
.word 0x2
|
|
|
|
.word 0x3
|
|
|
|
.byte 105
|
|
|
|
.byte 102
|
|
|
|
.byte 0
|
|
|
|
.skip 3
|
|
|
|
.skip 2
|
|
|
|
.word 0x4
|
|
|
|
.word 0x5
|
|
|
|
.skip 4
|
|
|
|
.byte 102
|
|
|
|
.byte 111
|
|
|
|
.byte 114
|
|
|
|
.skip 3
|
|
|
|
.skip 2
|
|
|
|
.word 0x6
|
|
|
|
.word 0x7
|
|
|
|
.word 0x8
|
|
|
|
.byte 101
|
|
|
|
.byte 108
|
|
|
|
.byte 115
|
|
|
|
.byte 101
|
|
|
|
.byte 0
|
|
|
|
.skip 1
|
|
|
|
.skip 2
|
|
|
|
.word 0x9
|
|
|
|
.word 0xa
|
|
|
|
.word 0xb
|
|
|
|
.byte 119
|
|
|
|
.byte 104
|
|
|
|
.byte 105
|
|
|
|
.byte 108
|
|
|
|
.byte 101
|
|
|
|
.skip 1
|
|
|
|
.skip 2
|
|
|
|
.word 0x0
|
|
|
|
.skip 8
|
|
|
|
.skip 8
|
|
|
|
.size words,100
|
|
|
|
.global wordlist
|
|
|
|
.type wordlist,#object
|
|
|
|
.size wordlist,4
|
|
|
|
.align 4
|
|
|
|
wordlist:
|
|
|
|
.word words
|
|
|
|
.global x
|
|
|
|
.type x,#object
|
|
|
|
.align 4
|
|
|
|
x:
|
|
|
|
.word 0x1
|
|
|
|
.word 0x2
|
|
|
|
.word 0x3
|
|
|
|
.word 0x4
|
|
|
|
.word 0x0
|
|
|
|
.word 0x5
|
|
|
|
.word 0x6
|
|
|
|
.skip 12
|
|
|
|
.word 0x7
|
|
|
|
.skip 16
|
|
|
|
.size x,60
|
|
|
|
.global y
|
|
|
|
.type y,#object
|
|
|
|
.align 4
|
|
|
|
y:
|
|
|
|
.word x
|
|
|
|
.word x+20
|
|
|
|
.word x+40
|
|
|
|
.word 0x0
|
|
|
|
.size y,16
|
|
|
|
.global main
|
|
|
|
.section ".text"
|
|
|
|
.align 4
|
|
|
|
main:
|
|
|
|
save %sp,-96,%sp
|
|
|
|
mov %g0,%i4
|
|
|
|
ba .L8; nop
|
|
|
|
.L5:
|
|
|
|
mov %g0,%i5
|
|
|
|
ba .L12; nop
|
|
|
|
.L9:
|
|
|
|
set .L13,%o0
|
|
|
|
sll %i5,2,%i3
|
|
|
|
sll %i4,2,%i2
|
|
|
|
set y,%i1
|
|
|
|
ld [%i2+%i1],%i2
|
|
|
|
ld [%i3+%i2],%o1
|
|
|
|
call printf; nop
|
|
|
|
.L10:
|
|
|
|
add %i5,1,%i5
|
|
|
|
.L12:
|
|
|
|
sll %i5,2,%i3
|
|
|
|
sll %i4,2,%i2
|
|
|
|
set y,%i1
|
|
|
|
ld [%i2+%i1],%i2
|
|
|
|
ld [%i3+%i2],%i3
|
|
|
|
cmp %i3,0; bne .L9; nop
|
|
|
|
set .L14,%o0
|
|
|
|
call printf; nop
|
|
|
|
.L6:
|
|
|
|
add %i4,1,%i4
|
|
|
|
.L8:
|
|
|
|
sll %i4,2,%i3
|
|
|
|
set y,%i2
|
|
|
|
ld [%i3+%i2],%i3
|
|
|
|
cmp %i3,%g0; bne .L5; nop
|
|
|
|
call f; nop
|
|
|
|
set wordlist,%i3
|
|
|
|
ld [%i3],%o0
|
|
|
|
call g; nop
|
|
|
|
mov %g0,%i0
|
|
|
|
.L4:
|
|
|
|
ret; restore
|
|
|
|
.type main,#function
|
|
|
|
.size main,.-main
|
|
|
|
.section ".data"
|
|
|
|
.type .16,#object
|
|
|
|
.align 4
|
|
|
|
.16:
|
|
|
|
.word .L17
|
|
|
|
.word .L18
|
|
|
|
.word .L19
|
|
|
|
.word .L20
|
|
|
|
.word 0x0
|
|
|
|
.size .16,20
|
|
|
|
.global f
|
|
|
|
.section ".text"
|
|
|
|
.align 4
|
|
|
|
f:
|
|
|
|
save %sp,-96,%sp
|
|
|
|
set .16,%i5
|
|
|
|
ba .L24; nop
|
|
|
|
.L21:
|
|
|
|
set .L25,%o0
|
|
|
|
ld [%i5],%o1
|
|
|
|
call printf; nop
|
|
|
|
.L22:
|
|
|
|
add %i5,4,%i5
|
|
|
|
.L24:
|
|
|
|
ld [%i5],%i4
|
|
|
|
cmp %i4,%g0; bne .L21; nop
|
|
|
|
mov %g0,%i0
|
|
|
|
.L15:
|
|
|
|
ret; restore
|
|
|
|
.type f,#function
|
|
|
|
.size f,.-f
|
|
|
|
.global g
|
|
|
|
.align 4
|
|
|
|
g:
|
|
|
|
save %sp,-96,%sp
|
|
|
|
ba .L30; nop
|
|
|
|
.L27:
|
|
|
|
mov %g0,%i5
|
|
|
|
ba .L34; nop
|
|
|
|
.L31:
|
|
|
|
set .L35,%o0
|
|
|
|
sll %i5,2,%i4
|
|
|
|
ld [%i4+%i0],%o1
|
|
|
|
call printf; nop
|
|
|
|
.L32:
|
|
|
|
add %i5,1,%i5
|
|
|
|
.L34:
|
|
|
|
mov %i5,%i4
|
|
|
|
set 3,%i3
|
|
|
|
cmp %i4,%i3; blu .L31; nop
|
|
|
|
set .L25,%o0
|
|
|
|
add %i0,12,%o1
|
|
|
|
call printf; nop
|
|
|
|
.L28:
|
|
|
|
add %i0,20,%i0
|
|
|
|
.L30:
|
|
|
|
ld [%i0],%i4
|
|
|
|
cmp %i4,0; bne .L27; nop
|
|
|
|
call h; nop
|
|
|
|
mov %g0,%i0
|
|
|
|
.L26:
|
|
|
|
ret; restore
|
|
|
|
.type g,#function
|
|
|
|
.size g,.-g
|
|
|
|
.global h
|
|
|
|
.align 4
|
|
|
|
h:
|
|
|
|
save %sp,-96,%sp
|
|
|
|
mov %g0,%i5
|
|
|
|
ba .L40; nop
|
|
|
|
.L37:
|
|
|
|
set .L41,%o0
|
|
|
|
smul %i5,20,%i4
|
|
|
|
set words,%i3
|
|
|
|
ld [%i4+%i3],%o1
|
|
|
|
set words+4,%i3
|
|
|
|
ld [%i4+%i3],%o2
|
|
|
|
set words+8,%i3
|
|
|
|
ld [%i4+%i3],%o3
|
|
|
|
set words+12,%i3
|
|
|
|
add %i4,%i3,%o4
|
|
|
|
call printf; nop
|
|
|
|
.L38:
|
|
|
|
add %i5,1,%i5
|
|
|
|
.L40:
|
|
|
|
mov %i5,%i4
|
|
|
|
set 5,%i3
|
|
|
|
cmp %i4,%i3; blu .L37; nop
|
|
|
|
mov %g0,%i0
|
|
|
|
.L36:
|
|
|
|
ret; restore
|
|
|
|
.type h,#function
|
|
|
|
.size h,.-h
|
|
|
|
.section ".rodata"
|
|
|
|
.align 1
|
|
|
|
.L41:
|
|
|
|
.byte 37
|
|
|
|
.byte 100
|
|
|
|
.byte 32
|
|
|
|
.byte 37
|
|
|
|
.byte 100
|
|
|
|
.byte 32
|
|
|
|
.byte 37
|
|
|
|
.byte 100
|
|
|
|
.byte 32
|
|
|
|
.byte 37
|
|
|
|
.byte 115
|
|
|
|
.byte 10
|
|
|
|
.byte 0
|
|
|
|
.align 1
|
|
|
|
.L35:
|
|
|
|
.byte 37
|
|
|
|
.byte 100
|
|
|
|
.byte 32
|
|
|
|
.byte 0
|
|
|
|
.align 1
|
|
|
|
.L25:
|
|
|
|
.byte 37
|
|
|
|
.byte 115
|
|
|
|
.byte 10
|
|
|
|
.byte 0
|
|
|
|
.align 1
|
|
|
|
.L20:
|
|
|
|
.byte 119
|
|
|
|
.byte 104
|
|
|
|
.byte 105
|
|
|
|
.byte 108
|
|
|
|
.byte 101
|
|
|
|
.byte 0
|
|
|
|
.align 1
|
|
|
|
.L19:
|
|
|
|
.byte 101
|
|
|
|
.byte 108
|
|
|
|
.byte 115
|
|
|
|
.byte 101
|
|
|
|
.byte 0
|
|
|
|
.align 1
|
|
|
|
.L18:
|
|
|
|
.byte 102
|
|
|
|
.byte 111
|
|
|
|
.byte 114
|
|
|
|
.byte 0
|
|
|
|
.align 1
|
|
|
|
.L17:
|
|
|
|
.byte 105
|
|
|
|
.byte 102
|
|
|
|
.byte 0
|
|
|
|
.align 1
|
|
|
|
.L14:
|
|
|
|
.byte 10
|
|
|
|
.byte 0
|
|
|
|
.align 1
|
|
|
|
.L13:
|
|
|
|
.byte 32
|
|
|
|
.byte 37
|
|
|
|
.byte 100
|
|
|
|
.byte 0
|