PDF de programación - Lenguaje Ensamblador del microprocesador

Imágen de pdf Lenguaje Ensamblador del microprocesador

Lenguaje Ensamblador del microprocesadorgráfica de visualizaciones

Publicado el 2 de Noviembre del 2020
1.207 visualizaciones desde el 2 de Noviembre del 2020
237,1 KB
54 paginas
Creado hace 20a (05/06/2003)
MICROPROCESADORES Y MICROCOMPUTADORAS

COMPUTACIÓN V

LENGUAJE ENSAMBLADOR DEL MICROPROCESADOR



1. Registros Internos del Microprocesador

2. Conjunto de Instrucciones (Microprocesadores 8086/8088)


Instrucciones de Transferencia de Datos
Instrucciones de Control de Bucles (instrucciones simples)
Instrucciones de Prueba, Comparación y Saltos
Instrucciones de Llamado y Retorno de Subrutinas
Instrucciones Aritméticas
Instrucciones Lógicas
Instrucciones de Desplazamiento, Rotación y Adeudos
Instrucciones de Pila
Instrucciones de Control del Microprocesador

2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10 Instrucciones de Interrupción


3. Formato de las instrucciones

4. Modos de Direccionamiento y Generación del Código Objeto


4.1 Direccionamiento Inmediato
4.2 Direccionamiento a Registro
4.3 Direccionamiento Directo
4.4 Direccionamiento de Registro Indirecto
4.5 Direccionamiento de Registro Indirecto con Desplazamiento
4.6 Direccionamiento de Registro Indirecto con un Registro Base y un Registro

Índice

ce y un registro constante

4.7 Direccionamiento de Registro indirecto con un registro base, un registro índi-

4.8 Código Objeto del 8086/8088
4.9 Bit W y Campo REG
4.10 Bit D, MOD y R/M
4.11 Código Objeto para el Uso de Registro Base y Registro Índice
4.12 Sumario del Código Objeto
4.13 Interrupciones de los Servicios Básicos de Entrada y Salida (BIOS, por sus si-

glas en inglés)


5. Programación en Lenguaje Ensamblador


5.1 Creación de Archivos Fuente
5.2 Procedimientos en Ensamblador
5.3 Procedimiento para Exhibir Números Hexadecimales al Monitor
5.4 Principio de Diseño Modular
5.5 Esqueleto de un Programa en Ensamblador



5.5.1 Directiva: .DATA
5.5.2 Directiva: .MODEL SMALL
5.5.3 Directiva: .DOSSEG

3. LENGUAJE ENSAMBLADOR DEL MICROPROCESADOR

LUIS URIETA PÉREZ Y PABLO FUENTES RAMOS

3 -1

MICROPROCESADORES Y MICROCOMPUTADORAS

COMPUTACIÓN V



5.6 Ejercicio 1
5.7 Ejercicio 2
5.8 Ejercicio 3
5.9 Ejercicio 4
5.10 Ejercicio 5
5.11 Ejercicio 6
5.12 Ejercicio 7
5.13 Ejercicio 8
5.14 Ejercicio 9
5.15 Ejercicio 10
5.16 Ejercicio 11
5.17 Ejercicio 12
5.18 Ejercicio 13
5.19 Ejercicio 14
5.20 Ejercicio 15
5.21 Ejercicio 16
5.22 Ejercicio 17
5.23 Ejercicio 18
5.24 Ejercicio 19
5.25 Ejercicio 20

3. LENGUAJE ENSAMBLADOR DEL MICROPROCESADOR

LUIS URIETA PÉREZ Y PABLO FUENTES RAMOS

3 -2

MICROPROCESADORES Y MICROCOMPUTADORAS

COMPUTACIÓN V

REGISTROS INTERNOS DEL MICROPROCESADOR


Estos son los únicos registros que pueden usarse de modo dual (en 8 o 16 bits)

La Unidad Central de Proceso (CPU, por sus siglas en inglés) tiene 14 registros in-
ternos cada uno de 16 bits. Los primeros cuatro, AX, BX, CX y DX, son de uso general
y se pueden usar también como registros de 8 bits. Es decir, AX se puede dividir en AH
y AL (AH es el byte alto, high, y AL es el byte bajo, low) Lo mismo es aplicable a los
otros tres (BX en BH y BL, CX en CH y CL y DX en DH y DL)


Los registros de la CPU son conocidos por sus nombres propios, que son:

•• AX
•• BX
•• CX
•• DX
•• DS
•• ES
•• SS
•• CS
•• BP
•• SI
•• DI
•• SP
IP
••
•• F



(acumulador)
(registro base)
(registro contador)
(registro de datos)
(registro del segmento de datos)
(registro del segmento extra)
(registro del segmento de pila)
(registro del segmento de código)
(registro de apuntadores base)
(registro índice fuente)
(registro índice destino)
(registro del apuntador de pila)
(registro del apuntador de siguiente instrucción)
(registro de banderas)

El registro AX se usa para almacenar resultados, lectura o escritura desde o
hacia los puertos. El BX sirve como apuntador base o índice. El CX se utiliza en opera-
ciones de iteración, como un contador que automáticamente se incrementa o decre-
menta de acuerdo con el tipo de instrucción usada. El DX se usa como puente para el
acceso de datos.

El DS es un registro de segmento cuya función es actuar como policía donde se

encuentran los datos. Cualquier dato, ya sea una variable inicializada o no, debe estar
dentro de este segmento. La única excepción es cuando tenemos programas del tipo
*.com, ya que en éstos sólo puede existir un segmento. El registro ES tiene el propósi-
to general de permitir operaciones sobre cadenas, pero también puede ser una exte n-
sión del DS.

El SS tiene la tarea exclusiva de manejar la posición de memoria donde se en-

cuentra la pila (stack) Esta es una estructura usada para almacenar datos en forma
temporal, tanto de un programa como de las operaciones internas de la computadora
personal (PC, por sus siglas en inglés) En términos de operación interna, la CPU usa es-
te segmento para almacenar las direcciones de retorno de las llamadas a rutinas. El
registro de segmentos más importante es el CS o segmento de código. Es aquí donde
se encuentra el código ejecutable de cada programa, el cual está directamente ligado a
los diferentes modelos de memoria.

El registro BP (base pointer) se usa para manipular la pila sin afectar al registro

de segmentos SS. Es útil cuando se usa interfaz entre lenguajes de alto nivel y el en-

3. LENGUAJE ENSAMBLADOR DEL MICROPROCESADOR

LUIS URIETA PÉREZ Y PABLO FUENTES RAMOS

3 -3

MICROPROCESADORES Y MICROCOMPUTADORAS

COMPUTACIÓN V

A continuación se describe el significado de cada bit del registro F (banderas)

samblador. Puesto que dicha interfaz se basa en el concepto de la pila BP, nos permite
acceder parámetros pasados sin alterar el registro de segmento SS. Los registros SI y
DI son útiles para manejar bloques de cadenas en memoria, siendo el primero el índice
fuente y el segundo el índice destino. En otras palabras, SI representa la dirección
donde se encuentra la cadena y DI la dirección donde será copiada.

El registro SP apunta a un área específica de memoria que sirve para almacenar

datos bajo la estructura LIFO (último en entrar, primero en salir), conocida como pila
(stack) El registro IP (instruction pointer) apunta a la siguiente instrucción que será
ejecutada en memoria.



Todas las banderas apagadas:



Todas las banderas prendidas:



•• Overflow

Significado de los bits:

NG

ZR

NA

PO

OV

DN

AC

PE

NC

NV

UP

DI

PL

NZ

EI



CY

•• Direction

••

Interrupts

•• Sign

•• Zero



•• Auxiliary Carry

•• Parity

•• Carry



NV = no hay desbordamiento
OV = Sí lo hay
UP = hacia adelante
DN = hacia atrás
DI = desactivadas
EI = activadas
PL = positivo
NG = negativo
NZ = no es cero
ZR = sí lo es
NA = no hay acarreo auxiliar
AC = hay acarreo auxiliar
PO = paridad non
PE = paridad par
NC = no hay acarreo
CY = sí lo hay

El registro de banderas es un registro de 16 bits, pero no todos los bits se usan.



PSW Contiene 9 banderas. Tres banderas de control TF, DF, IF y seis banderas de status

CF, PF, AF, ZF, SF, OF.

Estas 6 últimas banderas representan el resultado de una operación aritmética
o lógica. Permiten al programa alterar el curso de ejecución basado en los valo-
res lógicos que almacenan.



3. LENGUAJE ENSAMBLADOR DEL MICROPROCESADOR

LUIS URIETA PÉREZ Y PABLO FUENTES RAMOS

3 -4

•• AF

•• CF

•• OF

•• SF

•• PF

•• ZF


MICROPROCESADORES Y MICROCOMPUTADORAS

COMPUTACIÓN V

Llevar auxiliar = 1, indica que hubo “llevar” del nibble (4 bits) 0 al nibble 1. O un
“pedir préstamo” del nibble alto al nibble bajo.
Llevar = 1, cuando ha ocurrido un “llevar” o “pedir préstamo” del resultado (8 o
16 bits)
Sobreflujo = 1, indica que ha ocurrido un sobreflujo aritmético. Esto significa
que el tamaño del resultado excede la capacidad de ALMACENAMIENTO del des-
tino y el dígito significativo se perdió.
Signo. Esta bandera se activa cuando el bit más significativo del resultado es 1.
Ya que los números binarios negativos son representados usando notación C2,
SF refleja el signo del resultado:
0 indica +
1 indica -
Paridad. Cuando esta bandera está activa, el resultado de la operación tiene un
número par de unos. Esta bandera se usa para verificar errores en la transmi-
sión.
Cero. Esta bandera se activa cuando el resultado de la operación es cero.

Las tres banderas de control serán discutidas después durante el curso

bandera de dirección
bandera de interrupción
bandera de trampa


•• DF =
••
IF =
•• TF =


CONJUNTO DE INSTRUCCIONES (Microprocesadores 8086/8088)



Instrucciones de Transferencia de Datos.

Se pueden clasificar en los siguientes grupos:


Estas instrucciones mueven datos de una parte a otra del sistema; desde y hacia la me-
moria principal, de y a los registros de datos, puertos de E/S y registros de segmentación.

Las instrucciones de transferencia de datos son las siguientes:


IN

•• MOV


•• XCHG

••


•• OUT


•• XLAT

•• LEA


•• LDS


•• LES


•• LAHF

•• SAHF

•• PUSH FUENTE
•• POP DESTINO

transfiere
intercambia
entrada
salida
traduce usando una tabla
carga la dirección efectiva
carga el segmento de datos
carga el segmento extra
carga los indicadores en AH
guarda AH en los indicadores
(sp) ‹‹ fuente
destino ‹‹ (sp)

3. LENGUAJE ENSAMBLADOR DEL MICROPROCESADOR

LUIS URIETA PÉREZ Y PABLO FUENTES RAMOS

3 -5

Control de Bucles (instrucciones simples)

MICROPROCESADORES Y MICROCOMPUTADORAS

COMPUTACIÓN V


Éstas posibilitan el grupo de control más elemental de nuestros programas. Un bucle es
un bloque de código que se ejecuta varias veces. Hay 4 tipos de bucles básicos:


o Bucles sin fin
o Bucles por conteo
o Bucles hasta
o Bucles mientras


Las instrucciones de control de bucles son las siguientes:


••
INC


•• DEC


•• LOOP
  • Links de descarga
http://lwp-l.com/pdf18415

Comentarios de: Lenguaje Ensamblador del microprocesador (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