You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
SQA-Homework/afl_fuzz/a.s

442 lines
5.7 KiB

.data
__str0:
.asciiz "Enter program:"
.text
.data
.align 2
input_program:
.space 200000
.text
.data
.align 2
data:
.space 200000
.text
.data
.align 2
data_pointer:
.space 4
.text
.globl initialize
initialize:
addi $sp, $sp, -4
addi $s0, $sp, 0
li $s1, 0
sw $s1, 0($s0)
move $s0, $s1
__L0:
lw $s0, 0($sp)
li $s1, 200000
slt $s0, $s0, $s1
beq $s0, $zero, __L1
la $s0, data
lw $s1, 0($sp)
add $s0, $s0, $s1
li $s1, 0
sll $s1, $s1, 24
sra $s1, $s1, 24
sb $s1, 0($s0)
move $s0, $s1
la $s0, input_program
lw $s1, 0($sp)
add $s0, $s0, $s1
li $s1, 0
sll $s1, $s1, 24
sra $s1, $s1, 24
sb $s1, 0($s0)
move $s0, $s1
addi $s0, $sp, 0
lw $s1, 0($sp)
li $s2, 1
add $s1, $s1, $s2
sw $s1, 0($s0)
move $s0, $s1
j __L0
__L1:
la $s0, data_pointer
la $s1, data
li $s2, 100000
add $s1, $s1, $s2
sw $s1, 0($s0)
move $s0, $s1
addi $sp, $sp, 4
lw $ra, 4($sp)
jr $ra
.globl match_bracket
match_bracket:
addi $sp, $sp, -4
addi $s0, $sp, 0
li $s1, 0
sw $s1, 0($s0)
move $s0, $s1
__L2:
lw $s0, 0($sp)
sne $s0, $s0, $zero
bne $s0, $zero, __L5
lw $s1, 4($sp)
lb $s1, 0($s1)
li $s2, 93
sne $s1, $s1, $s2
sne $s1, $s1, $zero
move $s0, $s1
__L5:
beq $s0, $zero, __L3
lw $s0, 4($sp)
lb $s0, 0($s0)
li $s1, 91
seq $s0, $s0, $s1
beq $s0, $zero, __L6
addi $s0, $sp, 0
lw $s1, 0($sp)
li $s2, 1
add $s1, $s1, $s2
sw $s1, 0($s0)
move $s0, $s1
__L6:
lw $s0, 4($sp)
lb $s0, 0($s0)
li $s1, 93
seq $s0, $s0, $s1
beq $s0, $zero, __L7
addi $s0, $sp, 0
lw $s1, 0($sp)
li $s2, 1
sub $s1, $s1, $s2
sw $s1, 0($s0)
move $s0, $s1
__L7:
addi $s0, $sp, 4
lw $s1, 4($sp)
li $s2, 1
add $s1, $s1, $s2
sw $s1, 0($s0)
move $s0, $s1
j __L2
__L3:
lw $s0, 4($sp)
sw $s0, 8($sp)
addi $sp, $sp, 4
lw $ra, 8($sp)
jr $ra
addi $sp, $sp, 4
lw $ra, 8($sp)
jr $ra
.globl interpret
interpret:
addi $sp, $sp, -4
__L8:
lw $s0, 4($sp)
lb $s0, 0($s0)
beq $s0, $zero, __L11
lw $s1, 4($sp)
lb $s1, 0($s1)
li $s2, 93
sne $s1, $s1, $s2
sne $s1, $s1, $zero
move $s0, $s1
__L11:
beq $s0, $zero, __L9
lw $s0, 4($sp)
lb $s0, 0($s0)
li $s1, 62
seq $s0, $s0, $s1
beq $s0, $zero, __L12
la $s0, data_pointer
la $s1, data_pointer
lw $s1, 0($s1)
li $s2, 1
add $s1, $s1, $s2
sw $s1, 0($s0)
move $s0, $s1
j __L13
__L12:
lw $s0, 4($sp)
lb $s0, 0($s0)
li $s1, 60
seq $s0, $s0, $s1
beq $s0, $zero, __L14
la $s0, data_pointer
la $s1, data_pointer
lw $s1, 0($s1)
li $s2, 1
sub $s1, $s1, $s2
sw $s1, 0($s0)
move $s0, $s1
j __L15
__L14:
lw $s0, 4($sp)
lb $s0, 0($s0)
li $s1, 43
seq $s0, $s0, $s1
beq $s0, $zero, __L16
la $s0, data_pointer
lw $s0, 0($s0)
la $s1, data_pointer
lw $s1, 0($s1)
lb $s1, 0($s1)
li $s2, 1
add $s1, $s1, $s2
sll $s1, $s1, 24
sra $s1, $s1, 24
sb $s1, 0($s0)
move $s0, $s1
j __L17
__L16:
lw $s0, 4($sp)
lb $s0, 0($s0)
li $s1, 45
seq $s0, $s0, $s1
beq $s0, $zero, __L18
la $s0, data_pointer
lw $s0, 0($s0)
la $s1, data_pointer
lw $s1, 0($s1)
lb $s1, 0($s1)
li $s2, 1
sub $s1, $s1, $s2
sll $s1, $s1, 24
sra $s1, $s1, 24
sb $s1, 0($s0)
move $s0, $s1
j __L19
__L18:
lw $s0, 4($sp)
lb $s0, 0($s0)
li $s1, 46
seq $s0, $s0, $s1
beq $s0, $zero, __L20
addi $sp, $sp, -16
la $s0, printc
sw $s0, 12($sp)
la $t0, __L22
sw $t0, 8($sp)
la $t0, data_pointer
lw $t0, 0($t0)
sw $t0, 0($sp)
lw $t0, 0($sp)
lb $t0, 0($t0)
sb $t0, 0($sp)
lw $t0, 12($sp)
addi $sp, $sp, 0
jr $t0
__L22:
addi $sp, $sp, 0
lw $t0, 4($sp)
lw $s0, 12($sp)
move $s0, $t0
addi $sp, $sp, 16
j __L23
__L20:
lw $s0, 4($sp)
lb $s0, 0($s0)
li $s1, 44
seq $s0, $s0, $s1
beq $s0, $zero, __L24
addi $sp, $sp, -16
la $s0, data_pointer
lw $s0, 0($s0)
la $s1, inputc
sw $s1, 12($sp)
sw $s0, 8($sp)
la $t0, __L26
sw $t0, 4($sp)
lw $t0, 12($sp)
addi $sp, $sp, 0
jr $t0
__L26:
addi $sp, $sp, 0
lw $t0, 0($sp)
lw $s0, 8($sp)
lw $s1, 12($sp)
move $s1, $t0
sb $s1, 0($s0)
move $s0, $s1
addi $sp, $sp, 16
j __L27
__L24:
lw $s0, 4($sp)
lb $s0, 0($s0)
li $s1, 91
seq $s0, $s0, $s1
beq $s0, $zero, __L28
addi $s0, $sp, 4
lw $s1, 4($sp)
li $s2, 1
add $s1, $s1, $s2
sw $s1, 0($s0)
move $s0, $s1
addi $sp, $sp, -20
addi $s0, $sp, 20
la $s1, match_bracket
sw $s1, 16($sp)
sw $s0, 12($sp)
la $t0, __L30
sw $t0, 8($sp)
lw $t0, 24($sp)
sw $t0, 0($sp)
lw $t0, 16($sp)
addi $sp, $sp, 0
jr $t0
__L30:
addi $sp, $sp, 0
lw $t0, 4($sp)
lw $s0, 12($sp)
lw $s1, 16($sp)
move $s1, $t0
sw $s1, 0($s0)
move $s0, $s1
addi $sp, $sp, 20
__L31:
la $s0, data_pointer
lw $s0, 0($s0)
lb $s0, 0($s0)
beq $s0, $zero, __L32
addi $sp, $sp, -16
la $s0, interpret
sw $s0, 12($sp)
la $t0, __L34
sw $t0, 8($sp)
lw $t0, 20($sp)
sw $t0, 0($sp)
lw $t0, 12($sp)
addi $sp, $sp, 0
jr $t0
__L34:
addi $sp, $sp, 0
lw $t0, 4($sp)
lw $s0, 12($sp)
move $s0, $t0
addi $sp, $sp, 16
j __L31
__L32:
addi $s0, $sp, 4
lw $s1, 0($sp)
sw $s1, 0($s0)
move $s0, $s1
__L28:
__L27:
__L23:
__L19:
__L17:
__L15:
__L13:
addi $s0, $sp, 4
lw $s1, 4($sp)
li $s2, 1
add $s1, $s1, $s2
sw $s1, 0($s0)
move $s0, $s1
j __L8
__L9:
addi $sp, $sp, 4
lw $ra, 8($sp)
jr $ra
.globl entry
entry:
addi $sp, $sp, 0
addi $sp, $sp, -12
la $s0, initialize
sw $s0, 8($sp)
la $t0, __L36
sw $t0, 4($sp)
lw $t0, 8($sp)
addi $sp, $sp, 0
jr $t0
__L36:
addi $sp, $sp, 0
lw $t0, 0($sp)
lw $s0, 8($sp)
move $s0, $t0
addi $sp, $sp, 12
addi $sp, $sp, -16
la $s0, prints
sw $s0, 12($sp)
la $t0, __L38
sw $t0, 8($sp)
la $t0, __str0
sw $t0, 0($sp)
lw $t0, 12($sp)
addi $sp, $sp, 0
jr $t0
__L38:
addi $sp, $sp, 0
lw $t0, 4($sp)
lw $s0, 12($sp)
move $s0, $t0
addi $sp, $sp, 16
addi $sp, $sp, -20
la $s0, inputs
sw $s0, 16($sp)
la $t0, __L40
sw $t0, 12($sp)
la $t0, input_program
sw $t0, 4($sp)
li $t0, 20000
sw $t0, 0($sp)
lw $t0, 16($sp)
addi $sp, $sp, 0
jr $t0
__L40:
addi $sp, $sp, 0
lw $t0, 8($sp)
lw $s0, 16($sp)
move $s0, $t0
addi $sp, $sp, 20
addi $sp, $sp, -16
la $s0, interpret
sw $s0, 12($sp)
la $t0, __L42
sw $t0, 8($sp)
la $t0, input_program
sw $t0, 0($sp)
lw $t0, 12($sp)
addi $sp, $sp, 0
jr $t0
__L42:
addi $sp, $sp, 0
lw $t0, 4($sp)
lw $s0, 12($sp)
move $s0, $t0
addi $sp, $sp, 16
addi $sp, $sp, 0
lw $ra, 4($sp)
jr $ra