PDF de programación - Programación en lenguaje ensamblador. Instrucciones básicas. Formatos. Direccionamientos

Imágen de pdf Programación en lenguaje ensamblador. Instrucciones básicas. Formatos. Direccionamientos

Programación en lenguaje ensamblador. Instrucciones básicas. Formatos. Direccionamientosgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 15 de Marzo del 2018)
1.757 visualizaciones desde el 15 de Marzo del 2018
145,7 KB
13 paginas
Creado hace 16a (23/11/2007)
TEMA

3333

Programación en lenguaje
ensamblador. Instrucciones

básicas. Formatos.
Direccionamientos

Mª Luisa Garzón Villar

Cuerpo de Profesores de Enseñanza Secundaria

Volumen II. Informática

ÍNDICE SISTEMÁTICO

1.

2.

3.

4.

INTRODUCCIÓN
1.1.
1.2.

Registros internos del microprocesador
La memoria del ordenador. Direccionamiento

ELEMENTOS DE UN PROGRAMA EN ENSAMBLADOR
2.1.

Instrucciones
2.1.1. El campo etiqueta
2.1.2. El campo verbo de la instrucción
2.1.3. El campo comentario
2.1.4. El campo operando

2.1.4.1. Modos de direccionamiento

2.2.
2.3.
2.4.

Directivas
Constantes
Operadores
2.4.1. Operadores aritméticos
2.4.2. Operadores lógicos
2.4.3. Operadores relacionales
2.4.4. Operadores de retorno de valores
2.4.5. Operadores de atributos
2.4.6. Otros operadores

CLASIFICACIÓN DE LAS DIRECTIVAS
3.1.
Directivas de control del ensamblador
Directivas para la definición de símbolos
3.2.
Directivas para la definición de segmentos
3.3.
Directivas para la definición de datos
3.4.
3.5.
Directivas para la definición de procedimientos

CLASIFICACIÓN DE LAS INSTRUCCIONES
4.1.

Instrucciones de transferencia de datos
4.1.1. De propósito general

4.1.1.1.

Para el manejo de la pila

4.2.
4.3.
4.4.
4.5.
4.6.
4.7.

4.8.

4.1.2. De transferencia de direcciones
De entrada/salida
De cálculo
Lógicas
De desplazamiento
De rotación
De ruptura de secuencia
4.7.1.
4.7.2. Condicional
4.7.3.
Otras instrucciones
4.8.1. Llamada vuelta de interrupción
4.8.2. Operaciones con cadenas de caracteres
4.8.3. Operaciones con banderas

Incondicional

Iterativas

5.

ESTRUCTURA DE UN PROGRAMA EN ENSAMBLADOR

BIBLIOGRAFÍA

4

CUERPO DE PROFESORES DE ENSEÑANZA SECUNDARIA

Programación en lenguaje ensamblador

1. INTRODUCCIÓN

El lenguaje ensamblador fue el primer intento de sustituir el lenguaje máquina por otro más pa-
recido al utilizado por el hombre. La transformación consistió en la sustitución de las cadenas de unos
y ceros por palabras mnemotécnicas en cada una de las instrucciones en lenguaje máquina.

Por este motivo, se presentan prácticamente los mismos inconvenientes que en la utilización del
lenguaje máquina: el problema de que cada máquina tiene el suyo propio y, por lo tanto, los progra-
mas no son transportables; el de la necesidad de conocer perfectamente el hardware del equipo, ya
que se trabaja directamente con direcciones de memoria y registros del microprocesador; y la “inco-
modidad” de trabajar con instrucciones elementales que provocan la descripción detallada de todas
las acciones que habrá de llevar a cabo el ordenador.

Pero por este mismo motivo, este lenguaje incorpora la ventaja del lenguaje máquina en cuanto a
la mínima ocupación de memoria y mínimo tiempo de ejecución comparados con el resultado de la
compilación del mismo programa escrito en otro lenguaje.

Para el desarrollo de este tema, y para así poder explicar con detalle algunos conceptos, nos cen-
traremos en un modelo de microprocesador concreto, la serie 80x86 de Intel, del que recordaremos
algunos conceptos previos necesarios.

1.1. Registros internos del microprocesador

Son 14 registros de 16 bits, divididos en las siguientes categorías:





4 registros de datos o de almacenamiento temporal:
Ø AX (Acumulador): principal registro utilizado en las operaciones aritméticas.
Ø BX (Base): se utiliza para indicar desplazamientos.
Ø CX (Contador): se utiliza como contador en bucles y en operaciones de tipo repeti-

tivo.

Ø DX (Dato): se utiliza en operaciones aritméticas.
Existe la posibilidad de referirse a la mitad inferior o superior de estos registros utilizando
la denominación AH, para la parte superior (más significativa) del acumulador, y AL, para
la parte inferior (menos significativa) del acumulador; esta denominación se puede aplicar
también a los demás registros de datos.

4 registros de segmentos que contienen la dirección de comienzo de cada segmento:
Ø CS (Registro del segmento de código): indica la posición de comienzo del segmento

de código, o sea las instrucciones del programa.

Ø DS (Registro del segmento de datos): indica la posición donde empieza el segmen-
to de datos, es decir, el área de memoria donde están almacenados los datos del
programa.

Ø SS (Registro del segmento de la pila): indica la posición de memoria donde empie-

za la pila.

Ø ES (Registro del segmento extra): indica la posición de memoria donde comienza el
segmento extra, un segmento de datos adicional que también se utiliza para transfe-
rencia de datos entre segmentos.

TEMARIO DE INFORMÁTICA. PRUEBA A

5

Volumen II. Informática











2 registros punteros de pila:

Ø BP (Puntero base): indica la dirección de comienzo de la pila.

Ø SP (Puntero de pila): indica la posición de la cabecera de la pila.

2 registros índices que se usan como desplazamiento relativo a un campo de datos:

Ø SI (Índice fuente).

Ø DI (Índice destino).

1 registro puntero de instrucciones, también llamado contador de instrucciones (PC):

Ø IP (Puntero de instrucción): que contiene un desplazamiento sobre el segmento de có-
digo e indica, junto con el registro CS, la posición de la siguiente instrucción a ejecutar
(CS:IP).

1 registro de banderas:

Ø FLAGS (Banderas): que almacenan información de control y estado de las operacio-
nes del microprocesador. Existen nueve banderas en este registro y cada una ocupa un
bit, de forma que los siete bits restantes no se utilizan:

6 banderas de estado: normalmente asociadas a las instrucciones aritméticas o de compara-
ción, registran el estado del microprocesador.

Ø Bit 0, CF (Bandera de acarreo): para indicar acarreo en las operaciones aritméticas

(“1” acarreo, “0” no hay acarreo).

Ø Bit 11, OF (Bandera de overflow): para indicar si ha habido o no desbordamiento arit-

mético (“1” overflow, “0” no hay overflow).

Ø Bit 6, ZF (Bandera de resultado cero o comparación igual): indica si el resultado de la

última operación ha sido cero (“1” ha sido cero, “0” ha sido distinto de cero).

Ø Bit 7, SF (Bandera de resultado o comparación negativa): guarda el bit más significa-

tivo del resultado (bit de signo).

Ø Bit 2, PF (Bandera de paridad): indica paridad par o impar.

Ø Bit 4, AF (Bandera de acarreo auxiliar): indica si hay necesidad de ajuste en operacio-

nes aritméticas en BCD.



3 banderas de control: que registran el modo de funcionamiento del procesador:

Ø Bit 10, DF (Bandera de dirección): indica si una operación con una cadena de ca-
racteres se realizará hacia adelante o hacia atrás, incrementando o decrementando
los registros índices SI y DI (“1” se empieza por el final, “0” se empieza por el
principio).

Ø Bit 9, IF (Bandera de interrupciones): indica si se permiten o no las interrupciones por

parte de los dispositivos externos (“1” permitidas, “0” no permitidas).

Ø Bit 8, TF (Bandera de atrape): utilizada por el programa Debug para el control de la

