379 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			379 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
.set reorder
 | 
						|
.globl main
 | 
						|
.text
 | 
						|
.text
 | 
						|
.align 2
 | 
						|
.ent main
 | 
						|
main:
 | 
						|
.frame $sp,48,$31
 | 
						|
.set noreorder
 | 
						|
.cpload $25
 | 
						|
.set reorder
 | 
						|
addu $sp,$sp,-48
 | 
						|
.mask 0x82000000,-28
 | 
						|
.cprestore 16
 | 
						|
sw $31,20($sp)
 | 
						|
sw $0,-24+48($sp)
 | 
						|
sw $0,next
 | 
						|
b L.3
 | 
						|
L.2:
 | 
						|
la $4,-20+48($sp)
 | 
						|
la $5,-24+48($sp)
 | 
						|
jal lookup
 | 
						|
lw $15,($2)
 | 
						|
la $15,1($15)
 | 
						|
sw $15,($2)
 | 
						|
L.3:
 | 
						|
la $4,-20+48($sp)
 | 
						|
jal getword
 | 
						|
bne $2,$0,L.2
 | 
						|
lw $4,-24+48($sp)
 | 
						|
jal tprint
 | 
						|
move $2,$0
 | 
						|
L.1:
 | 
						|
lw $25,16($sp)
 | 
						|
lw $31,20($sp)
 | 
						|
addu $sp,$sp,48
 | 
						|
j $31
 | 
						|
.end main
 | 
						|
.globl err
 | 
						|
.text
 | 
						|
.align 2
 | 
						|
.ent err
 | 
						|
err:
 | 
						|
.frame $sp,32,$31
 | 
						|
.set noreorder
 | 
						|
.cpload $25
 | 
						|
.set reorder
 | 
						|
addu $sp,$sp,-32
 | 
						|
.mask 0x82000000,-12
 | 
						|
.cprestore 16
 | 
						|
sw $31,20($sp)
 | 
						|
sw $4,32($sp)
 | 
						|
la $4,L.6
 | 
						|
lw $5,0+32($sp)
 | 
						|
jal printf
 | 
						|
la $4,1
 | 
						|
jal exit
 | 
						|
move $2,$0
 | 
						|
L.5:
 | 
						|
lw $25,16($sp)
 | 
						|
lw $31,20($sp)
 | 
						|
addu $sp,$sp,32
 | 
						|
j $31
 | 
						|
.end err
 | 
						|
.globl getword
 | 
						|
.text
 | 
						|
.align 2
 | 
						|
.ent getword
 | 
						|
getword:
 | 
						|
.frame $sp,32,$31
 | 
						|
.set noreorder
 | 
						|
.cpload $25
 | 
						|
.set reorder
 | 
						|
addu $sp,$sp,-32
 | 
						|
.mask 0xc2800000,-4
 | 
						|
sw $23,16($sp)
 | 
						|
.cprestore 20
 | 
						|
sw $30,24($sp)
 | 
						|
sw $31,28($sp)
 | 
						|
sw $4,32($sp)
 | 
						|
L.8:
 | 
						|
L.9:
 | 
						|
jal getchar
 | 
						|
move $24,$2
 | 
						|
move $30,$24
 | 
						|
la $15,-1
 | 
						|
beq $24,$15,L.11
 | 
						|
move $4,$30
 | 
						|
jal isletter
 | 
						|
beq $2,$0,L.8
 | 
						|
L.11:
 | 
						|
lw $23,0+32($sp)
 | 
						|
b L.15
 | 
						|
L.12:
 | 
						|
move $24,$23
 | 
						|
la $23,1($24)
 | 
						|
move $15,$30
 | 
						|
sb $15,($24)
 | 
						|
L.13:
 | 
						|
jal getchar
 | 
						|
move $30,$2
 | 
						|
L.15:
 | 
						|
move $4,$30
 | 
						|
jal isletter
 | 
						|
move $30,$2
 | 
						|
bne $2,$0,L.12
 | 
						|
sb $0,($23)
 | 
						|
move $24,$23
 | 
						|
lw $15,0+32($sp)
 | 
						|
bleu $24,$15,L.16
 | 
						|
la $2,1
 | 
						|
b L.7
 | 
						|
L.16:
 | 
						|
move $2,$0
 | 
						|
L.7:
 | 
						|
lw $23,16($sp)
 | 
						|
lw $25,20($sp)
 | 
						|
lw $30,24($sp)
 | 
						|
lw $31,28($sp)
 | 
						|
addu $sp,$sp,32
 | 
						|
j $31
 | 
						|
.end getword
 | 
						|
.globl isletter
 | 
						|
.text
 | 
						|
.align 2
 | 
						|
.ent isletter
 | 
						|
isletter:
 | 
						|
.frame $sp,0,$31
 | 
						|
.set noreorder
 | 
						|
.cpload $25
 | 
						|
.set reorder
 | 
						|
la $24,65
 | 
						|
blt $4,$24,L.19
 | 
						|
la $24,90
 | 
						|
bgt $4,$24,L.19
 | 
						|
la $4,32($4)
 | 
						|
L.19:
 | 
						|
la $24,97
 | 
						|
blt $4,$24,L.21
 | 
						|
la $24,122
 | 
						|
bgt $4,$24,L.21
 | 
						|
move $2,$4
 | 
						|
b L.18
 | 
						|
L.21:
 | 
						|
move $2,$0
 | 
						|
L.18:
 | 
						|
j $31
 | 
						|
.end isletter
 | 
						|
.globl lookup
 | 
						|
.text
 | 
						|
.align 2
 | 
						|
.ent lookup
 | 
						|
lookup:
 | 
						|
.frame $sp,32,$31
 | 
						|
.set noreorder
 | 
						|
.cpload $25
 | 
						|
.set reorder
 | 
						|
addu $sp,$sp,-32
 | 
						|
.mask 0xc2000000,-8
 | 
						|
.cprestore 16
 | 
						|
sw $30,20($sp)
 | 
						|
sw $31,24($sp)
 | 
						|
sw $4,32($sp)
 | 
						|
move $30,$5
 | 
						|
lw $24,($30)
 | 
						|
beq $24,$0,L.24
 | 
						|
lw $4,0+32($sp)
 | 
						|
lw $24,($30)
 | 
						|
lw $5,12($24)
 | 
						|
jal strcmp
 | 
						|
sw $2,-4+32($sp)
 | 
						|
lw $24,-4+32($sp)
 | 
						|
bge $24,$0,L.26
 | 
						|
lw $4,0+32($sp)
 | 
						|
lw $24,($30)
 | 
						|
la $5,4($24)
 | 
						|
jal lookup
 | 
						|
move $24,$2
 | 
						|
b L.23
 | 
						|
L.26:
 | 
						|
lw $24,-4+32($sp)
 | 
						|
ble $24,$0,L.28
 | 
						|
lw $4,0+32($sp)
 | 
						|
lw $24,($30)
 | 
						|
la $5,8($24)
 | 
						|
jal lookup
 | 
						|
move $24,$2
 | 
						|
b L.23
 | 
						|
L.28:
 | 
						|
lw $2,($30)
 | 
						|
b L.23
 | 
						|
L.24:
 | 
						|
lw $24,next
 | 
						|
la $15,2000
 | 
						|
blt $24,$15,L.30
 | 
						|
la $4,L.32
 | 
						|
jal err
 | 
						|
L.30:
 | 
						|
lw $24,next
 | 
						|
sll $24,$24,4
 | 
						|
sw $0,words($24)
 | 
						|
lw $24,next
 | 
						|
sll $24,$24,4
 | 
						|
sw $0,words+8($24)
 | 
						|
sw $0,words+4($24)
 | 
						|
lw $4,0+32($sp)
 | 
						|
jal strlen
 | 
						|
move $24,$2
 | 
						|
la $4,1($24)
 | 
						|
jal malloc
 | 
						|
lw $15,next
 | 
						|
sll $15,$15,4
 | 
						|
sw $2,words+12($15)
 | 
						|
lw $24,next
 | 
						|
sll $24,$24,4
 | 
						|
lw $24,words+12($24)
 | 
						|
bne $24,$0,L.36
 | 
						|
la $4,L.39
 | 
						|
jal err
 | 
						|
L.36:
 | 
						|
lw $24,next
 | 
						|
sll $24,$24,4
 | 
						|
lw $4,words+12($24)
 | 
						|
lw $5,0+32($sp)
 | 
						|
jal strcpy
 | 
						|
lw $24,next
 | 
						|
la $15,1($24)
 | 
						|
sw $15,next
 | 
						|
sll $24,$24,4
 | 
						|
la $24,words($24)
 | 
						|
sw $24,($30)
 | 
						|
move $2,$24
 | 
						|
L.23:
 | 
						|
lw $25,16($sp)
 | 
						|
lw $30,20($sp)
 | 
						|
lw $31,24($sp)
 | 
						|
addu $sp,$sp,32
 | 
						|
j $31
 | 
						|
.end lookup
 | 
						|
.globl tprint
 | 
						|
.text
 | 
						|
.align 2
 | 
						|
.ent tprint
 | 
						|
tprint:
 | 
						|
.frame $sp,32,$31
 | 
						|
