Macroensamblador - PowerPoint PPT Presentation

About This Presentation
Title:

Macroensamblador

Description:

Ejemplo MASM Ensambladores cruzados. (Crossassembler) Ensamblan programas escritos en lenguaje de un procesador diferente al de la computadora de trabajo, ... – PowerPoint PPT presentation

Number of Views:87
Avg rating:3.0/5.0
Slides: 20
Provided by: BBM5
Category:

less

Transcript and Presenter's Notes

Title: Macroensamblador


1
Macroensamblador
  • MC Beatriz Beltrán Martínez
  • Verano 2014

2
Tipos de Ensambladores
  • Definición Un ensamblador es un programa que
    traduce mnemónicos de un procesador a si
    correspondiente lenguaje de máquina.
  • Por la forma en que trabajan existen dos tipos de
    ensambladores
  • Ensambladores de línea. Son aquellos que reciben
    una sola línea de un programa y la ensambla
    independientemente del resto del programa.
    Ejemplo el comando a del debug.
  • Ensambladores de archivo. Son aquellos que
    ensamblan todo un programa almacenado en un
    archivo.

3
Tipos de Ensambladores
  • Por el tipo de información que manejan los
    ensambladores se dividen también en
  • Ensambladores propios. (Residentes) Ensamblan
    programas escritos en lenguaje del procesador con
    el que trabaja la máquina. Ejemplo MASM
  • Ensambladores cruzados. (Crossassembler)
    Ensamblan programas escritos en lenguaje de un
    procesador diferente al de la computadora de
    trabajo, pero no puede ejecutarse.
  • Macroensambladores. Ensambladores propios o
    cruzados que permiten definición y expansión de
    MACROS.

4
Macroensamblador
  • Facilidades de los ensambladores de archivo.
  • Nos permite definir etiquetas (nombre que nos
    marca una dirección importante)
  • Nos permite reservar memoria con una etiqueta
    asignada.
  • Nos permite ensamblar programas almacenados en
    archivos.
  • Nos permite definir constantes.
  • Nos permite dar números en diferentes bases.
  • Nos permite evaluar expresiones aritméticas.
    Ejemplo mov ax, 302

5
Macroensamblador
  • MASM
  • Recibe archivos ASCII editados en cualquier
    editor que contenga programas en lenguaje
    ensamblador.
  • Tales archivos deben tener extensión ASM y con
    una forma específica.
  • Algoritmo ? Codificación en ensamblador ? Editar
    (archivo.asm) ? ensamblar (masm archivo.asm) ?
    código de máquina (archivo.obj) ? ligar ? archivo
    ejecutable (archivo.exe) ? ejecutar.

6
Macroensamblador
  • El archivo objeto no se puede ejecutar porque no
    tiene la dirección de memoria donde se ejecutará
    y será ligado.
  • Definición. Una pseudoinstrucción es una
    instrucción para el programa ensamblador, esto
    es, que solo se ejecuta en el momento de
    ensamblar, además no generar código.

7
Macroensamblador
  • Pseudoinstrucciones para definir segmentos
  • SEGMENT Define el inicio de un nuevo segmento.
    Su formato es
  • nombre SEGMENT alineación combinación clase
  • ENDS Define el final de un segmento. Su formato
    es
  • nombre ENDS

8
Macroensamblador
  • Los parámetros del SEGMENT son información para
    el ligador
  • Alineación Define la dirección a partir de donde
    puede colocarse el segmento
  • PARA La dirección inicial del segmento es un
    múltiplo de 16 (10h).
  • PAGE La dirección inicial del segmento es donde
    empieza una página (múltiplo de 100h).
  • WORD La dirección inicial del segmento es una
    dirección par.
  • BYTE EL segmento inicia donde sea.

9
Macroensamblador
  • Combinación Define la forma en que el segmento
    puede combinarse con otros segmentos para que se
    tenga el mismo nombre y clase.
  • OMITIRLA Segmento privado, es decir, no puede
    combinarse.
  • STACK Segmento para usarse con el stack.
  • PUBLIC Este segmento puede unirse con todos los
    segmentos del mismo y la misma clase para formar
    una sola.
  • COMMON Todos los segmentos del mismo nombre y
    clase se colocan a partir de la misma dirección.

