ensamblador

Páginas: 5 (1076 palabras) Publicado: 19 de marzo de 2013
DIRECTIVAS DE CONTROL DEL ENSAMBLADOR.
* ORG (ORiGin): pone el contador de posiciones del ensamblador, que indica el offset donde se deposita la instrucción o dato, donde se indique. En los programas COM (que se cargan en memoria con un OFFSET 100h) es necesario colocar al principio un ORG 100h, y un ORG 0 en los controladores de dispositivo (aunque si se omite se asume de hecho un ORG 0).* END [expresión]: indica el final del fichero fuente. Si se incluye, expresión indica el punto donde arranca el programa. Puede omitirse en los programas EXE si éstos constan de un sólo módulo. En los COM es preciso indicarla y, además, la expresión -realmente una etiqueta- debe estar inmediatamente después del ORG 100h.

* .286, .386 Y .8087 obligan al ensamblador a reconocerinstrucciones específicas del 286, el 386 y del 8087. También debe ponerse el «.» inicial. Con .8086 se fuerza a que de nuevo sólo se reconozcan instrucciones del 8086 (modo por defecto). La directiva .386 puede ser colocada dentro de un segmento (entre las directivas SEGMENT/ENDS) con el ensamblador TASM, lo que permite emplear instrucciones de 386 con segmentos de 16 bits; alternativamente se puedeubicar fuera de los segmentos (obligatorio en MASM) y definir éstos explícitamente como de 16 bits con USE16.

* EVEN: fuerza el contador de posiciones a una posición par, intercalando un byte con la instrucción NOP si es preciso. En buses de 16 ó más bits (8086 y superiores, no en 8088) es dos veces más rápido el acceso a palabras en posición par:

EVENdato_rapido DW 0
* .RADIX n: cambia la base de numeración por defecto. Bastante desaconsejable dada la notación elegida para indicar las bases por parte de IBM/Microsoft (si se cambia la base por defecto a 16, ¡los números no pueden acabar en 'd' ya que se confundirían con el sufijo de decimal!: lo ideal sería emplear un prefijo y no un sufijo, que a menudo obliga además ainiciar los números por 0 para distinguirlos de las etiquetas).
5.3.4. - DIRECTIVAS DE DEFINICIÓN DE SEGMENTOS Y PROCEDIMIENTOS.
* SEGMENT-ENDS: SEGMENT indica el comienzo de un segmento (código, datos, pila, etc.) y ENDS su final. El programa más simple, de tipo COM, necesita la declaración de un segmento (común para datos, código y pila). Junto a SEGMENT puede aparecer, opcionalmente, el tipode alineamiento, la combinación, el uso y la clase:

nombre SEGMENT [alineamiento] [combinación] [uso] ['clase']
. . . .
nombre ENDS

Se pueden definir unos segmentos dentro de otros (el ensamblador los ubicará unos tras otros). El alineamiento puede ser BYTE (ninguno), WORD (el segmento comienza en posiciónpar), DWORD (comienza en posición múltiplo de 4), PARA (comienza en una dirección múltiplo de 16, opción por defecto) y PAGE (comienza en dirección múltiplo de 256). La combinación puede ser:

- (No indicada): los segmentos se colocan unos tras otros físicamente, pero son lógicamente independientes: cada uno tiene su propia base y sus propios offsets relativos.
-PUBLIC: usado especialmente cuando se trabaja con segmentos definidos en varios ficheros que se ensamblan por separado o se compilan con otros lenguajes, por ello debe declararse un nombre entre comillas simples -'clase'- para ayudar al linkador. Todos los segmentos PUBLIC de igual nombre y clase tienen una base común y son colocados adyacentemente unos tras otros, siendo el offset relativo alprimer segmento cargado.
- COMMON: similar, aunque ahora los segmentos de igual nombre y clase se solapan. Por ello, las variables declaradas han de serlo en el mismo orden y tamaño.
- AT: asocia un segmento a una posición de memoria fija, no para ensamblar sino para declarar variables (inicializadas siempre con '?') de cara a acceder con comodidad a zonas de ROM,...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • ensamble
  • Ensamblador
  • Ensambles
  • Ensamblado
  • ENSAMBLE
  • Ensamblado
  • Ensamblador
  • Ensamblador

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS