19.04.2018 Views

Tutorial de ensamblador

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Capítulo 1. Teoría básica<br />

Aclaraciones<br />

Ensamblador trabaja con registros <strong>de</strong>l procesador para controlar las<br />

instrucciones a realizar y manejar los espacios <strong>de</strong> memoria. Ensamblador pue<strong>de</strong><br />

trabajar en distintos microprocesadores <strong>de</strong> distintas arquitecturas (16, 32 o 64<br />

bits). Sin embargo, para este tutorial se empleará el procesador 8086, el cual<br />

trabaja sobre 16 bits.<br />

Tipos <strong>de</strong> Ensambladores<br />

Para po<strong>de</strong>r ejecutar un programa escrito en lenguaje <strong>ensamblador</strong> es<br />

necesario contar con <strong>ensamblador</strong>es y linkeadores. Todos sirven para lo mismo,<br />

clasificándose por su modo <strong>de</strong> trabajar en:<br />

<br />

<br />

<br />

<br />

<br />

Ensambladores cruzados.- Se usan en computadoras <strong>de</strong> prueba y luego<br />

el programa termina en otro equipo. Para esto se usan traductores.<br />

Ensambladores resi<strong>de</strong>ntes.- Resi<strong>de</strong> en la RAM, para pequeñas pruebas.<br />

Macro<strong>ensamblador</strong>es.- Trabajan con un repertorio fijo <strong>de</strong> instrucciones.<br />

Ensambladores <strong>de</strong> una sola fase.- Leen y traducen sobre la marcha. Son<br />

sencillos.<br />

Ensambladores <strong>de</strong> dos fases.- Realizan la traducción en dos etapas.<br />

Cómo Ensamblador maneja los datos<br />

Las instrucciones y variables se manejan por medio <strong>de</strong> segmentos. Esto es<br />

<strong>de</strong>bido a que la arquitectura (el modo en que está hecho) <strong>de</strong> los procesadores x86<br />

el mayor número <strong>de</strong> palabra que se podía manejar era <strong>de</strong> 16 bits <strong>de</strong> memoria, lo<br />

cual no alcanzaba en aquél entonces para un programa normal. Cada segmento<br />

proporciona un espacio <strong>de</strong> memoria para direccionamiento. En pocas palabras, en<br />

cada segmento se maneja una parte <strong>de</strong>l programa, y <strong>ensamblador</strong> manipula el<br />

contenido <strong>de</strong> dichos segmentos mediante los registros <strong>de</strong> segmento, los cuales<br />

sirven como puerta <strong>de</strong> entrada. Existen 4 segmentos con su correspondiente<br />

registro:<br />

Segmentos<br />

Segmento y registro <strong>de</strong> datos<br />

Ya que este lenguaje es muy restrictivo en<br />

cuanto a asignar valores directos se refiere,<br />

siempre se utilizan variables. Por ejemplo,<br />

retomando el ejemplo <strong>de</strong> la salida <strong>de</strong> datos, no<br />

es posible hacer lo que en los lenguajes <strong>de</strong> alto<br />

9

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!