285 lines
5.1 KiB
NASM
285 lines
5.1 KiB
NASM
|
.data
|
||
|
data_address: .word 0
|
||
|
data_pointer: .word 0
|
||
|
newline: .asciiz "\n"
|
||
|
.text
|
||
|
setup:
|
||
|
li $v0, 9
|
||
|
li $a0, 30000
|
||
|
syscall
|
||
|
|
||
|
la $t1, data_address
|
||
|
sw $v0, ($t1)
|
||
|
|
||
|
# t0 - current address (data_pointer)
|
||
|
# t1 -
|
||
|
# t2 - temp
|
||
|
move $t0, $v0
|
||
|
bf:
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
beqz $t1, BF_CLOSE_03e0a731165036472c4dae07_0
|
||
|
BF_OPEN_03e0a731165036472c4dae07_0:
|
||
|
addi $t0, $t0, 1
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
beqz $t1, BF_CLOSE_972059b874ce5ef469e931bb_1
|
||
|
BF_OPEN_972059b874ce5ef469e931bb_1:
|
||
|
addi $t0, $t0, 1
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
addi $t0, $t0, 1
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
addi $t0, $t0, 1
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
addi $t0, $t0, 1
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
subi $t0, $t0, 1
|
||
|
subi $t0, $t0, 1
|
||
|
subi $t0, $t0, 1
|
||
|
subi $t0, $t0, 1
|
||
|
lb $t1, ($t0)
|
||
|
subi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
bnez $t1, BF_OPEN_972059b874ce5ef469e931bb_1
|
||
|
BF_CLOSE_972059b874ce5ef469e931bb_1:
|
||
|
addi $t0, $t0, 1
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
addi $t0, $t0, 1
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
addi $t0, $t0, 1
|
||
|
lb $t1, ($t0)
|
||
|
subi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
addi $t0, $t0, 1
|
||
|
addi $t0, $t0, 1
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
beqz $t1, BF_CLOSE_4f2d57da98e6bb1619411ff9_1
|
||
|
BF_OPEN_4f2d57da98e6bb1619411ff9_1:
|
||
|
subi $t0, $t0, 1
|
||
|
lb $t1, ($t0)
|
||
|
bnez $t1, BF_OPEN_4f2d57da98e6bb1619411ff9_1
|
||
|
BF_CLOSE_4f2d57da98e6bb1619411ff9_1:
|
||
|
subi $t0, $t0, 1
|
||
|
lb $t1, ($t0)
|
||
|
subi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
bnez $t1, BF_OPEN_03e0a731165036472c4dae07_0
|
||
|
BF_CLOSE_03e0a731165036472c4dae07_0:
|
||
|
addi $t0, $t0, 1
|
||
|
addi $t0, $t0, 1
|
||
|
li $v0, 11
|
||
|
lb $a0, ($t0)
|
||
|
syscall
|
||
|
addi $t0, $t0, 1
|
||
|
lb $t1, ($t0)
|
||
|
subi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
subi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
subi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
li $v0, 11
|
||
|
lb $a0, ($t0)
|
||
|
syscall
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
li $v0, 11
|
||
|
lb $a0, ($t0)
|
||
|
syscall
|
||
|
li $v0, 11
|
||
|
lb $a0, ($t0)
|
||
|
syscall
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
li $v0, 11
|
||
|
lb $a0, ($t0)
|
||
|
syscall
|
||
|
addi $t0, $t0, 1
|
||
|
addi $t0, $t0, 1
|
||
|
li $v0, 11
|
||
|
lb $a0, ($t0)
|
||
|
syscall
|
||
|
subi $t0, $t0, 1
|
||
|
lb $t1, ($t0)
|
||
|
subi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
li $v0, 11
|
||
|
lb $a0, ($t0)
|
||
|
syscall
|
||
|
subi $t0, $t0, 1
|
||
|
li $v0, 11
|
||
|
lb $a0, ($t0)
|
||
|
syscall
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
li $v0, 11
|
||
|
lb $a0, ($t0)
|
||
|
syscall
|
||
|
lb $t1, ($t0)
|
||
|
subi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
subi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
subi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
subi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
subi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
subi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
li $v0, 11
|
||
|
lb $a0, ($t0)
|
||
|
syscall
|
||
|
lb $t1, ($t0)
|
||
|
subi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
subi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
subi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
subi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
subi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
subi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
subi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
subi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
li $v0, 11
|
||
|
lb $a0, ($t0)
|
||
|
syscall
|
||
|
addi $t0, $t0, 1
|
||
|
addi $t0, $t0, 1
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
li $v0, 11
|
||
|
lb $a0, ($t0)
|
||
|
syscall
|
||
|
addi $t0, $t0, 1
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
lb $t1, ($t0)
|
||
|
addi $t1, $t1, 1
|
||
|
sb $t1, ($t0)
|
||
|
li $v0, 11
|
||
|
lb $a0, ($t0)
|
||
|
syscall
|