sort.sbk (3792B)
1 .set reorder 2 .globl in 3 .data 4 .align 2 5 in: 6 .word 0xa 7 .word 0x20 8 .word 0xffffffff 9 .word 0x237 10 .word 0x3 11 .word 0x12 12 .word 0x1 13 .word 0xffffffcd 14 .word 0x315 15 .word 0x0 16 .globl main 17 .text 18 .text 19 .align 2 20 .ent main 21 main: 22 .frame $sp,32,$31 23 .set noreorder 24 .cpload $25 25 .set reorder 26 addu $sp,$sp,-32 27 .mask 0xc2000000,-8 28 .cprestore 16 29 sw $30,20($sp) 30 sw $31,24($sp) 31 la $4,in 32 la $5,10 33 jal sort 34 move $30,$0 35 b L.5 36 L.2: 37 sll $24,$30,2 38 lw $4,in($24) 39 jal putd 40 la $4,10 41 jal putchar 42 L.3: 43 la $30,1($30) 44 L.5: 45 move $24,$30 46 la $15,10 47 bltu $24,$15,L.2 48 move $2,$0 49 L.1: 50 lw $25,16($sp) 51 lw $30,20($sp) 52 lw $31,24($sp) 53 addu $sp,$sp,32 54 j $31 55 .end main 56 .globl putd 57 .text 58 .align 2 59 .ent putd 60 putd: 61 .frame $sp,32,$31 62 .set noreorder 63 .cpload $25 64 .set reorder 65 addu $sp,$sp,-32 66 .mask 0xc2000000,-8 67 .cprestore 16 68 sw $30,20($sp) 69 sw $31,24($sp) 70 move $30,$4 71 bge $30,$0,L.7 72 la $4,45 73 jal putchar 74 negu $30,$30 75 L.7: 76 la $24,10 77 div $24,$30,$24 78 beq $24,$0,L.9 79 la $24,10 80 div $4,$30,$24 81 jal putd 82 L.9: 83 la $24,10 84 rem $24,$30,$24 85 la $4,48($24) 86 jal putchar 87 move $2,$0 88 L.6: 89 lw $25,16($sp) 90 lw $30,20($sp) 91 lw $31,24($sp) 92 addu $sp,$sp,32 93 j $31 94 .end putd 95 .globl sort 96 .text 97 .align 2 98 .ent sort 99 sort: 100 .frame $sp,24,$31 101 .set noreorder 102 .cpload $25 103 .set reorder 104 addu $sp,$sp,-24 105 .mask 0x82000000,-4 106 .cprestore 16 107 sw $31,20($sp) 108 sw $4,24($sp) 109 sw $5,28($sp) 110 lw $24,0+24($sp) 111 sw $24,xx 112 move $4,$24 113 move $5,$0 114 lw $24,4+24($sp) 115 subu $24,$24,1 116 sw $24,4+24($sp) 117 move $6,$24 118 jal quick 119 move $2,$0 120 L.11: 121 lw $25,16($sp) 122 lw $31,20($sp) 123 addu $sp,$sp,24 124 j $31 125 .end sort 126 .globl quick 127 .text 128 .align 2 129 .ent quick 130 quick: 131 .frame $sp,40,$31 132 .set noreorder 133 .cpload $25 134 .set reorder 135 addu $sp,$sp,-40 136 .mask 0xc2e00000,-4 137 sw $21,16($sp) 138 sw $22,20($sp) 139 sw $23,24($sp) 140 .cprestore 28 141 sw $30,32($sp) 142 sw $31,36($sp) 143 move $30,$4 144 move $23,$5 145 move $22,$6 146 blt $23,$22,L.13 147 b L.12 148 L.13: 149 move $4,$30 150 move $5,$23 151 move $6,$22 152 jal partition 153 move $21,$2 154 move $4,$30 155 move $5,$23 156 subu $6,$21,1 157 jal quick 158 move $4,$30 159 la $5,1($21) 160 move $6,$22 161 jal quick 162 move $2,$0 163 L.12: 164 lw $21,16($sp) 165 lw $22,20($sp) 166 lw $23,24($sp) 167 lw $25,28($sp) 168 lw $30,32($sp) 169 lw $31,36($sp) 170 addu $sp,$sp,40 171 j $31 172 .end quick 173 .globl partition 174 .text 175 .align 2 176 .ent partition 177 partition: 178 .frame $sp,48,$31 179 .set noreorder 180 .cpload $25 181 .set reorder 182 addu $sp,$sp,-48 183 .mask 0xc2f00000,-8 184 sw $20,16($sp) 185 sw $21,20($sp) 186 sw $22,24($sp) 187 sw $23,28($sp) 188 .cprestore 32 189 sw $30,36($sp) 190 sw $31,40($sp) 191 move $30,$4 192 move $23,$5 193 move $22,$6 194 la $22,1($22) 195 move $20,$23 196 sll $24,$20,2 197 addu $24,$24,$30 198 lw $21,($24) 199 b L.17 200 L.16: 201 la $23,1($23) 202 b L.20 203 L.19: 204 la $23,1($23) 205 L.20: 206 sll $24,$23,2 207 addu $24,$24,$30 208 lw $24,($24) 209 blt $24,$21,L.19 210 subu $22,$22,1 211 b L.23 212 L.22: 213 subu $22,$22,1 214 L.23: 215 sll $24,$22,2 216 addu $24,$24,$30 217 lw $24,($24) 218 bgt $24,$21,L.22 219 bge $23,$22,L.25 220 sll $24,$23,2 221 addu $4,$24,$30 222 sll $24,$22,2 223 addu $5,$24,$30 224 jal exchange 225 L.25: 226 L.17: 227 blt $23,$22,L.16 228 sll $24,$20,2 229 addu $4,$24,$30 230 sll $24,$22,2 231 addu $5,$24,$30 232 jal exchange 233 move $2,$22 234 L.15: 235 lw $20,16($sp) 236 lw $21,20($sp) 237 lw $22,24($sp) 238 lw $23,28($sp) 239 lw $25,32($sp) 240 lw $30,36($sp) 241 lw $31,40($sp) 242 addu $sp,$sp,48 243 j $31 244 .end partition 245 .globl exchange 246 .text 247 .align 2 248 .ent exchange 249 exchange: 250 .frame $sp,40,$31 251 .set noreorder 252 .cpload $25 253 .set reorder 254 addu $sp,$sp,-40 255 .mask 0xc2800000,-12 256 sw $23,16($sp) 257 .cprestore 20 258 sw $30,24($sp) 259 sw $31,28($sp) 260 move $30,$4 261 move $23,$5 262 la $4,L.28 263 lw $24,xx 264 la $15,4 265 move $14,$30 266 subu $14,$14,$24 267 div $5,$14,$15 268 move $14,$23 269 subu $24,$14,$24 270 div $6,$24,$15 271 jal printf 272 lw $24,($30) 273 sw $24,-4+40($sp) 274 lw $24,($23) 275 sw $24,($30) 276 lw $24,-4+40($sp) 277 sw $24,($23) 278 move $2,$0 279 L.27: 280 lw $23,16($sp) 281 lw $25,20($sp) 282 lw $30,24($sp) 283 lw $31,28($sp) 284 addu $sp,$sp,40 285 j $31 286 .end exchange 287 .globl xx 288 .comm xx,4 289 .rdata 290 .align 0 291 L.28: 292 .byte 101 293 .byte 120 294 .byte 99 295 .byte 104 296 .byte 97 297 .byte 110 298 .byte 103 299 .byte 101 300 .byte 40 301 .byte 37 302 .byte 100 303 .byte 44 304 .byte 37 305 .byte 100 306 .byte 41 307 .byte 10 308 .byte 0