.data | |
.globl x | |
.align 4 | |
.type x,@object | |
.size x,16 | |
x: | |
.long 1 | |
.byte 2 | |
.space 3 | |
.byte 3 | |
.byte 64 | |
.space 2 | |
.byte 80 | |
.byte 6 | |
.space 2 | |
.globl i | |
.align 4 | |
.type i,@object | |
.size i,4 | |
i: | |
.long 16 | |
.globl y | |
.align 4 | |
.type y,@object | |
.size y,8 | |
y: | |
.byte 35 | |
.space 3 | |
.byte 9 | |
.byte 0 | |
.byte 0 | |
.byte 0 | |
.globl main | |
.text | |
.align 16 | |
.type main,@function | |
main: | |
pushl %ebp | |
pushl %ebx | |
pushl %esi | |
pushl %edi | |
movl %esp,%ebp | |
movsbl x+13,%edi | |
pushl %edi | |
movl x+12,%edi | |
sall $25,%edi | |
sarl $29,%edi | |
pushl %edi | |
movl x+8,%edi | |
sall $16,%edi | |
sarl $28,%edi | |
pushl %edi | |
movl x+8,%edi | |
sall $20,%edi | |
sarl $20,%edi | |
pushl %edi | |
movsbl x+4,%edi | |
pushl %edi | |
pushl x | |
pushl $.LC4 | |
call printf | |
addl $28,%esp | |
pushl y+4 | |
movl y,%edi | |
movl %edi,%esi | |
shrl $2,%esi | |
andl $15,%esi | |
pushl %esi | |
andl $3,%edi | |
pushl %edi | |
pushl $.LC10 | |
call printf | |
addl $16,%esp | |
movl x+8,%edi | |
andl $0xffff0fff,%edi | |
movl i,%esi | |
sall $28,%esi | |
sarl $28,%esi | |
shll $12,%esi | |
andl $0xf000,%esi | |
orl %esi,%edi | |
movl %edi,x+8 | |
movl x+12,%edi | |
andl $0xffffff8f,%edi | |
movl %edi,x+12 | |
movsbl x+13,%edi | |
pushl %edi | |
movl x+12,%edi | |
sall $25,%edi | |
sarl $29,%edi | |
pushl %edi | |
movl x+8,%edi | |
sall $16,%edi | |
sarl $28,%edi | |
pushl %edi | |
movl x+8,%edi | |
sall $20,%edi | |
sarl $20,%edi | |
pushl %edi | |
movsbl x+4,%edi | |
pushl %edi | |
pushl x | |
pushl $.LC4 | |
call printf | |
addl $28,%esp | |
movl y,%edi | |
andl $0xfffffffc,%edi | |
orl $2,%edi | |
movl %edi,y | |
movl i,%edi | |
movl %edi,y+4 | |
pushl y+4 | |
movl y,%edi | |
movl %edi,%esi | |
shrl $2,%esi | |
andl $15,%esi | |
pushl %esi | |
andl $3,%edi | |
pushl %edi | |
pushl $.LC10 | |
call printf | |
addl $16,%esp | |
pushl $x | |
call f2 | |
addl $4,%esp | |
mov $0,%eax | |
.LC3: | |
movl %ebp,%esp | |
popl %edi | |
popl %esi | |
popl %ebx | |
popl %ebp | |
ret | |
.Lf21: | |
.size main,.Lf21-main | |
.globl f1 | |
.align 16 | |
.type f1,@function | |
f1: | |
pushl %ebp | |
pushl %ebx | |
pushl %esi | |
pushl %edi | |
movl %esp,%ebp | |
movl 20(%ebp),%edi | |
andl $0xffffffc3,(,%edi) | |
movl 20(%ebp),%edi | |
movl (,%edi),%esi | |
andl $0xfffffffc,%esi | |
mov $0,%ebx | |
andl $3,%ebx | |
andl $3,%ebx | |
orl %ebx,%esi | |
movl %esi,(,%edi) | |
movl 20(%ebp),%edi | |
movl (,%edi),%edi | |
andl $60,%edi | |
cmpl $0,%edi | |
je .LC23 | |
pushl $.LC25 | |
call printf | |
addl $4,%esp | |
.LC23: | |
movl 20(%ebp),%edi | |
orl $3,(,%edi) | |
movl 20(%ebp),%edi | |
orl $60,(,%edi) | |
movl 20(%ebp),%edi | |
movl (,%edi),%edi | |
movl %edi,%esi | |
shrl $2,%esi | |
andl $15,%esi | |
pushl %esi | |
andl $3,%edi | |
pushl %edi | |
pushl $.LC26 | |
call printf | |
addl $12,%esp | |
mov $0,%eax | |
.LC22: | |
movl %ebp,%esp | |
popl %edi | |
popl %esi | |
popl %ebx | |
popl %ebp | |
ret | |
.Lf27: | |
.size f1,.Lf27-f1 | |
.globl f2 | |
.align 16 | |
.type f2,@function | |
f2: | |
pushl %ebp | |
pushl %ebx | |
pushl %esi | |
pushl %edi | |
movl %esp,%ebp | |
subl $4,%esp | |
cmpl $0,i | |
jne .LC30 | |
movl $1,-4(%ebp) | |
jmp .LC31 | |
.LC30: | |
movl $0,-4(%ebp) | |
.LC31: | |
movl 20(%ebp),%edi | |
movl (,%edi),%esi | |
andl $0xfffffffc,%esi | |
movl -4(%ebp),%ebx | |
andl $3,%ebx | |
andl $3,%ebx | |
orl %ebx,%esi | |
movl %esi,(,%edi) | |
movl 20(%ebp),%edi | |
pushl %edi | |
call f1 | |
addl $4,%esp | |
movl (,%edi),%esi | |
andl $0xffffffc3,%esi | |
mov $0,%ebx | |
andl $15,%ebx | |
leal (,%ebx,4),%ebx | |
andl $60,%ebx | |
orl %ebx,%esi | |
movl %esi,(,%edi) | |
mov $0,%eax | |
.LC28: | |
movl %ebp,%esp | |
popl %edi | |
popl %esi | |
popl %ebx | |
popl %ebp | |
ret | |
.Lf32: | |
.size f2,.Lf32-f2 | |
.data | |
.align 1 | |
.LC26: | |
.byte 112 | |
.byte 45 | |
.byte 62 | |
.byte 97 | |
.byte 32 | |
.byte 61 | |
.byte 32 | |
.byte 48 | |
.byte 120 | |
.byte 37 | |
.byte 120 | |
.byte 44 | |
.byte 32 | |
.byte 112 | |
.byte 45 | |
.byte 62 | |
.byte 98 | |
.byte 32 | |
.byte 61 | |
.byte 32 | |
.byte 48 | |
.byte 120 | |
.byte 37 | |
.byte 120 | |
.byte 10 | |
.byte 0 | |
.align 1 | |
.LC25: | |
.byte 112 | |
.byte 45 | |
.byte 62 | |
.byte 98 | |
.byte 32 | |
.byte 33 | |
.byte 61 | |
.byte 32 | |
.byte 48 | |
.byte 33 | |
.byte 10 | |
.byte 0 | |
.align 1 | |
.LC10: | |
.byte 121 | |
.byte 32 | |
.byte 61 | |
.byte 32 | |
.byte 37 | |
.byte 100 | |
.byte 32 | |
.byte 37 | |
.byte 100 | |
.byte 32 | |
.byte 37 | |
.byte 100 | |
.byte 10 | |
.byte 0 | |
.align 1 | |
.LC4: | |
.byte 120 | |
.byte 32 | |
.byte 61 | |
.byte 32 | |
.byte 37 | |
.byte 100 | |
.byte 32 | |
.byte 37 | |
.byte 100 | |
.byte 32 | |
.byte 37 | |
.byte 100 | |
.byte 32 | |
.byte 37 | |
.byte 100 | |
.byte 32 | |
.byte 37 | |
.byte 100 | |
.byte 32 | |
.byte 37 | |
.byte 100 | |
.byte 10 | |
.byte 0 | |
.text | |
.ident "LCC: 4.2" |