TODOPIC

Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: carlosmaid en 12 de Noviembre de 2007, 02:23:36

Título: Multiplicar un numero de N bits por una constante
Publicado por: carlosmaid 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.