Last active
April 11, 2016 17:12
-
-
Save jlgarridol/4b2abd0df58c92ffd1b3acf7da046efa to your computer and use it in GitHub Desktop.
Multiplicación por suma desplazamiento de un intel 8085
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;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