Página 1 de 1

nunca fiz, então...

MensagemEnviado: 05 Out 2009 11:54
por fabim
Psoal.
Quando eu escovava bit, em todos os meus softwares eu criava uma pasta com todos os includes de calculos matematicos, drives de periféricos etc.
Cheguei a um ponto agora, que cada compilador tem uma margem de erro.
Dessa forma, ao invés de eu utilizar operandos nativos de compiladores eu queria fazer minhas proprias rotinas de calculos.
por exemplo.
multint(multiplicando, base, resultado);
sumint(base, valoradd, resultado);
divint(base, dividendo, resultado);
sumfloat(.....
multfloat(...
divfloat(....
sqrtint(base, resultado);
sqrtfloat(base, resultado);

Só que, seu eu inserir os comandos em asm, os compiladores simplesmentem não setam bancos de variaveis etc.
Desta forma, os calculos seriam feitos todos em ANSI C.
Teste de bits, carry, toracionamento, soma divisão etc, dentro das rotinas.

Será que é possivel isso, de forma que a portabilidade seja universal ?

Abraços

Fabim

MensagemEnviado: 18 Out 2009 15:30
por joao
Fabim,

Não sei a resposta que você gostaria, mas você se importaria em dizer quais são os compiladores e sistemas operacionais(caso vc usou) que estejam dando a diferença? Para mim, é interessante saber sobre isso, pois trabalho com vários Sistemas Operacionais, mas ainda não notei nenhuma diferença entre os calculos matemáticos que ocorrem. Mas, também nunca fiquei precisando verificar os calculos, desde que o código inteiro funcione. :)

[]'s

MensagemEnviado: 18 Out 2009 16:34
por Djalma Toledo Rodrigues
Fabim quer criar sua própria.

#Include < Fabimath.h > // Biblioteca de números imaginários e irracionais

:D

MensagemEnviado: 19 Out 2009 08:10
por enigmabox
Fabim,

Vai depender se seu hardware é de 8,16,32 ou 64 bits, cada um tem um modo de fazer os calculos matemáticos.
Dentro do C da para escrever suas subrotinas para calculo matematico em ASM, mas ai tem que reservar espaço na RAM para variaveis, endereços, isto é vai ter que saber onde pode e nao pode reservar a area na RAM, vai depender do sistema operacional.
Se o hardware for MCU, dá para acoplar uma FPU em um determinado endereço ou usar um outro MCU para calculos, ai fica facil. Num determinado endereço vc joga as variaveis e o calculo, em outro sai o resultado, por ex.
Agora redesenvolver a roda, não fica facil.