https://gist.github.com/jlgarridol/4b2abd0df58c92ffd1b3acf7da046efa
Multiplicación por suma desplazamiento de un procesador intel 8085 en leguaje ensamblador
;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 |
https://www.forosdelweb.com/f14/programa-ensamblador-multiplicacion-con-suma-desplazamiento-1125988/
Simulador de la universidad de Granada: Video de explicación del simulador, introducción.