Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- section .data ;сложить два числа
- fmt: db "%lf", 10, 0
- a: dq 2.0 ;dt, dq, db
- b: dq 3.0
- section .bss
- s: resq 1
- section .text
- extern _printf
- global _main
- _main: ;нужно загрузить данные в стек предварительно
- fld qword [a] ;загрузка st[0] <- [a]
- fadd qword [b] ;st0 <- st0 + [b]
- fst qword [s];нельзя пушать регистры с плавающей точкой, для этого исп оператор fst, есть модификация fstp, [s]<-st0
- push dword [s+4];делим на две части
- push dword [s]
- push fmt
- call _printf
- add esp, 12
- xor eax, eax
- xor ecx, ecx ;ргеистры fpu сами очищаются при выходе
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement