Sei sulla pagina 1di 12

ACTIVIDAD DE APRENDIZAJE 4

PROGRAMACIÓN BÁSICA DEL MICROPROCESADOR

GRUPO 1 AH3

CHRISTIAN CAMILO BAUTISTA ARIAS


JOSE LUIS BOLAÑOS SANTACRUZ
GABRIEL ERNESTO BERMUDEZ CHIVATA
ELKIN ARCINIEGAS RIVAS

ARQUITECTURA DE HARDWARE

UNIPANAMERICANA
MAYO DE 2019
1. Coloque los comentarios pertinentes en cada una de las líneas de código
Programa 1

-A - Se habilita DEBUG para el ensamble de las instrucciones


CS:0100 MOV AX,1CAB - Transfiere el dato 16 Bits 1CAB al registro AX
CS:0103 MOV BX,CCCA - Transfiere el dato de 16 bits CCCA al registro BX
CS:0106 ADD AX,BX - Suma el valor del registro AX al valor del registro BX
CS:0108 INT 21 - Interrumpe la ejecución de instrucciones hasta el registro 108
CS:010A
- G 0108 - Ejecuta el programa en la memoria
Programa 2

-A
CS:0100 MOV AX,2AE4 - Transfiere el dato de 16 Bits 2AE4 al registro AX
CS:0103 MOV BX,7DB1 - Transfiere el dato de 16 Bits 7DB1 al registro BX
CS:0106 MOV CX,AX - Transfiere el dato del registro AX al registro CX
CS:0108 MOV AX,BX Reemplaza el dato del registro AX por el dato del registro BX
CS:010A MOV BX,CX Reemplaza el dato del registro BX por el dato del registro CX
CS:010C INT 21 - Interrumpe la ejecución de instrucciones hasta el registro 10C
CS:010E
- G 010C - Ejecuta el programa en la memoria
Programa 3

D:\Users\Admin>DEBUG
E 0200 50 ;Introduce el número HEX 50 directamente a la posición de memoria (200)
E 0201 20 ;Introduce el número HEX 20 directamente a la posición de memoria (201)
E 0202 AA ;Introduce el número HEX AA directamente a la posición de memoria (202)
E 0203 15 ;Introduce el número HEX 15 directamente a la posición de memoria (203)
-A ;Ensambla instrucciones y las pasa a lenguaje máquina
0CD8:0100 MOV AL,(0200) ;Mueve el contenido de la posición 200 al registro AL
0CD8:0103 MOV AH,(0201) ;Mueve el contenido de la posición 201 al registro AH
0CD8:0107 MOV BL,(202) ;Mueve el contenido de la posición 202 al registro BL
0CD8:010B MOV BH,(203) ;Mueve el contenido de la posición 203 al registro BH
0CD8:010F ADD CX,AX ;Adiciona al registro contador CX el contenido de AX
0CD8:0111 ADD CX,BX ; Adiciona al registro contador CX el contenido de BX
0CD8:0113 MOV (300),CX ;Mueve el contenido del registro CX a la posición 300
0CD8:0117 INT 21 ;Interrupción del sistema
0CD8:0119
G 0117; Ejecuta el programa hasta la línea 117 en memoria

AX=2050 BX=15AA CX=35FA DX=0000 SP=FFEE BP=0000 SI=0000


DI=0000
DS=13BB ES=13BB SS=13BB CS=13BB IP=0117 NV UP EI PL NZ NA PE NC
13BB:0117 CD21 INT 21
-D300; Muestra el contenido de la zona HEX 300 de memoria
13BB:0300 FA 35 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .5…………..
13BB:0310 FA 35 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..…………..
13BB:0320 FA 35 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..…………..
13BB:0330 FA 35 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..…………..
13BB:0340 FA 35 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..…………..
13BB:0350 FA 35 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..…………..
13BB:0360 FA 35 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..…………..
13BB:0370 FA 35 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..…………..
Programa: Este programa muestra la asignación de números hexadecimales a la memoria
directamente de cuatro registros luego a esto se le asignan los valores por medio del
comando MOV a cada registros; y suma los registros de CX a AX y CX a BX; almacena el
resultado del valor que se le da en la memoria
Memoria: Es un direccionamiento de registro. Especifica el valor del operando Exacto.

