Laboratorio

Páginas: 5 (1240 palabras) Publicado: 25 de febrero de 2014
Laboratorio N°1 Arquitectura del computador
Pregunta 1. Escriba un programa que multiplique y divida 2 números contenidos en las posiciones de memoria 100H y 101H, respectivamente, el producto y el cociente deberá almacenarse en la posición 102H y 103H, respectivamente

Diagrama de flujo



Código en lenguaje ensamblador
1. ;----------------------------------------Ejercicio 1Laboratorio N|1----------------------
2. org 100h
3. ;---------------------------------------Guardado Datos en memoria---------------------
4. mov [100h],12 ; [100h]12
5. mov [101h],7 ;[101h]7
6. ;------------------------------------------Producto de 2 números---- ---------------------
7. mov al,[100h] ; al[100h]
8. mov ah,[101h] ;ah[101h]
9. mul ah ;Producto=al*ah quedaguardado por defecto en al
10. mov [102h],al ;[102h]producto
11. ;--------------------------------------------División de 2 números------------------------
12. mov al,[100h] ; al[100h]
13. mov bl,[101h] ;bl[101h]
14. mov ah,0 ;ponemos en 0 el acumulador para la división
15. div bl ;División= al/bl el cual se guardara por defecto en al(cociente) y ah(residuo)16. mov [103h],al ;guardamos el resultado en memoria
17. ;producto [102h]
18. ;cociente [103h]
19. hlt ;Fin del programa(procesador detenido)
20. ;---------------------------------------------Fin---------------------------------------------
Simulación obtenida


Observaciones y conclusiones
Obs1:Al usar el comando DIV
Se tuvo dificultad con los resultados obtenidos ya que no marcaba el valor real por ejemplo
mov ah,2
mov al,[100h]
mov bl,[101h]
div al

Me origino valores para ah=06 y al 4A que son los valores de dividir 02C0 entre 7 cuyo cociente es 4A y residuo 6
Conclusion1:
Se debe de tener cuidado el tipo de división que se está realizando si es byte o unapalabra si es byte tener el acumulador AH en Cero (AH=0) y si es palabra el DX en Cero.
Obs2:
Se quiso usar la división con el registro AX poniendo el numerador en ah y el denominador en al este me origino un error para el procesador.
mov al,[100h]
mov ah,[101h]
div ah

Conclusion2:
No se puede hacer la división usando solo el registro AX se debe usar otro registro como bx, cx, dx.Pregunta 2.-Complete los valores que obtendrán los registros y las direcciones indicadas, luego de ejecutarse cada instrucción. Inicialmente los valores de cada dirección es 0.

Diagrama de bloque















Código en lenguaje ensamblador
1. ;-------------------------------Ejercicio 2 Laboratorio N|1-------------------------------
2.;---------------------------------------------Inicio---------------------------------------------
3. org 100h
4. ;---------------------------------------------Datos---------------------------------------------
5. MOV SI,150H ;El valor asignado a SI nos ayudara a inicializar la memoria
6. MOV AX,3 ;Suma=3
7. MOV BX,0 ;i=0
8. MOV [BX + SI],AX;Guardamos los valores en memoria
9. ;------------------------------------Ingresamos al Bucle------------------------------------
10. BUCLE:
11. ADD AX,BX ;Suma=Suma+i
12. MOV [BX+SI+1],AX ;Asignamos un incremento a memoria para guardar los valores de Suma
13. ADD BX,2 ;i=i+2 hacemos el incremento para que la Suma tome otros valores
14.CMP BX,0CH ;comparamos i con 12
15. JB BUCLE ;regresamos al bucle hasta que i sea mayor a 12
16. ;---------------------------------------------Fin---------------------------------------------
Simulación obtenida


Observaciones y conclusiones

Obs1:
Se genero un nuevo comando el comando referenciando a Bucle el cual nos ayudara a...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Laboratorio
  • Que es un laboratorio
  • Laboratorio
  • Laboratorio
  • Laboratorios
  • Laboratorio
  • Laboratorio
  • Laboratorio

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS