Programando a FPU X87 - Exemplos -

9
Programando a FPU X87 - Exemplos - Lauro Moura Bruno Silva {lmmn,bs}@cin.ufpe.br

description

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 - PowerPoint PPT Presentation

Transcript of Programando a FPU X87 - Exemplos -

Page 1: Programando a FPU X87 - Exemplos -

Programando a FPU X87

- Exemplos -

Lauro Moura

Bruno Silva

{lmmn,bs}@cin.ufpe.br

Page 2: Programando a FPU X87 - Exemplos -

Conteúdo Variáveis “flutuantes” Exemplos

– Raiz quadrada– Área do Círculo– Volume de um Cone

Exercícios– Triângulos– Senos e cossenos

Page 3: Programando a FPU X87 - Exemplos -

Variáveis dd – Precisão simples dq – Precisão dupla dt – Precisão extendida

y dq 3.0

Page 4: Programando a FPU X87 - Exemplos -

Raiz quadrada y = x^(1/2)

FILD word [x]

FSQRT

FSTP dword [y]

Page 5: Programando a FPU X87 - Exemplos -

Área do Círculo A = pi*(r^2)

FILD word [x]

FLD ST0

FMULP ST1, ST0

FLDPI

FMULP ST1, ST0

FSTP dword [y]

Page 6: Programando a FPU X87 - Exemplos -

Volume de um Cone V = h*A/3

mov ax, [r]mov [x], axcall circleFLD dword [y]FILD word [h]FMULP ST1, ST0FILD word [three]FDIVP ST1, ST0FST dword [y]

Page 7: Programando a FPU X87 - Exemplos -

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...

Page 8: Programando a FPU X87 - Exemplos -

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.

Page 9: Programando a FPU X87 - Exemplos -

Referências IA-32 Intel Architecture Software

Developer’s Manual, Volume 1 – Basic Architecture. Intel Corporation.

Order Number: 253665-016US

NASM Manualhttp://nasm.sourceforge.net/doc/html/nasmdoc0.html