Programa 4

-A Se habilita el DEBUG para ensamblar instrucciones


0769:0100 MOV AL,0 Se transfiere el dato 0 al registro AL
0769:0102 MOV AL,0 Se transfiere el dato 10 al registro CL
0769:0104 INC AL Se incrementa en una unidad el registro almacenado en AL
0769:0106 Repite hasta que el registro en la posición 0104 llegue a 0
0769:0108 Copia el registro de AL en la localidad de memoria 300
0769:010B Se hace una interrupción del sistema
0769:010D Finaliza con las instrucciones de ensamblado
G108 Se ejecuta el programa que está en memoria en la posición G108
D300 Muestra el contenido en la localidad de memoria 300

Programa 5

CS:0100 MOV AL,5 - Transfiere el dato de 8 bits 5 al registro AL


CS:0102 MOV CL,0 - Transfiere el dato 0 al registro CL
CS:0104 MOV AH,CL - Transfiere una copia del registro CL al Registro AH
CS:0106 INC CL - Incrementa 1 unidad al registro CL
CS:0108 ADD AH,CL - Realiza suma entre los registros AH y CL
CS:010A DEC AL - Decrementa 1 unidad del registro AL
CS:010C CMP AL,0 - Compara el registro AL con el dato 0 y activa la
bandera si es 0
CS:010E JNZ 106 - Permite realizar un salto condicional verificando el
estado en 0
CS:0110 MOV [300],AH - Transfiere el dato del registro AH directamente a la
memoria
CS:0114 INT 21 - Interrumpe la ejecución de instrucciones hasta el registro
0114
- G 0114 - Ejecuta el programa en la memoria
- D300 - Muestra el contenido de un área de la memoria

OBJETIVO DEL PROGRAMA NO. 5


El objetivo del programa 5 es declarar primero las variables, agregando el valor o el entero
para luego realizar la suma.
3. Realice los siguientes programas de acuerdo al objetivo previsto:

Punto A: Restar dos números de 16 bits introducidos directamente en la memoria. El


resultado debe ser guardado en memoria.

Punto B: Se obtiene la factorial de un número almacenado en la memoria


Punto C: Intercambiar los contenidos de 4 registros de 8 bits en el orden que desee.

Punto D: Sumar tres vectores de dimensiones 3x1

En este punto es demasiado complicado porque no había información acerca de suma de


vectores en internet y lo poco que se encontró lo analizamos y se implementó en el
DOSbox 0.74 pero no pudimos dar el resultado de la suma, por ende dejamos la
evidencia del trabajo en este punto.
Intento No.1

Intento No.2

I
Intento No.3

Punto E: Mostrar la serie de Fibonacci


Una breve explicación en que consiste la serie de Fibonacci, quiere decir la suma de
números en secuencia ordenada, sucesión o también llamado serie de Fibonacci empieza
con el número 1 y lo suma con el numero anterior en este caso es 0 y de acuerdo al
resultado el resultado se acumula para en la siguiente secuencia veamos el siguiente
ejemplo:
1 Secuencia  1 + 0 = 1
2 Secuencia  1 + 1 = 2
3 Secuencia  2 + 1 = 3
4 Secuencia  3 + 2 = 5
5 Secuencia  5 + 3 = 8
Evidencia en el programa DOSbox
Nota:
Como puede observar en lo resaltado en rojo el resultado va en secuencia de acuerdo a
la serie de Fibonacci.
00  0
01  1
02  2
03  3
05  5
08  8
0D  13
15  21
22  34 .. etc

Potrebbero piacerti anche