rambo189619

Tecom

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