operación paso a paso (“1” lee, ejecuta y se para por cada instrucción).

6

CUERPO DE PROFESORES DE ENSEÑANZA SECUNDARIA

Programación en lenguaje ensamblador

1

0

CF

2

PF

3

4

5

6

7

8

9

10

11

12

13

14

15

AF

ZF

SF

TF

IF DF OF

Registro de banderas (FLAGS).

Registros del
microprocesador.

1.2. La memoria del ordenador. Direccionamiento

La arquitectura de estos ordenadores obliga a que la memoria sea dividida en bloques o segmen-
tos de 64 KB de longitud, capaces de ser direccionados con una palabra de 16 bits; de esta forma, para
acceder a un dato de la memoria, se utilizarán dos registros, el registro que indica donde empieza el
segmento y un registro que indica el desplazamiento con respecto a dicho comienzo, de forma que las
direcciones de memoria tendrán el siguiente aspecto:

Segmento: desplazamiento.
Segmentos y registros asociados
Dentro de un programa, podemos encontrarnos con cuatro segmentos, cada uno de los cuales se direc-

ciona mediante un registro de segmento y uno o varios registros de desplazamiento, de la siguiente forma:



Segmento de código, donde cada instrucción se direcciona mediante:
Ø Registro de segmento: CS.
Ø Registro de desplazamiento: IP.

TEMARIO DE INFORMÁTICA. PRUEBA A

7

Volumen II. Informática







Segmento de datos, donde cada dato se direcciona mediante:
Ø Registro de segmento: DS.
Ø Registros de desplazamiento BX, SI, o DI.

Segmento de pila, donde cada elemento de la pila se direcciona mediante:
Ø Registro de segmento: SS.
Ø Registros de desplazamiento SP o BP.

Segmento extra, donde cada dato se direcciona mediante:
Ø Registro de segmento: ES.
Ø Registros de desplazamiento BX, SI, o DI.

Registros de uso general

15

8

AH

BH

CH

DH

0

7

AL

BL

CL

DL

AX

BX

CX

DX

SP

BP

SI

DI

Bus interno 16 bits

REGISTROS

TEMPORALES

Bus de direcciones (20 bits)

SUMADOR

LÓGICA DE
CONTROL
DEL BUS

Buses
externos

Segmento

15

Desplazamiento

0

CS

DS

ES

SS

IP

REGISTROS DE
COMUNICACIÓN

INTERNA

Bus de datos

8 bits para el 8088
16 bits para el 8086

SISTEMA DE
CONTROL DE
LA UNIDAD DE

EJECUCIÓN

Cola de instrucciones

1

2

3

4

4 bytes para el 8088
6 bytes para el 8086

UNIDAD

ARITMÉTICO-

LÓGICA

INDICADORES

UNIDAD DE EJECUCIÓN (EU)

UNIDAD DE INTERFAZ CON EL BUS (BIU)

Modelo de
CPU para el
8088/8086.

8

CUERPO DE PROFESORES DE ENSEÑANZA SECUNDARIA

Programación en lenguaje ensamblador

2. ELEMENTOS DE UN PROGRAMA EN ENSAMBLADOR

En un programa ensamblador, nos podemos encontrar con dos tipos de sentencias: las instruc-

ciones y las directivas (o pseudo-operaciones o pseudo-ops).

Las instrucciones se aplican en tiempo de ejecución, y las directivas, en tiempo de ensamblaje
del programa. Estas últimas se utilizan para indicar al ensamblador qué hacer con las instrucciones y
los datos.

2.1. Instrucciones

El formato de una instrucción es el siguiente:
{etiqueta} VERBO-INSTRUCCIÓN {operandos} {comentario}
Nota: las llaves indican que el campo correspondiente es opcional, por lo tanto, en la sintaxis de
una instrucción, solamente es obligatorio el verbo de la instrucción, ya que
  • Links de descarga
http://lwp-l.com/pdf9558

Comentarios de: Programación en lenguaje ensamblador. Instrucciones básicas. Formatos. Direccionamientos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad