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