nya
parent
bcf24631d4
commit
89cd73673d
@ -0,0 +1,64 @@
|
|||||||
|
.file "idiv.c"
|
||||||
|
.intel_syntax noprefix
|
||||||
|
.text
|
||||||
|
.section .rodata
|
||||||
|
.LC0:
|
||||||
|
.string "%hd %hd"
|
||||||
|
.LC1:
|
||||||
|
.string "%hd\n"
|
||||||
|
.text
|
||||||
|
.globl main
|
||||||
|
.type main, @function
|
||||||
|
main:
|
||||||
|
.LFB0:
|
||||||
|
.cfi_startproc
|
||||||
|
push rbp
|
||||||
|
.cfi_def_cfa_offset 16
|
||||||
|
.cfi_offset 6, -16
|
||||||
|
mov rbp, rsp
|
||||||
|
.cfi_def_cfa_register 6
|
||||||
|
sub rsp, 16
|
||||||
|
mov rax, QWORD PTR fs:40
|
||||||
|
mov QWORD PTR -8[rbp], rax
|
||||||
|
xor eax, eax
|
||||||
|
lea rdx, -12[rbp]
|
||||||
|
lea rax, -14[rbp]
|
||||||
|
mov rsi, rax
|
||||||
|
lea rax, .LC0[rip]
|
||||||
|
mov rdi, rax
|
||||||
|
mov eax, 0
|
||||||
|
call __isoc99_scanf@PLT
|
||||||
|
movzx eax, WORD PTR -14[rbp]
|
||||||
|
movzx edx, WORD PTR -12[rbp]
|
||||||
|
#APP
|
||||||
|
# 6 "idiv.c" 1
|
||||||
|
mov ax,%ax
|
||||||
|
mov dx,%bx
|
||||||
|
cwd
|
||||||
|
idiv %bx
|
||||||
|
mov %ax, %dx
|
||||||
|
mov %dx, ax
|
||||||
|
|
||||||
|
# 0 "" 2
|
||||||
|
#NO_APP
|
||||||
|
mov WORD PTR -10[rbp], ax
|
||||||
|
movsx eax, WORD PTR -10[rbp]
|
||||||
|
mov esi, eax
|
||||||
|
lea rax, .LC1[rip]
|
||||||
|
mov rdi, rax
|
||||||
|
mov eax, 0
|
||||||
|
call printf@PLT
|
||||||
|
mov eax, 0
|
||||||
|
mov rdx, QWORD PTR -8[rbp]
|
||||||
|
sub rdx, QWORD PTR fs:40
|
||||||
|
je .L3
|
||||||
|
call __stack_chk_fail@PLT
|
||||||
|
.L3:
|
||||||
|
leave
|
||||||
|
.cfi_def_cfa 7, 8
|
||||||
|
ret
|
||||||
|
.cfi_endproc
|
||||||
|
.LFE0:
|
||||||
|
.size main, .-main
|
||||||
|
.ident "GCC: (GNU) 11.2.0"
|
||||||
|
.section .note.GNU-stack,"",@progbits
|
@ -0,0 +1,19 @@
|
|||||||
|
int main() {
|
||||||
|
int x = 1;
|
||||||
|
switch(x) {
|
||||||
|
case 1:
|
||||||
|
return 1;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
return 2;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
case 4:
|
||||||
|
return 113;
|
||||||
|
case 5:
|
||||||
|
return 4;
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,42 @@
|
|||||||
|
.file "switch.c"
|
||||||
|
.text
|
||||||
|
.globl main
|
||||||
|
.type main, @function
|
||||||
|
main:
|
||||||
|
.LFB0:
|
||||||
|
.cfi_startproc
|
||||||
|
pushq %rbp
|
||||||
|
.cfi_def_cfa_offset 16
|
||||||
|
.cfi_offset 6, -16
|
||||||
|
movq %rsp, %rbp
|
||||||
|
.cfi_def_cfa_register 6
|
||||||
|
movl $1, -4(%rbp)
|
||||||
|
cmpl $4, -4(%rbp)
|
||||||
|
jg .L2
|
||||||
|
cmpl $3, -4(%rbp)
|
||||||
|
jge .L3
|
||||||
|
cmpl $1, -4(%rbp)
|
||||||
|
je .L4
|
||||||
|
cmpl $2, -4(%rbp)
|
||||||
|
je .L5
|
||||||
|
jmp .L2
|
||||||
|
.L4:
|
||||||
|
movl $1, %eax
|
||||||
|
jmp .L6
|
||||||
|
.L5:
|
||||||
|
movl $2, %eax
|
||||||
|
jmp .L6
|
||||||
|
.L3:
|
||||||
|
movl $113, %eax
|
||||||
|
jmp .L6
|
||||||
|
.L2:
|
||||||
|
movl $0, %eax
|
||||||
|
.L6:
|
||||||
|
popq %rbp
|
||||||
|
.cfi_def_cfa 7, 8
|
||||||
|
ret
|
||||||
|
.cfi_endproc
|
||||||
|
.LFE0:
|
||||||
|
.size main, .-main
|
||||||
|
.ident "GCC: (GNU) 11.2.0"
|
||||||
|
.section .note.GNU-stack,"",@progbits
|
@ -0,0 +1,88 @@
|
|||||||
|
extern scanf
|
||||||
|
extern printf
|
||||||
|
global main
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
section .text
|
||||||
|
meow:
|
||||||
|
fld qword [x + 8 * ebx]
|
||||||
|
fld qword [n]
|
||||||
|
fcomp
|
||||||
|
fstsw ax
|
||||||
|
sahf
|
||||||
|
jnbe end
|
||||||
|
fld qword [n]
|
||||||
|
fxch
|
||||||
|
fsubr
|
||||||
|
|
||||||
|
fld qword [s]
|
||||||
|
fadd
|
||||||
|
fstp qword [s]
|
||||||
|
|
||||||
|
fld qword [x + 8 * ebx]
|
||||||
|
|
||||||
|
fld qword [q]
|
||||||
|
fxch
|
||||||
|
fdivr
|
||||||
|
|
||||||
|
inc ebx
|
||||||
|
|
||||||
|
fstp qword [x + 8 * ebx]
|
||||||
|
|
||||||
|
call meow
|
||||||
|
dec ebx
|
||||||
|
|
||||||
|
fld qword [x + 8 * ebx]
|
||||||
|
|
||||||
|
fld qword [w]
|
||||||
|
fxch
|
||||||
|
fdivr
|
||||||
|
inc ebx
|
||||||
|
|
||||||
|
fstp qword [x + 8 * ebx]
|
||||||
|
|
||||||
|
call meow
|
||||||
|
|
||||||
|
dec ebx
|
||||||
|
|
||||||
|
ret
|
||||||
|
|
||||||
|
end:
|
||||||
|
sub esp, 4
|
||||||
|
fstp dword [esp]
|
||||||
|
add esp, 4
|
||||||
|
|
||||||
|
ret
|
||||||
|
|
||||||
|
main:
|
||||||
|
|
||||||
|
xor ebx, ebx
|
||||||
|
push x
|
||||||
|
push i
|
||||||
|
call scanf
|
||||||
|
add esp, 8
|
||||||
|
|
||||||
|
call meow
|
||||||
|
|
||||||
|
fld qword [s]
|
||||||
|
sub esp, 8
|
||||||
|
fstp qword [esp]
|
||||||
|
push o
|
||||||
|
call printf
|
||||||
|
add esp, 12
|
||||||
|
|
||||||
|
xor eax, eax
|
||||||
|
ret
|
||||||
|
|
||||||
|
section .data
|
||||||
|
i db "%lf", 0
|
||||||
|
o db "%.10lf", 10, 13, 0
|
||||||
|
|
||||||
|
s dq 0.0
|
||||||
|
n dq 1.0
|
||||||
|
q dq 2.0
|
||||||
|
w dq 3.0
|
||||||
|
|
||||||
|
section .bss
|
||||||
|
x resq 100000
|
Reference in New Issue