10
Macroensamblador
  • Cuando se tienen dos segmentos con el mismo
    nombre y clase y son públicos, al ligar se unen
    en un solo segmento no importando que estén en
    archivos distintos.
  • Cuando se usa la psudoinstrucción COMMON van a
    utilizar el mismo espacio de memoria, si son de
    diferente tamaño en memoria, se toma el tamaño
    del mayor bloque.
  • Clase Indica el tipo de datos que contiene el
    segmento, siempre se ponen entre comillas y
    pueden definirse propios.

11
Macroensamblador
  • DATA Datos.
  • CODE Código.
  • STACK Pila.
  • Pseudoinstrucciones para reservar memoria y
    definir constantes
  • DB Sirve para reservar un byte en la memoria con
    un valor determinado. Su formato es
  • nombre DB val1 , val2, ..., valn
  • DW Reserva un dato de dos bytes (una palabra)
    con un valor inicial. Su formato es
  • nombre DW val1 , val2, ..., valn

12
Macroensamblador
  • DD Reserva un dato de cuatro bytes (doble
    palabra) con un valor inicial. Su formato es
  • nombre DD val1 , val2, ..., valn
  • DQ Reserva un dato de ocho bytes (cuádruple
    palabra) con un valor inicial. Su formato es
  • nombre DQ val1 , val2, ..., valn
  • DT Reserva un dato de diez bytes con un valor
    inicial. Su formato es
  • nombre DT val1 , val2, ..., valn
  • vali representa una expresión formada por números
    en cualquiera de las siguientes bases

13
Macroensamblador
XXXXb Binaria
XXXXo Octal
XXXXd Decimal
XXXX Decimal
XXXXh Hexadecimal
14
Macroensamblador
  • También pueden ser etiquetas o expresiones
    aritméticas que involucren etiquetas o bien
    cadenas de caracteres, entre apóstrofes.
  • EQU Permite definir constantes. Su formato es
  • etiq EQU val
  • ORG Define un desplazamiento inicial para
    ensamblar las siguientes líneas. Su formato es
  • ORG val

15
Macroensamblador
  • Pseudoinstrucciones para definir procedimientos
  • PROC Define el inicio de una subrutina.
  • nombre PROC tipo
  • ENDP Define el final de una subrutina.
  • nombre ENDP
  • El tipo de la subrutina puede ser
  • NEAR Cercano.
  • FAR Lejano.
  • OMITIRLO Se define por omisión de tipo NEAR.

16
Macroensamblador
  • Un ensamblador de archivo, revisa errores de
    sintaxis, es decir, revisa que el programa esté
    bien escrito, más no que funcione.
  • Para poner comentarios dentro del programa se
    inician con un y todo lo que este a la
    derecha será un comentario sobre el mismo
    renglón.
  • La estructura del archivo quedaría

17
Macroensamblador
  • Datos SEGMENT PARA DATA
  • Definición de variables y constantes
  • Datos ENDS
  • Pila SEGMENT PARA STACK STACK
  • DW 100 DUP (0) Indica que se tiene que
  • repetir la instrucción n-veces con el
  • valor que aparece en los paréntesis
  • Pila ENDS

18
Macroensamblador
  • Codigo SEGMENT PARA CODE
  • ASSUME DSDatos, CSCodigo, SSPila, ESNOTHING
  • Sirve para indicarle al macroensamblador
    cuales
  • segmentos son usados por los registros
  • subrutina1 PROC
  • Código de la rutina uno
  • subrutina1 ENDP
  • subrutina-n PROC
  • Código de la rutina-n
  • subrutina-n ENDP

19
Macroensamblador
  • Programa principal
  • Main PROC FAR
  • PUSH DS Sirve para cuando se termine el
    programa regrese
  • XOR AX, AX al debug o al sistema operativo
    según sea el caso.
  • PUSH AX
  • MOV AX, Datos
  • Actualiza los registros de
    segmentos de datos y extra
  • MOV DS, AX
  • MOV ES, AX
  • Código del programa principal.
  • Main ENDP
  • Codigo ENDS
  • END Main
  • Le indica al macroensamblador que el ensamble
    terminó
Write a Comment
User Comments (0)
About PowerShow.com