Quake-III-Arena

Quake III Arena GPL Source Release
Log | Files | Refs

sort.sbk (4166B)


      1 .data
      2 .globl in
      3 .align 4
      4 .type in,@object
      5 in:
      6 .long 10
      7 .long 32
      8 .long -1
      9 .long 567
     10 .long 3
     11 .long 18
     12 .long 1
     13 .long -51
     14 .long 789
     15 .long 0
     16 .size in,40
     17 .globl main
     18 .text
     19 .align 16
     20 .type main,@function
     21 main:
     22 pushl %ebp
     23 pushl %ebx
     24 pushl %esi
     25 pushl %edi
     26 movl %esp,%ebp
     27 subl $4,%esp
     28 pushl $10
     29 pushl $in
     30 call sort
     31 addl $8,%esp
     32 movl $0,-4(%ebp)
     33 jmp .LC5
     34 .LC2:
     35 movl -4(%ebp),%edi
     36 pushl in(,%edi,4)
     37 call putd
     38 addl $4,%esp
     39 pushl $10
     40 call putchar
     41 addl $4,%esp
     42 .LC3:
     43 incl -4(%ebp)
     44 .LC5:
     45 movl -4(%ebp),%edi
     46 cmpl $10,%edi
     47 jb .LC2
     48 movl $0,%eax
     49 .LC1:
     50 movl %ebp,%esp
     51 popl %edi
     52 popl %esi
     53 popl %ebx
     54 popl %ebp
     55 ret
     56 .Lf6:
     57 .size main,.Lf6-main
     58 .globl putd
     59 .align 16
     60 .type putd,@function
     61 putd:
     62 pushl %ebp
     63 pushl %ebx
     64 pushl %esi
     65 pushl %edi
     66 movl %esp,%ebp
     67 cmpl $0,20(%ebp)
     68 jge .LC8
     69 pushl $45
     70 call putchar
     71 addl $4,%esp
     72 negl 20(%ebp)
     73 .LC8:
     74 movl 20(%ebp),%eax
     75 movl $10,%ecx
     76 cdq
     77 idivl %ecx
     78 cmpl $0,%eax
     79 je .LC10
     80 movl 20(%ebp),%eax
     81 movl $10,%ecx
     82 cdq
     83 idivl %ecx
     84 pushl %eax
     85 call putd
     86 addl $4,%esp
     87 .LC10:
     88 movl 20(%ebp),%eax
     89 movl $10,%ecx
     90 cdq
     91 idivl %ecx
     92 leal 48(%edx),%edi
     93 pushl %edi
     94 call putchar
     95 addl $4,%esp
     96 movl $0,%eax
     97 .LC7:
     98 movl %ebp,%esp
     99 popl %edi
    100 popl %esi
    101 popl %ebx
    102 popl %ebp
    103 ret
    104 .Lf12:
    105 .size putd,.Lf12-putd
    106 .globl sort
    107 .align 16
    108 .type sort,@function
    109 sort:
    110 pushl %ebp
    111 pushl %ebx
    112 pushl %esi
    113 pushl %edi
    114 movl %esp,%ebp
    115 movl 24(%ebp),%edi
    116 subl $1,%edi
    117 movl %edi,24(%ebp)
    118 pushl %edi
    119 pushl $0
    120 movl 20(%ebp),%edi
    121 movl %edi,xx
    122 pushl %edi
    123 call quick
    124 addl $12,%esp
    125 movl $0,%eax
    126 .LC13:
    127 movl %ebp,%esp
    128 popl %edi
    129 popl %esi
    130 popl %ebx
    131 popl %ebp
    132 ret
    133 .Lf14:
    134 .size sort,.Lf14-sort
    135 .globl quick
    136 .align 16
    137 .type quick,@function
    138 quick:
    139 pushl %ebp
    140 pushl %ebx
    141 pushl %esi
    142 pushl %edi
    143 movl %esp,%ebp
    144 subl $4,%esp
    145 movl 28(%ebp),%edi
    146 cmpl %edi,24(%ebp)
    147 jl .LC16
    148 jmp .LC15
    149 .LC16:
    150 pushl 28(%ebp)
    151 pushl 24(%ebp)
    152 pushl 20(%ebp)
    153 call partition
    154 addl $12,%esp
    155 movl %eax,-4(%ebp)
    156 movl -4(%ebp),%edi
    157 subl $1,%edi
    158 pushl %edi
    159 pushl 24(%ebp)
    160 pushl 20(%ebp)
    161 call quick
    162 addl $12,%esp
    163 pushl 28(%ebp)
    164 movl -4(%ebp),%edi
    165 leal 1(%edi),%edi
    166 pushl %edi
    167 pushl 20(%ebp)
    168 call quick
    169 addl $12,%esp
    170 movl $0,%eax
    171 .LC15:
    172 movl %ebp,%esp
    173 popl %edi
    174 popl %esi
    175 popl %ebx
    176 popl %ebp
    177 ret
    178 .Lf18:
    179 .size quick,.Lf18-quick
    180 .globl partition
    181 .align 16
    182 .type partition,@function
    183 partition:
    184 pushl %ebp
    185 pushl %ebx
    186 pushl %esi
    187 pushl %edi
    188 movl %esp,%ebp
    189 subl $8,%esp
    190 incl 28(%ebp)
    191 movl 24(%ebp),%edi
    192 movl %edi,-8(%ebp)
    193 movl -8(%ebp),%edi
    194 movl 20(%ebp),%esi
    195 movl (%esi,%edi,4),%edi
    196 movl %edi,-4(%ebp)
    197 jmp .LC21
    198 .LC20:
    199 incl 24(%ebp)
    200 jmp .LC24
    201 .LC23:
    202 incl 24(%ebp)
    203 .LC24:
    204 movl 24(%ebp),%edi
    205 movl 20(%ebp),%esi
    206 movl -4(%ebp),%ebx
    207 cmpl %ebx,(%esi,%edi,4)
    208 jl .LC23
    209 decl 28(%ebp)
    210 jmp .LC27
    211 .LC26:
    212 decl 28(%ebp)
    213 .LC27:
    214 movl 28(%ebp),%edi
    215 movl 20(%ebp),%esi
    216 movl -4(%ebp),%ebx
    217 cmpl %ebx,(%esi,%edi,4)
    218 jg .LC26
    219 movl 28(%ebp),%edi
    220 cmpl %edi,24(%ebp)
    221 jge .LC29
    222 movl 20(%ebp),%edi
    223 movl 28(%ebp),%esi
    224 leal (%edi,%esi,4),%esi
    225 pushl %esi
    226 movl 24(%ebp),%esi
    227 leal (%edi,%esi,4),%edi
    228 pushl %edi
    229 call exchange
    230 addl $8,%esp
    231 .LC29:
    232 .LC21:
    233 movl 28(%ebp),%edi
    234 cmpl %edi,24(%ebp)
    235 jl .LC20
    236 movl 20(%ebp),%edi
    237 movl 28(%ebp),%esi
    238 leal (%edi,%esi,4),%esi
    239 pushl %esi
    240 movl -8(%ebp),%esi
    241 leal (%edi,%esi,4),%edi
    242 pushl %edi
    243 call exchange
    244 addl $8,%esp
    245 movl 28(%ebp),%eax
    246 .LC19:
    247 movl %ebp,%esp
    248 popl %edi
    249 popl %esi
    250 popl %ebx
    251 popl %ebp
    252 ret
    253 .Lf31:
    254 .size partition,.Lf31-partition
    255 .globl exchange
    256 .align 16
    257 .type exchange,@function
    258 exchange:
    259 pushl %ebp
    260 pushl %ebx
    261 pushl %esi
    262 pushl %edi
    263 movl %esp,%ebp
    264 subl $4,%esp
    265 movl xx,%edi
    266 movl $4,%esi
    267 movl 24(%ebp),%ebx
    268 subl %edi,%ebx
    269 movl %ebx,%eax
    270 movl %esi,%ecx
    271 cdq
    272 idivl %ecx
    273 pushl %eax
    274 movl 20(%ebp),%ebx
    275 subl %edi,%ebx
    276 movl %ebx,%eax
    277 movl %esi,%ecx
    278 cdq
    279 idivl %ecx
    280 pushl %eax
    281 pushl $.LC33
    282 call printf
    283 addl $12,%esp
    284 movl 20(%ebp),%edi
    285 movl (,%edi),%esi
    286 movl %esi,-4(%ebp)
    287 movl 24(%ebp),%esi
    288 movl (,%esi),%esi
    289 movl %esi,(,%edi)
    290 movl 24(%ebp),%edi
    291 movl -4(%ebp),%esi
    292 movl %esi,(,%edi)
    293 movl $0,%eax
    294 .LC32:
    295 movl %ebp,%esp
    296 popl %edi
    297 popl %esi
    298 popl %ebx
    299 popl %ebp
    300 ret
    301 .Lf34:
    302 .size exchange,.Lf34-exchange
    303 .bss
    304 .globl xx
    305 .align 4
    306 .type xx,@object
    307 .size xx,4
    308 .comm xx,4
    309 .data
    310 .align 1
    311 .LC33:
    312 .byte 101
    313 .byte 120
    314 .byte 99
    315 .byte 104
    316 .byte 97
    317 .byte 110
    318 .byte 103
    319 .byte 101
    320 .byte 40
    321 .byte 37
    322 .byte 100
    323 .byte 44
    324 .byte 37
    325 .byte 100
    326 .byte 41
    327 .byte 10
    328 .byte 0
    329 .text
    330 .ident "LCC: 4.1"