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

Lenguaje Assembly


Enviado por   •  21 de Abril de 2015  •  7.033 Palabras (29 Páginas)  •  263 Visitas

Página 1 de 29

Apunte 4: Lenguaje Assembly

Introducción

Las computadoras son máquinas diseñadas para ejecutar las instrucciones que se le indican, de manera de resolver problemas o hacer algún otro tipo de cosas. Dichas instrucciones básicas no suelen ser más complicadas que realizar una suma o resta, una comparación, leer un dato o escribir un resultado en la memoria. Además, lo normal es que cada instrucción esté almacenada mediante un código en la memoria, de forma que la computadora “ve” esos números y los entiende como instrucciones. También, estos códigos son específicos de cada tipo de CPU. A este conjunto de instrucciones codificadas se le llama lenguaje de máquina y es el único lenguaje que una computadora entiende.

Ahora bien, como programador, no resulta reconfortante pensar y escribir programas como una secuencia de números, de la manera en que la computadora los quiere ver, sino que es natural verlos como una secuencia de instrucciones. Para ello, se define un lenguaje, en principio, que es un mapeo directo de esos códigos a instrucciones comprensibles por un humano. A este lenguaje se lo denomina assembly o lenguaje de ensamble y al programa encargado de tomar programas escritos en assembly y generar los códigos que la computadora entenderá se lo denomina assembler o ensamblador. Como veremos, no todas las instrucciones de assembly se corresponden directamente con instrucciones de lenguaje de máquina, sino que varias son instrucciones para el ensamblador mismo.

El Simulador

Antes de comenzar con algunos ejemplos de programas escritos en assembly, veremos una breve descripción de un programa cuyo propósito es simular una CPU y mostrar los pormenores de su funcionamiento. Este programa se llama MSX88 y simula una computadora basada en una versión simplificada del célebre procesador 8086 de Intel, denominada SX88. Gráficamente se muestran los flujos de información existentes entre los diversos elementos que lo componen. Utiliza como plataforma de sistema operativo DOS, pudiéndose utilizar desde una ventana DOS bajo Windows. En la Figura 1 se muestra la pantalla inicial.

Figura 1

En la Figura 1 podemos distinguir los siguientes bloques: CPU

o ALU

o Registros AX, BX, CX, DX, SP, IP, IR.

o Registro de Flags

o Decodificador

o Secuenciador

Memoria principal

Periféricos

Bus de datos y de direcciones

Toma de entrada de comandos

La CPU es la encargada de ejecutar un programa contenido en la memoria instrucción por instruc ción.

La ALU es la encargada de ejecutar las operaciones aritméticas y lógicas entre los registros temporarios Op1 y Op2, dejando el resultado en Res. Dichas operaciones serán las dispuestas por la instrucción en ejecución

Los registros AX, BX, CX y DX son de uso general, 16 bits de longitud, se pueden dividir en 2 partes de

8 bits cada uno. Ejemplo: AX en AH y AL.

El registro IP (instrucción pointer) contiene la dirección de memoria de la próxima instrucción a ser ejecutada.

El registro SP (stack pointer ) contiene la dirección de memoria del tope de la pila.

El registro de flags nos mostrará el estado de las banderas o flags luego de cada operación. Son 8 bits que indican el estado de las correspondientes 8 banderas. De estas 8 se utilizaran en la práctic a las correspondientes a:

Bandera de cero: identificada por la letra Z. Bandera de overflow: identificada por la letra O. Bandera de carry/borrow: identificada por la letra C.

Bandera de signo del número: identificada por la letra S.

La entrada de comandos es el lugar donde se introducirán los comandos del simulador una vez iniciada la aplicación.

El bloque de periféricos engloba la entrada-salida del simulador.

Modo de uso

Par tener una primera toma de contacto con el programa se recomienda arrancar la demostración incluida en el archivo de distribución de MSX88. Asegúrese que los archivos DEMOMEMO.EJE, DEMOPIO.EJE y DEMODMA.EJE estén en el mismo directorio que DEMO.EXE. Se supone que todos los archivos del MSX88 se encuentran en el directorio SIMULADOR den tro del directorio raíz del disco C. Para arrancar la demo se debe teclear:

C:\SIMULADOR> DEMO <Enter>

Este programa ofrece una introducción muy detallada a las características principales de MSX88. Ejecutando el programa DEMO, puede finalizar la ejecución pulsando varias veces la tecla 2. Para arrancar el programa MSX88 ejecute el comando DOS:

C:\SIMULADOR> MSX88 <Enter>

Aparecerá la pantalla de la Figura 1. En la parte inferior, solo aparecerá el prompt (>), en donde se introducirán los comandos. MSX88 tiene un programa monitor que controla todas las partes de la máquina virtual. El primer comando que se debe conocer es, como en la mayoría de los sistemas operativos, el de help. Para invocar al help del monitor puede pulsar la tecla F1, teclear "help", o simplemente "h" que aparecerán escritos en la ventana de comandos del monitor.

Elaboración y ejecución de un programa de prueba

Primero se deberá editar el programa, escrito en el lenguaje de ensamble de MSX8 8 en un editor de texto como el EDIT o el NOTEPAD. En caso de utilizar el NOTEPAD, luego de la última línea del programa (END) se debe teclear un Enter, si no dará error al ensamblarlo. El programa fuente así generado se guardara con extensión .asm (prueba.asm por ejemplo). Se deberá usar una sintaxis determinada.

Luego

...

Descargar como (para miembros actualizados)  txt (37 Kb)  
Leer 28 páginas más »
Disponible sólo en Clubensayos.com