rambo189619 icon

Tecom

rambo189619 | PRO | 05/07/11 10:58:30 AM UTC | 0 ⭐ | 232 👁️ | Never ⏰ | []
text |

3.25 KB

|

None

|

0 👍

/

0 👎

     2                         	; Fecha: 30 / 03 / 2010
    3                         	; Descripción:
    4                         	; Programa emsamblador que multiplique dos datos de 4 bits sin signo.
    5                         	; Utilizar para ello el algoritmo de suma desplazamiento ( Incluyendo
    6                         	; o no las sumas parciales cero).
    7                         	; Los operando deben quedar en las posiciones 1200 y 1201, y el resultado  
    8                         	; en la 1202. 
    9                         	; RECURSOS USADOS: El multiplicando estará en la dirección 1202H.
   10                         	; El multiplicador estará en la dirección 1201H, el resultado 
   11                         	; en la dirección 1202H, para operarar usaremos los registros D,E,M 
   12                         	; el acumulador y un contador.
   13                         	; PRUEBAS: Con los números 2 * 4 = 8
   14                         	
   15  1000                   		ORG 1000H		; Nos posicionamos en la dirección que empezará a contener mi progra
                                ma
   16  1000   21 00 12        		LXI H, 1200H	; El almacenaje comienza en la dirección 1200H
   17  1003   36 02           		MVI M, 02		; Cargamos el 02 en el registro M
   18  1005   56              		MOV D, M		; Movemos el contenido del registro M al registro D
   19  1006   23              		INX H 		; Incrementamos los registros
   20  1007   36 04           		MVI M, 04		; Cargamos el 08 en el registro M
   21  1009   5E              		MOV E, M		; Movemos el contenido del registro M al registro E 
   22  100A   23              		INX H
   23  100B   36 00           		MVI M, 00		; Cargamos el 00 en el registro M, que será donde estará el resultad
                                o
   24  100D   0E 04           		MVI C, 04		; Cargamos el 04 en el registro C, lo emplearemos como contador, el 
                                número 4 por los cuatro bits de datos
   25  100F   7B              	BUCLE:MOV A, E		; Movemos al acumulador el contenido del registro E
   26  1010   1F              		RAR			; Desplazamos el acumulador a la derecha
   27  1011   5F              		MOV E, A		; Movemos al registro E el contenido del acumulador
   28  1012   D2 18 10        		JNC FINAL		; Iremos a la etiqueta final en caso que el contenido del acarreo se
                                a 0, pra
   29  1015   7A              		MOV A, D		; Movemos al acumulador el contenido del registro D	
   30  1016   86              		ADD M			; Sumamos el contenido del registro M al acumulador
   31  1017   77              		MOV M, A   		; Movemos al registro M el contenido del acumulador
   32  1018   7A              	FINAL:MOV A, D		; Movemos al acumulador el registro D
   33  1019   17              		RAL			; Desplazamos el acumulador a la izquierda
   34  101A   57              		MOV D, A		; Movemos al registro D, el contenido del acumulador
   35  101B   0D              		DCR C			; Decrementamos el contador en 1
   36  101C   C2 0F 10        		JNZ BUCLE		; Vamos al la etiqueta Bucle en caso que el contenido del acumulador
                                 sea 0
   37  101F   CF              		RST 1
   38  1020                   		END			; Finalizamos

Comments