Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .text
- .globl main
- main:
- movq $8, %rdi
- call sbrk
- movq $D_Main, 0(%rax)
- pushq %rax
- pushq $0
- movq 0(%rax), %rcx
- addq $8, %rcx
- call *0(%rcx)
- popq %rax
- popq %rax
- xorq %rax, %rax
- ret
- M0_Power_power:
- pushq %rbp
- movq %rsp, %rbp
- movq $1, %rdi
- subq $8, %rsp
- movq %rdi, -8(%rbp)
- movq $0, %rdi
- movq %rbp, %rdx
- addq $24, %rdx
- movq 0(%rdx), %rdi
- subq $8, %rsp
- movq %rdi, -16(%rbp)
- movq $0, %rdi
- movq %rbp, %rdx
- addq $16, %rdx
- movq 0(%rdx), %rdi
- subq $8, %rsp
- movq %rdi, -24(%rbp)
- movq $0, %rdi
- L0_whilewhile:
- movq %rbp, %rdx
- addq $-24, %rdx
- movq 0(%rdx), %rdi
- pushq %rdi
- movq $0, %rdi
- popq %rax
- cmpq %rdi, %rax
- seta %al
- movzbq %al, %rdi
- cmpq $0, %rdi
- jz L0_whileend
- movq %rbp, %rdx
- addq $-24, %rdx
- movq 0(%rdx), %rdi
- pushq %rdi
- movq $2, %rdi
- popq %rax
- movq $0, %rdx
- idivq %rdi
- movq %rdx, %rdi
- pushq %rdi
- movq $0, %rdi
- popq %rax
- cmpq %rdi, %rax
- setne %al
- movzbq %al, %rdi
- cmpq $0, %rdi
- jz L0_else
- movq %rbp, %rdx
- addq $-8, %rdx
- movq 0(%rdx), %rdi
- pushq %rdi
- movq %rbp, %rdx
- addq $-16, %rdx
- movq 0(%rdx), %rdi
- popq %rax
- imulq %rax, %rdi
- movq %rbp, %rdx
- addq $-8, %rdx
- movq %rdi, 0(%rdx)
- movq $0, %rdi
- jmp L0_end
- L0_else:
- addq $0, %rsp
- L0_end:
- movq %rbp, %rdx
- addq $-16, %rdx
- movq 0(%rdx), %rdi
- pushq %rdi
- movq %rbp, %rdx
- addq $-16, %rdx
- movq 0(%rdx), %rdi
- popq %rax
- imulq %rax, %rdi
- movq %rbp, %rdx
- addq $-16, %rdx
- movq %rdi, 0(%rdx)
- movq $0, %rdi
- movq %rbp, %rdx
- addq $-24, %rdx
- movq 0(%rdx), %rdi
- pushq %rdi
- movq $2, %rdi
- popq %rax
- movq $0, %rdx
- idivq %rdi
- movq %rax, %rdi
- movq %rbp, %rdx
- addq $-24, %rdx
- movq %rdi, 0(%rdx)
- movq $0, %rdi
- addq $0, %rsp
- jmp L0_whilewhile
- L0_whileend:
- movq $0, %rdi
- movq %rbp, %rdx
- addq $-8, %rdx
- movq 0(%rdx), %rdi
- addq $24, %rsp
- popq %rbp
- movq %rdi, %rax
- ret
- M1_Main_main:
- pushq %rbp
- movq %rsp, %rbp
- movq $8, %rdi
- call sbrk
- movq $D_Power, 0(%rax)
- movq %rax, %rdi
- subq $8, %rsp
- movq %rdi, -8(%rbp)
- movq $0, %rdi
- movq %rbp, %rdx
- addq $-8, %rdx
- movq 0(%rdx), %rdi
- movq 0(%rdi), %rdx
- pushq %rdx
- movq $2, %rdi
- pushq %rdi
- movq $4, %rdi
- pushq %rdi
- movq 16(%rsp), %rdx
- movq 0(%rdx), %rdx
- addq $8, %rdx
- call *0(%rdx)
- addq $24, %rsp
- movq %rdi, %rsi
- movq $0, %rax
- movq $printfIntFormat, %rdi
- call printf
- movq $0, %rdi
- movq $string0, %rdi
- movq $0, %rax
- call printf
- movq $0, %rdi
- movq %rbp, %rdx
- addq $-8, %rdx
- movq 0(%rdx), %rdi
- movq 0(%rdi), %rdx
- pushq %rdx
- movq $6, %rdi
- pushq %rdi
- movq $3, %rdi
- pushq %rdi
- movq 16(%rsp), %rdx
- movq 0(%rdx), %rdx
- addq $8, %rdx
- call *0(%rdx)
- addq $24, %rsp
- movq %rdi, %rsi
- movq $0, %rax
- movq $printfIntFormat, %rdi
- call printf
- movq $0, %rdi
- movq $string1, %rdi
- movq $0, %rax
- call printf
- movq $0, %rdi
- addq $8, %rsp
- popq %rbp
- movq %rdi, %rax
- ret
- .data
- printfIntFormat:
- .string "%d"
- D_String:
- .quad 0
- .quad
- D_Power:
- .quad 0
- .quad M0_Power_power
- string0:
- .string "\n"
- string1:
- .string "\n"
- D_Main:
- .quad 0
- .quad M1_Main_main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement