90 likes | 230 Views
Programando a FPU X87 - Exemplos -. Lauro Moura Bruno Silva {lmmn,bs}@cin.ufpe.br. Conteúdo. Variáveis “flutuantes” Exemplos Raiz quadrada Área do Círculo Volume de um Cone Exercícios Triângulos Senos e cossenos. Variáveis. dd – Precisão simples dq – Precisão dupla
E N D
Programando a FPU X87- Exemplos - Lauro Moura Bruno Silva {lmmn,bs}@cin.ufpe.br
Conteúdo • Variáveis “flutuantes” • Exemplos • Raiz quadrada • Área do Círculo • Volume de um Cone • Exercícios • Triângulos • Senos e cossenos
Variáveis • dd – Precisão simples • dq – Precisão dupla • dt – Precisão extendida y dq 3.0
Raiz quadrada • y = x^(1/2) FILD word [x] FSQRT FSTP dword [y]
Área do Círculo • A = pi*(r^2) FILD word [x] FLD ST0 FMULP ST1, ST0 FLDPI FMULP ST1, ST0 FSTP dword [y]
Volume de um Cone • V = h*A/3 mov ax, [r] mov [x], ax call circle FLD dword [y] FILD word [h] FMULP ST1, ST0 FILD word [three] FDIVP ST1, ST0 FST dword [y]
Exercício 1: Triângulos • Crie uma função que leia três posições de memória (lados de um triangulo) e determine os ângulos desse triângulo. • Dica: Arco-seno...
Exercício 2: Equação Quadrática • Crie uma função que receba três argumentos (inteiros, ‘a’, ‘b’ e ‘c’) e atualize duas posições de memória com as raízes da equação quadrática correspondente.
Referências • IA-32 Intel Architecture Software Developer’s Manual, Volume 1 – Basic Architecture. Intel Corporation. Order Number: 253665-016US • NASM Manual http://nasm.sourceforge.net/doc/html/nasmdoc0.html