Está en la página 1de 4

Gua Ensamblador

PROGRAMACIN EN ENSAMBLADOR
Una vez hemos llegado en el estudio de la arquitectura del computador al punto en que conocemos la ruta de datos, su funcionamiento y sus arquitecturas, es conveniente justificar la necesidad de que la unidad de control del computador sea capaz de ejecutar ciertas instrucciones. Haremos esto incluso antes de ver con detalle la implementacin de la Unidad de Control y la implementacin de las diferentes arquitecturas, ya que de esta forma justificaremos las instrucciones que creemos. La programacin en lenguaje ensamblador es ligeramente ms complicada que la programacin en alto nivel. La complicacin est marcada, fundamentalmente, por tener que controlar nosotros absolutamente todo lo que el computador tiene que realizar. Para facilitar la tarea vamos a marcar unas pautas que van encaminadas a hacernos las cosas ms automticas. Para la programacin en lenguaje ensamblador vamos a utilizar las tcnicas aprendidas en algortmica. Como paso previo al desarrollo de un programa en ensamblador necesitamos tener perfectamente definido lo que pretendemos que haga el ordenador. Una vez sepamos lo que queremos debemos hacer el programa, pero de forma directa sino a travs del correspondiente algoritmo; una vez desarrollada la traza del algoritmo y comprobado que hace lo que pretendemos, el paso siguiente es la codificacin del algoritmo en lenguaje ensamblador. De esta forma podemos aprovecharnos de la programacin modular que tanto nos facilita la tarea de la creacin de programas, en un lenguaje aparentemente hostil a la modularidad. Para desarrollar el programa lo mejor es tener un esqueleto predefinido e irlo completando con las partes que son especficas de nuestra aplicacin. Este esqueleto lo veremos al final cuando ya hayamos estudiado el ncleo de la misma. Para ayudarnos en el paso del lenguaje algotmico a lenguaje ensamblador vamos preparar el esqueleto de las estructuras bsicas, de forma que nuestra programacin sea lo ms homognea y repetitiva que podamos, con la consiguiente reduccin de errores.

Ing. Jorge Alberto Quintanilla Flores

Pgina 1

Gua Ensamblador

Estructura selectiva simple si ... entonces ... fin si La primera estructura algortmica que vamos a estudiar es : si condicin entonces accin fin_si Esta estructura se podra implementar en ensamblador de la siguiente forma: si_001: entonces_001: fin_si_001: condicin salto_condicional fin_si_001 accin resto_de_cdigo

Esto nos lleva al primer tipo de instrucciones que vamos a estudiar: los saltos Los Saltos En cdigo mquina la programacin es totalmente secuencial. Una instruccin se ejecuta detrs de otra indefectiblemente. La nica forma de hacer programacin estructurada es provocando saltos en la secuencia del programa. Esto complica notablemente la estructura del programa y su inteligibilidad de cara al programador (de ah la necesidad de escribir y probar los algoritmos antes de comenzar a escribir el cdigo mquina). Los saltos los podemos definir como la ruptura de la secuencia lineal del programa. Hay dos tipos de saltos: los incondicionales y los condicionales Son saltos incondicionales aquellos en los que una vez decodificada la instruccin el salto se produce siempre. Son tiles para saltar trozos de cdigo de forma obligatoria y tambin se utilizan para poder hacer algunos trucos que engaen al microprocesador, en programas muy elaborados. La instruccin de salto suele ser tal como: JMP etiqueta Los saltos condicionales son ms verstiles. El salto solo se produce si se dan ciertas condiciones, de lo contrario la secuencia del programa contina de forma normal. Cada microprocesador en concreto tiene sus propios saltos condicionales. El juego puede ser muy extenso. Algunos de los ms comunes son: JE Salta si igual JG Salta si mayor JGE Salta si mayor o igual JL Salta si menor JLE Salta si menor o igual JZ Salta si es igual a cero Ing. Jorge Alberto Quintanilla Flores Pgina 2

Gua Ensamblador

JNZ Salta si no cero JNE Salta si no igual (igual a JNZ) JS Salta si no signo (si es positivo) JS Salta si signo (si es negativo) Para evaluar la condicin tenemos las instrucciones lgicas y aritmticas, pero las ms comunes son las especficamente de comparacin: CMP Compara operandos TEST Test/Comparacin lgica de los dos operandos

Esta forma de actuar, aunque es totalmente fiel a la estructura algortmica no es nada eficiente, ya que se ejecutan dos saltos, con la consiguiente prdida de tiempo y el cdigo sale tambin ms extenso. Esta forma que se presenta a continuacin es mucho ms eficiente, ya que solamente rompe la secuencia lineal del programa en un caso; cuando la condicin es falsa.

Hemos de hacer hincapi en que la condicin de salto es la complementaria de la condicin que tenemos en la estructura algortmica. A partir de ahora, todas las implementaciones que hagamos las codificaremos solamente con la forma ms eficiente. Hemos introducido, adems, una nueva instruccin aritmtica, DEC, cuya misin es decrementar el operando que le sigue.

Ing. Jorge Alberto Quintanilla Flores

Pgina 3

Gua Ensamblador

Implementar las siguientes estructuras en Ensamblador

Estructura selectiva simple si ... entonces ... sino ... fin si si condicin entonces accin1 sino accin2 fin si Estructura repetitiva mientras ... hacer ... fin mientras mientras condicin accin fin mientras Estructura repetitiva repetir ... hasta que ... repetir accin hasta que condicin repetir_001: accin condicin salto_condicional repetir_001

Estructura repetitiva desde ... hasta ... hacer . fin desde desde variable = inicio hasta final hacer accin fin desde

Ing. Jorge Alberto Quintanilla Flores

Pgina 4

También podría gustarte