.set noreorder
 | 
						|
.cpload $25
 | 
						|
.set reorder
 | 
						|
addu $sp,$sp,-32
 | 
						|
.mask 0xc2000000,-8
 | 
						|
.cprestore 16
 | 
						|
sw $30,20($sp)
 | 
						|
sw $31,24($sp)
 | 
						|
move $30,$4
 | 
						|
move $24,$30
 | 
						|
beq $24,$0,L.42
 | 
						|
lw $4,4($30)
 | 
						|
jal tprint
 | 
						|
la $4,L.44
 | 
						|
lw $5,($30)
 | 
						|
lw $6,12($30)
 | 
						|
jal printf
 | 
						|
lw $4,8($30)
 | 
						|
jal tprint
 | 
						|
L.42:
 | 
						|
move $2,$0
 | 
						|
L.41:
 | 
						|
lw $25,16($sp)
 | 
						|
lw $30,20($sp)
 | 
						|
lw $31,24($sp)
 | 
						|
addu $sp,$sp,32
 | 
						|
j $31
 | 
						|
.end tprint
 | 
						|
.globl strcmp
 | 
						|
.text
 | 
						|
.align 2
 | 
						|
.ent strcmp
 | 
						|
strcmp:
 | 
						|
.frame $sp,0,$31
 | 
						|
.set noreorder
 | 
						|
.cpload $25
 | 
						|
.set reorder
 | 
						|
b L.47
 | 
						|
L.46:
 | 
						|
move $24,$4
 | 
						|
la $4,1($24)
 | 
						|
lb $24,($24)
 | 
						|
bne $24,$0,L.49
 | 
						|
move $2,$0
 | 
						|
b L.45
 | 
						|
L.49:
 | 
						|
la $5,1($5)
 | 
						|
L.47:
 | 
						|
lb $24,($4)
 | 
						|
lb $15,($5)
 | 
						|
beq $24,$15,L.46
 | 
						|
lb $24,($4)
 | 
						|
bne $24,$0,L.51
 | 
						|
la $2,-1
 | 
						|
b L.45
 | 
						|
L.51:
 | 
						|
lb $24,($5)
 | 
						|
bne $24,$0,L.53
 | 
						|
la $2,1
 | 
						|
b L.45
 | 
						|
L.53:
 | 
						|
lb $24,($4)
 | 
						|
lb $15,($5)
 | 
						|
subu $2,$24,$15
 | 
						|
L.45:
 | 
						|
j $31
 | 
						|
.end strcmp
 | 
						|
.globl next
 | 
						|
.comm next,4
 | 
						|
.globl words
 | 
						|
.comm words,32000
 | 
						|
.rdata
 | 
						|
.align 0
 | 
						|
L.44:
 | 
						|
.byte 37
 | 
						|
.byte 100
 | 
						|
.byte 9
 | 
						|
.byte 37
 | 
						|
.byte 115
 | 
						|
.byte 10
 | 
						|
.byte 0
 | 
						|
.align 0
 | 
						|
L.39:
 | 
						|
.byte 111
 | 
						|
.byte 117
 | 
						|
.byte 116
 | 
						|
.byte 32
 | 
						|
.byte 111
 | 
						|
.byte 102
 | 
						|
.byte 32
 | 
						|
.byte 119
 | 
						|
.byte 111
 | 
						|
.byte 114
 | 
						|
.byte 100
 | 
						|
.byte 32
 | 
						|
.byte 115
 | 
						|
.byte 116
 | 
						|
.byte 111
 | 
						|
.byte 114
 | 
						|
.byte 97
 | 
						|
.byte 103
 | 
						|
.byte 101
 | 
						|
.byte 0
 | 
						|
.align 0
 | 
						|
L.32:
 | 
						|
.byte 111
 | 
						|
.byte 117
 | 
						|
.byte 116
 | 
						|
.byte 32
 | 
						|
.byte 111
 | 
						|
.byte 102
 | 
						|
.byte 32
 | 
						|
.byte 110
 | 
						|
.byte 111
 | 
						|
.byte 100
 | 
						|
.byte 101
 | 
						|
.byte 32
 | 
						|
.byte 115
 | 
						|
.byte 116
 | 
						|
.byte 111
 | 
						|
.byte 114
 | 
						|
.byte 97
 | 
						|
.byte 103
 | 
						|
.byte 101
 | 
						|
.byte 0
 | 
						|
.align 0
 | 
						|
L.6:
 | 
						|
.byte 63
 | 
						|
.byte 32
 | 
						|
.byte 37
 | 
						|
.byte 115
 | 
						|
.byte 10
 | 
						|
.byte 0
 |