80 lines
1.5 KiB
NASM
80 lines
1.5 KiB
NASM
debut:
|
|
XOR R0 R0 R0
|
|
XOR R1 R1 R1
|
|
XOR R2 R2 R2
|
|
XOR R3 R3 R3
|
|
XOR R4 R4 R4
|
|
XOR R5 R5 R5
|
|
XOR R6 R6 R6
|
|
XOR R7 R7 R7
|
|
jump:
|
|
JMP jump_equ
|
|
ADD R7 R7 #1
|
|
jump_equ:
|
|
ADD R0 R0 #1
|
|
ADD R1 R1 #1
|
|
JEQU R0 R1 jump_equ2
|
|
ADD R7 R7 #2
|
|
jump_equ2:
|
|
ADD R0 R0 #1
|
|
ADD R6 R6 #1
|
|
JEQU R0 R1 jump_neq
|
|
SUB R6 R6 #1
|
|
jump_neq:
|
|
JNEQ R0 R1 jump_neq2
|
|
ADD R7 R7 #4
|
|
jump_neq2:
|
|
ADD R2 R2 #1
|
|
ADD R6 R6 #2
|
|
JNEQ R1 R2 jump_sup
|
|
SUB R6 R6 #2
|
|
jump_sup:
|
|
JSUP R1 R0 jump_sup2
|
|
ADD R7 R7 #8
|
|
jump_sup2:
|
|
ADD R6 R6 #4
|
|
JSUP R0 R1 jump_inf
|
|
SUB R6 R6 #4
|
|
jump_inf:
|
|
JINF R0 R1 jump_inf2
|
|
ADD R7 R7 #16
|
|
jump_inf2:
|
|
ADD R6 R6 #8
|
|
JSUP R1 R0 store
|
|
SUB R6 R6 #8
|
|
store:
|
|
XOR R0 R0 R0
|
|
XOR R1 R1 R1
|
|
XOR R2 R2 R2
|
|
ADD R0 R0 #1
|
|
ADD R1 R1 #24
|
|
STR R0 R1
|
|
load:
|
|
LD R0 R2
|
|
JEQU R1 R2 fin_load
|
|
ADD R7 R7 #32
|
|
fin_load:
|
|
XOR R0 R0 R0
|
|
XOR R1 R1 R1
|
|
XOR R2 R2 R2
|
|
XOR R3 R3 R3
|
|
XOR R4 R4 R4
|
|
XOR R5 R5 R5
|
|
foo:
|
|
ADD R0 R0 #1
|
|
JEQU R0 R1 fin
|
|
CALL bar
|
|
RET
|
|
bar:
|
|
ADD R1 R1 #2
|
|
CALL foo
|
|
RET
|
|
fin:
|
|
ADD R0 R0 #42
|
|
XOR R0 R0 R0
|
|
XOR R1 R1 R1
|
|
XOR R2 R2 R2
|
|
XOR R3 R3 R3
|
|
XOR R4 R4 R4
|
|
XOR R5 R5 R5
|