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.