Autor Tema: Multiplicar un numero de N bits por una constante  (Leído 1893 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado carlosmaid

  • PIC10
  • *
  • Mensajes: 13
    • MSX Hardware Argentina
Multiplicar un numero de N bits por una constante
« en: 12 de Noviembre de 2007, 02:23:36 »
Estoy desarrollando subrutinas en asm para manejar una memoria SD basandome en lo que se habla en el topic  MMC Card : Hardware & Firmware del subforo de proyectos.

En un momento me surgio la necesidad de tener una subrutina capaz de multiplicar un numero de 23 bits x 512 para poder seleccionar el sector a escribir/leer en una targeta SD.

Despues de renegar con codigos que multiplicaban 2 numeros de 32 bits, comian muchisima ram y mucho tiempo de ejecucion me encontre con esta solucion universal creada por Nikolai Golovchenko:

http://www.piclist.com/techref/piclist/codegen/constdivmul.htm

En mi caso, para realizar esta multiplicacion de 23 bits x 512  tan solo me tarda 1.2uS a 20 mhz porque utiliza 6 instrucciones! :D Toda una maravilla!   :-)

Espero que les sea de utilidad tanto como me fue a mi.


« Última modificación: 12 de Noviembre de 2007, 02:57:37 por carlosmaid »