1 %line 1+1 fpsuav.asm 2 3 4 [section .data] 5 EXIT_SUCCESS equ 0 6 SYS_exit equ 60 7 NULL equ 0 8 TRUE equ 1 9 FALSE equ 0 10 SYS_read equ 0 11 SYS_write equ 1 12 SYS_open equ 2 13 SYS_close equ 3 14 SYS_fork equ 57 15 O_RDWR equ 000002 16 17 [section .bss] 18 00000000 arr resq 3 19 00000018 ar_sum resq 1 20 00000020 ar_ave resq 1 21 22 [section .text] 23 [global fpsuav] 24 fpsuav: 25 26 00000000 48C7C600000000 mov rsi, 0 27 00000007 48C7C000000000 mov rax, 0 28 0000000E F20F1008 movsd xmm1, qword[rax] 29 30 00000012 49C7042401000000 mov qword[r12], SYS_write 31 0000001A 48C70425[00000000]- mov qword[arr], SYS_write 32 0000001A 01000000 33 00000026 48C70425[00000000]- mov qword[ar_sum], SYS_write 34 00000026 01000000 35 00000032 48C70425[00000000]- mov qword[ar_ave], SYS_write 36 00000032 01000000 37 38 0000003E 49C7042400000000 mov qword[r12], SYS_read 39 00000046 48C70425[00000000]- mov qword[arr], SYS_read 40 00000046 00000000 41 00000052 48C70425[00000000]- mov qword[ar_sum], SYS_read 42 00000052 00000000 43 0000005E 48C70425[00000000]- mov qword[ar_ave], SYS_read 44 0000005E 00000000 45 46 0000006A 41FF3424 push qword[r12] 47 48 sum_loop: 49 0000006E F20F1004F5[00000000] movsd xmm0, qword[arr+rsi*8] 50 00000077 F2410F110424 movsd qword[r12], xmm0 51 0000007D F2410F580C24 addsd xmm1, qword[r12] 52 00000083 48FFC6 inc rsi 53 00000086 E2E4 loop sum_loop 54 00000088 F20F110C25[00000000] movsd qword[ar_sum], xmm1 55 56 00000091 F20F5E0E divsd xmm1, qword[rsi] 57 00000095 F20F110C25[00000000] movsd qword[ar_ave], xmm1 58 59 0000009E 418F0424 pop qword[r12] 60 61 62 63 64 65