.data data_pointer: .word 0 .text setup: li $v0, 9 li $a0, 30000 syscall la $t1, data_pointer sw $v0, ($t1) # t0 - current address (data_pointer) move $t0, $v0 bf: lb $t1, ($t0) addi $t1, $t1, 8 sb $t1, ($t0) lb $t1, ($t0) beqz $t1, BF_CLOSE_1 BF_OPEN_1: addi $t0, $t0, 1 lb $t1, ($t0) addi $t1, $t1, 4 sb $t1, ($t0) lb $t1, ($t0) beqz $t1, BF_CLOSE_2 BF_OPEN_2: addi $t0, $t0, 1 lb $t1, ($t0) addi $t1, $t1, 2 sb $t1, ($t0) addi $t0, $t0, 1 lb $t1, ($t0) addi $t1, $t1, 3 sb $t1, ($t0) addi $t0, $t0, 1 lb $t1, ($t0) addi $t1, $t1, 3 sb $t1, ($t0) addi $t0, $t0, 1 lb $t1, ($t0) addi $t1, $t1, 1 sb $t1, ($t0) subi $t0, $t0, 4 lb $t1, ($t0) subi $t1, $t1, 1 sb $t1, ($t0) lb $t1, ($t0) bnez $t1, BF_OPEN_2 BF_CLOSE_2: 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, 2 lb $t1, ($t0) addi $t1, $t1, 1 sb $t1, ($t0) lb $t1, ($t0) beqz $t1, BF_CLOSE_3 BF_OPEN_3: subi $t0, $t0, 1 lb $t1, ($t0) bnez $t1, BF_OPEN_3 BF_CLOSE_3: subi $t0, $t0, 1 lb $t1, ($t0) subi $t1, $t1, 1 sb $t1, ($t0) lb $t1, ($t0) bnez $t1, BF_OPEN_1 BF_CLOSE_1: addi $t0, $t0, 2 li $v0, 11 lb $a0, ($t0) syscall addi $t0, $t0, 1 lb $t1, ($t0) subi $t1, $t1, 3 sb $t1, ($t0) li $v0, 11 lb $a0, ($t0) syscall lb $t1, ($t0) addi $t1, $t1, 7 sb $t1, ($t0) li $v0, 11 lb $a0, ($t0) syscall lb $t1, ($t0) addi $t1, $t1, 3 sb $t1, ($t0) li $v0, 11 lb $a0, ($t0) syscall addi $t0, $t0, 2 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, 3 sb $t1, ($t0) li $v0, 11 lb $a0, ($t0) syscall lb $t1, ($t0) subi $t1, $t1, 6 sb $t1, ($t0) li $v0, 11 lb $a0, ($t0) syscall lb $t1, ($t0) subi $t1, $t1, 8 sb $t1, ($t0) li $v0, 11 lb $a0, ($t0) syscall addi $t0, $t0, 2 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, 2 sb $t1, ($t0) li $v0, 11 lb $a0, ($t0) syscall li $v0, 11 lb $a0, ($t0) syscall