Autor Tema: Algoritmo de división en ensamblador  (Leído 4315 veces)

albanchez2k

  • Sinver
  • *
  • Mensajes: 2
  • SYS 0
    • Ver Perfil
Algoritmo de división en ensamblador
« en: Abril 04, 2012, 12:16:44 »
Al igual que para la multiplicación, no existe un op-code que haga la división. Este es un algoritmo de división. Está hecho en Kikcass.

:BasicUpstart2(inicio)         // "trampolín" basic llamador del programa

.const D   = $10            //Dividendo
.const d   = $11            //divisor
.const r1  = $12            //cociente
.const r2  = $13            //resto
.const max = $ff            //valor maximo
.const min = $00            //valor minimo
.const ite = $08            //Iteraciones

.pc = $810 "Codigo"

// Codigo del programa

inicio:
         sei            //desactiva interrupciones
         lda V1            //inicializo Dividendo       
         sta D            //
         lda V2            //inicializo divisor   
         sta d            //
         lda #min         //inicializo acumulador
         sta r1            //inicializo r1
         ldx #ite         //inicializo X
         
bucle:
         asl r1            //desplazo r1 a la izquierda
         asl D            //desplazo D a la izquierda
         rol               //roto A a la izquierda
         cmp d            //comparo A con d
         bcc comp         // si A < d comp
         sec               //
         sbc d            //A - d
         inc r1            //incremento r1
comp:      dex               //decremento X
         bne bucle         //si X <> 0 bucle
fin:
         sta r2            //resto
         cli            //activa interrupciones
         rts             // vuelve al BASIC

// Datos
V1:    .byte 0               //Variable Dividendo
V2:    .byte 0               //Variable divisor

V1 es la variable de entrada del Dividendo y V2 del divisor.
r1 es el cociente y r2 es el resto

Se puede probar mediante:

poke2102,MMM:poke2103,mmm
sys2064
print peek(18):print peek(19) 

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13628
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Algoritmo de división en ensamblador
« Respuesta #1 en: Abril 04, 2012, 12:59:59 »
Gracias por el aporte :)
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com