.cstring
LC1:
.ascii "exmple 1 2 3 4\12input : \0"
LC2:
.ascii "%d\0"
LC0:
.ascii "+-*/\0"
.text
.globl _main
_main:
LFB3:
pushq %rbp
LCFI0:
movq %rsp, %rbp
LCFI1:
subq $144, %rsp
LCFI2:
movq ___stack_chk_guard@GOTPCREL(%rip), %rax
movq (%rax), %rdx
movq %rdx, -8(%rbp)
xorl %edx, %edx
movl LC0(%rip), %eax
movl %eax, -48(%rbp)
leaq LC1(%rip), %rdi
movl $0, %eax
call _printf
movl $0, -36(%rbp)
jmp L2
L3:
movl -36(%rbp), %eax
cltq
salq $2, %rax
leaq -144(%rbp), %rsi
addq %rax, %rsi
leaq LC2(%rip), %rdi
movl $0, %eax
call _scanf
incl -36(%rbp)
L2:
cmpl $3, -36(%rbp)
jle L3
movl $0, -40(%rbp)
jmp L5
L6:
movl $0, -36(%rbp)
jmp L7
L8:
movl -36(%rbp), %ecx
movl -36(%rbp), %eax
cltq
movl -144(%rbp,%rax,4), %edx
movslq %ecx,%rax
movl %edx, -96(%rbp,%rax,4)
incl -36(%rbp)
L7:
cmpl $3, -36(%rbp)
jle L8
movl -40(%rbp), %eax
movl %eax, -44(%rbp)
leaq -32(%rbp), %rax
movq %rax, -56(%rbp)
movl $0, -36(%rbp)
jmp L10
L11:
movl -44(%rbp), %edx
movl %edx, %eax
sarl $31, %eax
movl %eax, %ecx
shrl $30, %ecx
leal (%rdx,%rcx), %eax
andl $3, %eax
subl %ecx, %eax
cltq
movzbl -48(%rbp,%rax), %edx
movq -56(%rbp), %rax
movb %dl, (%rax)
movl -44(%rbp), %eax
leal 3(%rax), %edx
testl %eax, %eax
cmovs %edx, %eax
sarl $2, %eax
movl %eax, -44(%rbp)
incq -56(%rbp)
incl -36(%rbp)
L10:
cmpl $2, -36(%rbp)
jle L11
movq -56(%rbp), %rax
movb $61, (%rax)
L13:
leaq -32(%rbp), %rsi
leaq -96(%rbp), %rdi
call _op_exchange
testl %eax, %eax
jne L13
leaq -32(%rbp), %rsi
leaq -96(%rbp), %rdi
movl $1, %edx
call _calc
leaq -32(%rbp), %rsi
leaq -96(%rbp), %rdi
movl $0, %edx
call _calc
cmpl $10, %eax
jne L15
leaq -32(%rbp), %rsi
leaq -144(%rbp), %rdi
call _pp
L15:
incl -40(%rbp)
L5:
cmpl $63, -40(%rbp)
jle L6
movl $0, %eax
movq ___stack_chk_guard@GOTPCREL(%rip), %rdx
movq -8(%rbp), %rcx
xorq (%rdx), %rcx
je L19
call ___stack_chk_fail
L19:
leave
ret
LFE3:
.cstring
LC3:
.ascii "%d %c \0"
.text
.globl _pp
_pp:
LFB4:
pushq %rbp
LCFI3:
movq %rsp, %rbp
LCFI4:
subq $16, %rsp
LCFI5:
movq %rdi, -8(%rbp)
movq %rsi, -16(%rbp)
L21:
movq -16(%rbp), %rax
movzbl (%rax), %eax
movsbl %al,%edx
movq -8(%rbp), %rax
movl (%rax), %esi
leaq LC3(%rip), %rdi
movl $0, %eax
call _printf
movq -16(%rbp), %rax
movzbl (%rax), %eax
cmpb $61, %al
je L22
addq $4, -8(%rbp)
incq -16(%rbp)
jmp L21
L22:
movl $10, %edi
call _putchar
leave
ret
LFE4:
.globl _op_exchange
_op_exchange:
LFB5:
pushq %rbp
LCFI6:
movq %rsp, %rbp
LCFI7:
movq %rdi, -24(%rbp)
movq %rsi, -32(%rbp)
movl $0, -12(%rbp)
jmp L26
L27:
movq -32(%rbp), %rax
movzbl (%rax), %eax
cmpb $47, %al
jne L28
movq -32(%rbp), %rax
incq %rax
movzbl (%rax), %eax
cmpb $42, %al
jne L28
movq -24(%rbp), %rax
addq $4, %rax
movl (%rax), %eax
movl %eax, -8(%rbp)
movq -24(%rbp), %rdx
addq $4, %rdx
movq -24(%rbp), %rax
addq $8, %rax
movl (%rax), %eax
movl %eax, (%rdx)
movq -24(%rbp), %rdx
addq $8, %rdx
movl -8(%rbp), %eax
movl %eax, (%rdx)
movq -32(%rbp), %rax
movzbl (%rax), %eax
movb %al, -1(%rbp)
movq -32(%rbp), %rax
incq %rax
movzbl (%rax), %edx
movq -32(%rbp), %rax
movb %dl, (%rax)
movq -32(%rbp), %rdx
incq %rdx
movzbl -1(%rbp), %eax
movb %al, (%rdx)
movl $1, -12(%rbp)
L28:
addq $4, -24(%rbp)
incq -32(%rbp)
L26:
movq -32(%rbp), %rax
movzbl (%rax), %eax
cmpb $61, %al
jne L27
movl -12(%rbp), %eax
leave
ret
LFE5:
.globl _calc
_calc:
LFB6:
pushq %rbp
LCFI8:
movq %rsp, %rbp
LCFI9:
pushq %rbx
LCFI10:
movq %rdi, -24(%rbp)
movq %rsi, -32(%rbp)
movl %edx, -36(%rbp)
cmpl $0, -36(%rbp)
je L44
jmp L36
L37:
movq -32(%rbp), %rax
movzbl (%rax), %eax
movsbl %al,%eax
movl %eax, -40(%rbp)
cmpl $45, -40(%rbp)
je L40
cmpl $47, -40(%rbp)
je L41
cmpl $42, -40(%rbp)
je L39
jmp L38
L39:
movq -24(%rbp), %rcx
addq $4, %rcx
movq -24(%rbp), %rax
addq $4, %rax
movl (%rax), %edx
movq -24(%rbp), %rax
movl (%rax), %eax
imull %edx, %eax
movl %eax, (%rcx)
movq -24(%rbp), %rax
movl $0, (%rax)
jmp L38
L41:
movq -24(%rbp), %rcx
addq $4, %rcx
movq -24(%rbp), %rax
movl (%rax), %edx
movq -24(%rbp), %rax
addq $4, %rax
movl (%rax), %eax
movl %eax, %ebx
movl %edx, %eax
sarl $31, %edx
idivl %ebx
movl %eax, (%rcx)
movq -24(%rbp), %rax
movl $0, (%rax)
jmp L38
L40:
movq -24(%rbp), %rdx
addq $4, %rdx
movq -24(%rbp), %rax
addq $4, %rax
movl (%rax), %eax
negl %eax
movl %eax, (%rdx)
L38:
addq $4, -24(%rbp)
incq -32(%rbp)
L36:
movq -32(%rbp), %rax
movzbl (%rax), %eax
cmpb $61, %al
jne L37
jmp L43
L45:
movq -24(%rbp), %rcx
addq $4, %rcx
movq -24(%rbp), %rax
addq $4, %rax
movl (%rax), %edx
movq -24(%rbp), %rax
movl (%rax), %eax
leal (%rdx,%rax), %eax
movl %eax, (%rcx)
addq $4, -24(%rbp)
incq -32(%rbp)
L44:
movq -32(%rbp), %rax
movzbl (%rax), %eax
cmpb $61, %al
jne L45
L43:
movq -24(%rbp), %rax
movl (%rax), %eax
popq %rbx
leave
ret
LFE6:
.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
EH_frame1:
.set L$set$0,LECIE1-LSCIE1
.long L$set$0
LSCIE1:
.long 0x0
.byte 0x1
.ascii "zR\0"
.byte 0x1
.byte 0x78
.byte 0x10
.byte 0x1
.byte 0x10
.byte 0xc
.byte 0x7
.byte 0x8
.byte 0x90
.byte 0x1
.align 3
LECIE1:
.globl _main.eh
_main.eh:
LSFDE1:
.set L$set$1,LEFDE1-LASFDE1
.long L$set$1
LASFDE1:
.long LASFDE1-EH_frame1
.quad LFB3-.
.set L$set$2,LFE3-LFB3
.quad L$set$2
.byte 0x0
.byte 0x4
.set L$set$3,LCFI0-LFB3
.long L$set$3
.byte 0xe
.byte 0x10
.byte 0x86
.byte 0x2
.byte 0x4
.set L$set$4,LCFI1-LCFI0
.long L$set$4
.byte 0xd
.byte 0x6
.align 3
LEFDE1:
.globl _pp.eh
_pp.eh:
LSFDE3:
.set L$set$5,LEFDE3-LASFDE3
.long L$set$5
LASFDE3:
.long LASFDE3-EH_frame1
.quad LFB4-.
.set L$set$6,LFE4-LFB4
.quad L$set$6
.byte 0x0
.byte 0x4
.set L$set$7,LCFI3-LFB4
.long L$set$7
.byte 0xe
.byte 0x10
.byte 0x86
.byte 0x2
.byte 0x4
.set L$set$8,LCFI4-LCFI3
.long L$set$8
.byte 0xd
.byte 0x6
.align 3
LEFDE3:
.globl _op_exchange.eh
_op_exchange.eh:
LSFDE5:
.set L$set$9,LEFDE5-LASFDE5
.long L$set$9
LASFDE5:
.long LASFDE5-EH_frame1
.quad LFB5-.
.set L$set$10,LFE5-LFB5
.quad L$set$10
.byte 0x0
.byte 0x4
.set L$set$11,LCFI6-LFB5
.long L$set$11
.byte 0xe
.byte 0x10
.byte 0x86
.byte 0x2
.byte 0x4
.set L$set$12,LCFI7-LCFI6
.long L$set$12
.byte 0xd
.byte 0x6
.align 3
LEFDE5:
.globl _calc.eh
_calc.eh:
LSFDE7:
.set L$set$13,LEFDE7-LASFDE7
.long L$set$13
LASFDE7:
.long LASFDE7-EH_frame1
.quad LFB6-.
.set L$set$14,LFE6-LFB6
.quad L$set$14
.byte 0x0
.byte 0x4
.set L$set$15,LCFI8-LFB6
.long L$set$15
.byte 0xe
.byte 0x10
.byte 0x86
.byte 0x2
.byte 0x4
.set L$set$16,LCFI9-LCFI8
.long L$set$16
.byte 0xd
.byte 0x6
.byte 0x4
.set L$set$17,LCFI10-LCFI9
.long L$set$17
.byte 0x83
.byte 0x3
.align 3
LEFDE7:
.subsections_via_symbols