ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

GUIA DE LABORATORIO 3: INTRUCCIONES DE SALTOS Y PROCEDIMIENTOS

LuisDiaz200Informe26 de Febrero de 2019

1.280 Palabras (6 Páginas)215 Visitas

Página 1 de 6

GUIA DE LABORATORIO 3:   INTRUCCIONES DE SALTOS Y PROCEDIMIENTOS

OBJETIVOS

  • Conocer y aplicar las instrucciones de salto disponibles en los procesadores 8086.
  • Programar en ensamblador pequeños programas que lleven instrucciones de salto.
  • Practicar el uso de ciclos, subrutinas o procedimientos.
  • Comprender la utilidad que representa el uso del stack.

INTRODUCCION

Las instrucciones de salto son llamadas instrucciones de control de programa, que dirigen el flujo de un programa y permiten que este cambie.  A menudo, un cambio de flujo ocurre después de que una decisión que ha sido tomada con las instrucciones CMP o TEST, es seguida de una instrucción de salto condicional.  

Las instrucciones de salto JMP permite al programador omitir secciones de un programa y saltar hacia cualquier parte de la memoria para la siguiente instrucción.  Existen saltos condicionales e incondicionales.

Subrutinas

Muy a menudo se encuentra que una sección del programa debe realizar una operación que es muy  frecuente. Si el programador recibe esta sección cada vez que se va a utilizar, el programa se vuelve largo  y tedioso de escribir. Para optimizar  el uso de memoria en programas largos, se hace uso de subrutinas, las subrutinas pueden ser ejecutadas condicional o incondicionalmente.

La instrucción CALL es usada para llamar a la subrutina, su función consiste en dos operaciones:

                                CALL 1800H      

                        RET

La instrucción RET debe escribir al final de cada subrutina y su función es devolver al programa en el punto donde la subrutina fue llamada.

 

La pila o STACK                                  

En el diseño de programas, el Stack (pila) se considera como una sección de memoria que tiene un sólo puerto de entrada y uno de salida. Los datos son introducidos y sacados del Stack por medio de esta vía. La pila está organizada bajo lógica LIFO (LAST-IN FIRST-OUT). Podemos la pila como un grupo de objetos que se apilan verticalmente.  

En el CPU 8086 las operaciones con la pila se realizan con las instrucciones

                                         PUSH      coloca datos en la pila

                                         POP         saca datos de la pila

Siempre que se haga uso de la pila en algún programa, el puntero de pila SP debe de inicializarse con la dirección más alta disponible en RAM de esta manera teóricamente toda la memoria puede usarse como Pila.

PROCEDIMIENTO

  1. Abra el simulador emu8086 haciendo doble clic en el ícono.
  2. A continuación se muestra un programa que suma los diez números guardados en la dirección de memoria: Lista.

mov si,0h

                mov ax,0h

                mov cx,10

                mov bx,offset lista

salto:        mov dl,[bx+si]

                add ax,dx

                inc si

                dec cx

                jnz salto

                ret        

Lista db 10h,20h,30h,11h,22h,33h,40h,50h,44h,55h,0h

  1. Investigue la instrucción LOOP y utilícela en el programa anterior.  Verifique que los resultados del programa sean los mismos.
  2. En el siguiente programa, un ciclo pequeño se encuentra dentro de un ciclo más largo. La función del programa es la de rotar 4 veces el contenido de los datos diseccionados por el arreglo LIST. Note que el registro CL es usado tanto para controlar el ciclo pequeño como el grande. Explique la razón por la que CL puede ser usado en ambos ciclos. ¿En qué sentido se han hecho las rotaciones? ¿Cuál es la instrucción, dentro del programa, que realiza la función de rotación? ¿Es entonces la rotación equivalente a alguna operación aritmética? Explique.

MOV SP, 0400h

                MOV SI, 0000h

                MOV DI, 0401h

                MOV CL, 06h

                MOV BX, OFFSET LIST

CICLO1:        PUSH CX

                MOV AL, [BX+SI]

                MOV CL, 04h

CICLO2:        ADD AL, AL

                DEC CL

                JNZ CICLO2

...

Descargar como (para miembros actualizados) txt (5 Kb) pdf (95 Kb) docx (321 Kb)
Leer 5 páginas más »
Disponible sólo en Clubensayos.com