70 lines
1.4 KiB
Plaintext
70 lines
1.4 KiB
Plaintext
do_stuff:
|
|
CP r1, r2
|
|
JALA r0, r31, 0a
|
|
just_read:
|
|
JALA r0, r31, 0a
|
|
main:
|
|
ADDI64 r254, r254, -120d
|
|
ST r31, r254, 48a, 72h
|
|
ADDI64 r32, r254, 16d
|
|
CP r1, r32
|
|
JAL r31, r0, :optionala
|
|
CP r2, r32
|
|
LI64 r33, 0d
|
|
LD r34, r254, 16a, 8h
|
|
JNE r34, r33, :0
|
|
LI64 r1, 10d
|
|
JMP :1
|
|
0: ST r33, r254, 24a, 8h
|
|
JAL r31, r0, :just_read
|
|
LD r2, r254, 24a, 8h
|
|
JAL r31, r0, :do_stuff
|
|
CP r35, r1
|
|
ADDI64 r36, r254, 0d
|
|
JAL r31, r0, :optional
|
|
ST r1, r254, 0a, 16h
|
|
LI8 r37, 0b
|
|
LD r38, r254, 0a, 1h
|
|
ANDI r38, r38, 255d
|
|
ANDI r37, r37, 255d
|
|
JNE r38, r37, :2
|
|
LI64 r1, 20d
|
|
JMP :1
|
|
2: LI64 r39, 100d
|
|
ST r39, r254, 8a, 8h
|
|
LD r2, r254, 8a, 8h
|
|
JAL r31, r0, :do_stuff
|
|
ADD64 r1, r1, r35
|
|
1: LD r31, r254, 48a, 72h
|
|
ADDI64 r254, r254, 120d
|
|
JALA r0, r31, 0a
|
|
optional:
|
|
ADDI64 r254, r254, -16d
|
|
LI8 r4, 1b
|
|
ADDI64 r3, r254, 0d
|
|
ST r4, r254, 0a, 1h
|
|
LI64 r4, 10d
|
|
ST r4, r254, 8a, 8h
|
|
LD r1, r3, 0a, 16h
|
|
ADDI64 r254, r254, 16d
|
|
JALA r0, r31, 0a
|
|
optionala:
|
|
ADDI64 r254, r254, -48d
|
|
ADDI64 r5, r254, 8d
|
|
ADDI64 r4, r254, 16d
|
|
ST r5, r254, 16a, 8h
|
|
LI64 r9, 1d
|
|
ST r9, r254, 24a, 8h
|
|
ADDI64 r12, r254, 0d
|
|
ST r12, r254, 32a, 8h
|
|
LI64 r11, 0d
|
|
ST r11, r254, 0a, 8h
|
|
ST r11, r254, 8a, 8h
|
|
ST r11, r254, 40a, 8h
|
|
BMC r4, r1, 32h
|
|
ADDI64 r254, r254, 48d
|
|
JALA r0, r31, 0a
|
|
code size: 603
|
|
ret: 100
|
|
status: Ok(())
|