Sei sulla pagina 1di 17

Actividad AA4

Programación básica de Microprocesadores

Grupo 5
Harvey Rolando Melo Melo.
Andres Fernando Mayorga Parra.
Jhon Jairo Melo Acero.
Mayo 5 de 2019.

Unipanamericana.
Técnica Profesional en Instalación de Redes de Telecomunicaciones.
Arquitectura de Hardware
ii

Copyright © 2019 por Grupo 5.


Todos los derechos reservados.
iii

Tabla de Contenidos

Ejecución Programas en debug ....................................................................................................... 1


Programa 1 ...................................................................................................................................... 2
Programa 2 ...................................................................................................................................... 3
Programa 3 ...................................................................................................................................... 4
Programa 4 ...................................................................................................................................... 6
Programa 5 ...................................................................................................................................... 7
Restar dos números de 16 bits ........................................................................................................ 9
Factorial .......................................................................................................................................... 9
Fibonacci ....................................................................................................................................... 11
1

Ejecución Programas en debug

En relación con los programas anteriormente analizados realice las siguientes.

 Coloque los comentarios pertinentes en cada una de las líneas de código

 Identifique el objetivo de cada uno de los programas propuestos

 Realice los siguientes programas de acuerdo al objetivo previsto:

o Restar dos números de 16 bits introducidos directamente en la

memoria. El resultado debe ser guardado en memoria.

o Obtener el factorial de un número almacenado previamente en

memoria. El resultado debe ser guardado en memoria.

o Intercambiar los contenidos de 4 registros de 8 bits en el orden que

desee.

o Sumar tres vectores de dimensiones 3x1, donde cada componente

del vector sea de 8 bits, definiendo las componentes del vector

previamente en la memoria y cuyo resultado debe ser almacenado

en otra localización de memoria.

o Mostrar la serie de Fibonacci hasta el número contenido

previamente en una localización de memoria. Almacene el resultado

en la memoria.
2

Programa 1

-a ensambla el debug

Mov ax,1cab ; asigna el valor 1cab a ax

Mov bx,ccca ; asigna el valor ccca a bx

Add ax,bx ; suma los valores de ax y bx

Int 21 ; se agraga una pausa especifica al programa.

G 0108 ; ir a la dirección 0108

Objetivo: sumar dos valores diferentes.


3

Programa 2

-a ensambla el debug

Mov ax,2ae4 ; asigna el valor 2ae4 a ax

Mov bx,7db1 ; asigna el valor 7db1 a bx

Mov cx,ax ; se asigna a cx el valor de ax

Mov ax,bx ; se asigna a ax el valor de bx

Mov bx,cx ; se asigna a bx el valor de cx

Int 21 ; se agraga una pausa especifica al programa.

G 0108 ; ir a la dirección 010C

Objetivo: Intercambiar valores de dos variables


4

Programa 3

E 0200 50 ; ingresar valor a 0200

E 0201 20 ; ingresar valor a 0201

E 0202 AA ; ingresar valor a 0202

E 0203 15 ; ingresar valor a 0203

Mov al,[0200] ; asignar valor a x de AX

Mov ah,[0201] ; asignar valor a a de AX

Mov bl,[0202] ; asignar valor a x de BX

Mov bh,[0203] ; asignar valor a b de BX

Add cx,ax ; sumar valores de cx y ax

Add cx,bx ; sumar valores de cx y bx


5

Mov [300],cx ; asignar a 300 el valr de cx

Int 21 ; se agraga una pausa en la 0117.

G 0117 ; ir a la dirección especificada

D 300 ; trae la información guardada en 300 que es igual a CX

Objetivo: asignar valores independientes y sumarlos de manera independiente.


6

Programa 4

Mov al,0 ; asignar valor a x de AX

Mov cl,10 ; asignar valor a x de CX

Inc al ; realiza un incremento de valor a al

Loop 0104 ; hacer una repetición especifica para incrementar al y decrementar cl

Mov [300],al ; guardar el valor de al en 300

Int 21 ; pausar programa en la línea 010B

G 108 ; muestra la información de la dirección 108

Objetivo: Ejecutar valores e incrementarlos a través de un loop especifico


7

Programa 5

Mov al,5 ; se asigna el valor de x en ax

Mov cl,0 ; se asigna el valor de x en cx

Mov ah,cl ; copiar información de ah a cl

Inc cl ; incrementar el valor de cl

Add ah,cl ; sumar los valores de ah y cl

Dec al ; decrementar al

Cmp al,0 ; se compara el valor de al si es igual a 0

Jnz 106 ; se retorna al registro 106

Mov [300],ah ; guardar en 300 3l valor de ah

Int 21 ; pausar el programa en la línea 0114


8

G 0114 muestra la información de la línea 0114

Objetivo: Asignar valores, incrementar unos y decrementar otros realizando un

loop con un retorno de líneas.


9

Restar dos números de 16 bits

Ingresamos a debug de la siguiente manra

windows +r ,escribimos cmd y luego debug

a ; asignar un direccionamiento

mov ; instruccion en registro ax asignamos un numero

mov ; instruccion en registro bx asignamos numero

add : (suma ) significa agregar al registro ax,bx

int : agregamos una pausa al program

t : para ver el progrmama linea por línea

Factorial

Ingresamos a debug de la siguiente manra

windows +r ,escribimos cmd y luego debug

a ; asignar un direccionamiento ensamblar


10

mov cx,5; le asignamos al contador cx un numero el cual le calcularemos el factoria

mov ax,1; asignamos a ax 1 (variable aux al multiplicador )operando

mov cx;ultiplicamos cx por el registro principal

loop iniciamos el blucle indicando la direccion a tomar (106 )

int20 ; agragamos un pausa al programa

g10; verificamos si el programa funciona bien


11

Fibonacci

• Mostrar la serie de Fibonacci hasta el número contenido previamente en


una localización de memoria. Almacene el resultado en la memoria.
• Inicializar Variables
• Mov al, 00
• Mov [0200], al
• Mov al, 01
• Mov [0201], al

• Fijar apuntadores
• Mov BP, 0200
• Mov al, [BP]
• Mov dl, [BP+1]

• Suma de variables
ADD al, dl

• Incremente BP
• INC BP

• Mover resultado de la suma


• Mov [BP+1], al
• JMP 6 Salta al comando de la etiqueta.

BP: Registro de apuntadores base


MOV AL: Copiar el valor de la porcion de la memoria que este en la ubicación 00
MOV [0201], al: Apunta la dirección de la memoria DL
JMP: Dirección “Saltar”
AND: Destino, origen
12

INC: Destino ”Incrementar”


13
14

Potrebbero piacerti anche