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.

Declarando segmentos<br />

Para <strong>de</strong>clarar un segmento se emplea la siguiente sintaxis:<br />

Nombre SEGMENT alineación combinar 'clase'<br />

Don<strong>de</strong> el nombre y el segmento son altamente necesarios, mientras que<br />

alineación, combinar y clase son opcionales.<br />

Nombre es el i<strong>de</strong>ntificador <strong>de</strong>l segmento, SEGMENT indica que se trata <strong>de</strong><br />

un segmento, lineación indica el límite en el que inicia el segmento. Para el<br />

requerimiento típico, PARA, alinea el segmento con el límite <strong>de</strong> un párrafo, <strong>de</strong><br />

manera que la dirección inicial es divisible entre 16, o 10H. En ausencia <strong>de</strong> un<br />

operando hace que el <strong>ensamblador</strong> por omisión tome PARA.<br />

Combinar indica si se combina el segmento con otros segmentos cuando<br />

son enlazados <strong>de</strong>spués <strong>de</strong> ensamblar. Los tipos <strong>de</strong> combinar son STACK,<br />

COMMON, PUBLIC y la expresión AT. Pue<strong>de</strong> utilizar PUBLIC y COMMON en<br />

don<strong>de</strong> tenga el propósito <strong>de</strong> combinar <strong>de</strong> forma separada programas ensamblados<br />

cuando los enlaza. En otros casos, don<strong>de</strong> un programa no es combinado con<br />

otros, pue<strong>de</strong> omitir la opción o codificar NONE.<br />

La entrada clase, encerrada entre apóstrofos, es utilizada para agrupar<br />

segmentos cuando se enlazan. Se utiliza la clase 'co<strong>de</strong>' para el segmento <strong>de</strong><br />

códigos, 'data' por segmento <strong>de</strong> datos y 'stack' para el segmento <strong>de</strong> la pila.<br />

Directiva ASSUME<br />

Para que <strong>ensamblador</strong> sepa cual segmento es cual, se utiliza el ASSUME.<br />

ASSUME CS:CODIGO, DS:DATO, SS:PILA, ES:EXTRA<br />

De esta manera, Ensamblador asume que el segmento que se llama<br />

CODIGO es el segmento <strong>de</strong> código, que el segmento que se llama DATO es el<br />

segmento <strong>de</strong> datos, y así sucesivamente.<br />

Directivas simplificadas <strong>de</strong> segmento<br />

Los <strong>ensamblador</strong>es <strong>de</strong> Microsoft y <strong>de</strong> Borland proporcionan algunas formas<br />

abreviadas para <strong>de</strong>finir segmentos. Para usar estas abreviaturas, inicialice el<br />

mo<strong>de</strong>lo <strong>de</strong> memoria antes <strong>de</strong> <strong>de</strong>finir algún segmento. El formato general<br />

(incluyendo el punto inicial) es:<br />

.MODEL mo<strong>de</strong>lo <strong>de</strong> memoria<br />

El mo<strong>de</strong>lo <strong>de</strong> memoria pue<strong>de</strong> ser TINY, SMALL, MEDIUM, COMPACT o<br />

LARGE. Los requisitos para cada mo<strong>de</strong>lo son:<br />

23

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

Saved successfully!

Ooh no, something went wrong!