Skip to content

Instantly share code, notes, and snippets.

@jlgarridol
Last active April 11, 2016 17:12
Show Gist options
  • Save jlgarridol/4b2abd0df58c92ffd1b3acf7da046efa to your computer and use it in GitHub Desktop.
Save jlgarridol/4b2abd0df58c92ffd1b3acf7da046efa to your computer and use it in GitHub Desktop.
Multiplicación por suma desplazamiento de un intel 8085
;Programa creado por José Luis Garrido Labrador y Luis Pedrosa Ruiz.
;Burgos, abril de 2016
ORG 1000H
LXI H,1200H ;Dirección de memoria donde se guardará el producto
MVI B,00 ;El registro B (el contador) lo reseteamos
MVI M,0FH ;Cargamos en 1200 el primer operando
INR L ;Siguiente dirección de memoria
MVI M,06H ;Cargamos en 1201 el segundo operando
INR L ;Siguiente dirección de memoria
MVI M,00 ;Vaciamos el destino de la memoria
ALL: LDA 1201H ;Origen del desplazamiento, ponemos en el acumulador el segundo operando
RRC ;Lo desplazamos para tener en el flag C 0 o 1
STA 1201H ;Volvemos a guardar en la memoria el operando
LDA 1200H ;Guardamos en A el contenido de 1200
JNC CERO ;Si era 0 el bit menos significativo no sumamos
SUMA: ADD M ;Sumamos el contenido de la memoria al primer operando en su posición especifica
MOV M,A ;Lo guardamos nuevamente en memoria
CERO: RLC ;Desplazamos D por cada vuelta
STA 1200H ;Guardamos D
INR B ;Aumentamos el contador
MOV A,B ;Movemos a A el contador
CPI 04 ;Comparamos con 4 (la quinta vuelta y por tanto ya se ha pasado el número
JNZ ALL ;Si no es 4 repetimos el procedimiento
RST 1 ;Fin de la ejecución
END
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment