Está en la página 1de 33

CARRERA DE INGENIERÍA EN SISTEMAS

COMPUTACIONALES

Programación de Microprocesadores

Ing. Johanna Zumba Gamboa, MASIE


Herramientas para programar en Lenguaje Ensamblador

1. Editor de programa
Notepad++ ó
MASM (macro ensamblador de Microsoft)

2. Compilador:
Es un programa que "traduce" el programa fuente a un programa
objeto. Programa tasm

3. Enlazador:
Es un programa que "traduce" el programa objeto a un programa
ejecutable. Programa link
Herramientas para programar en Lenguaje
Ensamblador

1. Descargar Editor Notepad++


2. Definir el lenguaje Ensamblador en Notepad ++
3. Escribir el programa
4. Guardar → archivo .asm
5. Compilar → tasm archivo.obj
6. Enlazar → tlink archivo.exe
7. Ejecutar → archivo
Extensión de un programa en Assembler
 .asm es la extensión de un programa en lenguaje Ensamblador.

Compiladores:
Definición del lenguaje Ensamblador en Notepad ++
Lenguajes de programación
Lenguaje Ensamblador
 El ensamblador es el lenguaje más directo con el
ordenador, aunque también se le ha llamado Código
Máquina, en realidad no es así, esto es debido a la mala
utilización del término Lenguaje Máquina o Código
Máquina, éste lenguaje en realidad está formado por unos
y ceros, que son los datos que realmente utilizan los
ordenadores.
Lenguaje Ensamblador
 Lenguaje Ensamblador, es en realidad el lenguaje propio
del microprocesador del ordenador.

 Normalmente los conocemos por sus nombre, 286


(80286), 386 (80386), 486(80486) , Pentium, Core, etc...

 Estos son los nombres que les dan las fábricas de dichos
microprocesadores.
Lenguaje Ensamblador
 Cadatipo de procesador maneja su propio lenguaje
ensamblador.

 Éste lenguaje está formado por una serie de palabras o


instrucciones las cuales son las más directas con el
microprocesador, es por ello , por lo que es el lenguaje
más rápido que hay, dado que es el lenguaje directo y no
necesita ninguna conversión.

 Se utiliza para realizar programas que requieren mucha


velocidad , como los juegos , inteligencia artificial, etc.
La memoria y la programación en lenguaje
Ensamblador
 Elmicroprocesador para realizar las tareas que se le
encomienden, debe realizar primero la colocación del
programa en memoria y seguir una serie de pasos antes
de realizar dicha ejecución.
La memoria y la programación en lenguaje
Ensamblador
 Elprograma se alojará en la memoria a partir de una
dirección determinada llamada "dirección de inicio" o
"dirección de comienzo".

 Estasdirecciones de memoria solo podrán ser liberadas


cuando finalice el programa y no puede utilizarla otro
programa.
La memoria y la programación en lenguaje
Ensamblador
 Toda la gestión de memoria y alojamiento de programas
en la memoria la realiza el microprocesador a través del
DMA o Acceso Directo A memoria, el cual le proporciona el
control de la memoria tanto para lectura como para
escritura en la misma.
Los registros en lenguaje Ensamblador
 Los registros son espacios físicos dentro del
microprocesador con capacidad de 4 bits hasta 64 bits
dependiendo del microprocesador.

 Un registro es una memoria de alta velocidad y poca


capacidad, integrada en el microprocesador, que permite
guardar transitoriamente y acceder a valores muy usados,
generalmente en operaciones matemáticas.
Los registros en lenguaje Ensamblador

 Seemplean para controlar instrucciones en ejecución,


manejar direccionamiento de memoria y proporcionar
capacidad aritmética.

 Son direccionados por medio de un nombre.


 Los bits por convención, se numeran de derecha a
izquierda: … 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Función de los registros
 La CPU contiene un conjunto de localidades de almacenamiento
temporal de datos de alta velocidad llamada registro.

 Los registros están en la cumbre de la jerarquía de memoria, y son


la manera más rápida que tiene el sistema de almacenar datos.

 Se miden generalmente por el número de bits que almacenan; por


ejemplo, un "registro de 8 bits" o un "registro de 32 bits“.

 Algunos de los registros están dedicados al control, y solo la unidad


de control tiene acceso a ellos, los restantes son de uso general y el
programador tiene acceso a ellos.
Memoria
Las capas superiores tienen mayor velocidad, menor capacidad y
mayor costo por bit que las capas inferiores, a menudo por factores
de mil millones o más.

nseg = nanosegundo = Medida de tiempo que equivale a la


milmillonésima parte de un segundo.
Registros internos del procesador
 Registros de segmento
 Registros de propósito general
 Registros de apuntadores
 Registros de banderas
 Registros de Puntero de instrucción
 Registros de Pila
Algunos registros básicos
 Contador de programa (PC).
 Registro de direcciones de la memoria (MAR).
 Registro de datos (RD).
 Registro de instrucciones (IR).
 Palabra de estado de programa (PSW).
Registros
Segmento y registro de Segmento
Un segmento es un área especial en un programa que inicia en un
límite de un párrafo, esto es, en una localidad de regularmente
divisible entre 16, o 10 hexadecimal.

Aunque un segmento puede estar ubicado casi en cualquier lugar de


la memoria y puede ser hasta de 64K, solo necesita tanto espacio
como el programa requiera para su ejecución.

Un segmento en modo real puede ser de hasta 64K.

Los tres segmentos principales son los segmentos de código, de datos


y de la pila.
1. Segmento de datos.

El segmento de datos (DS) contiene datos, variables, constantes y


áreas de trabajo definidos por el programa.

El registro DS direcciona el segmento de datos. Si su área de datos


requiere mas de 64K, su programa puede necesitar definir más de
un segmento de datos.
Segmento de Pila
 En términos sencillos, la pila contiene los datos y
direcciones que usted necesita guardar temporalmente o
para uso de sus "llamadas" subrutinas. El registro de
segmento de la pila (SS) direcciona el segmento de la pila.
Segmento de Código
3.Segmento de código.
El segmento de código (CS) contiene las instrucciones de máquina
que son ejecutadas, por lo común la primera instrucción ejecutable
esta en el inicio del segmento, y el sistema operativo enlaza a esa
localidad para iniciar la ejecución del programa.

Como su nombre indica, el registro del CS direcciona el segmento de


código.

Si su área de código requiere mas de 64K, su programa puede


necesitar definir mas de un segmento de código.
Párrafos
 Un
segmento físico sólo puede comenzar en direcciones de
memoria pares divisibles por 16, incluyendo la dirección 0.

A estas direcciones se las denomina “párrafos”


(paragraph). Se puede reconocer un párrafo ya que su
dirección hexadecimal siempre termina con 0, como lo es
en 10000h o 2EA70h.

 Losprocesadores 8086/286 utilizan segmentos de un


tamaño de 64K
Palabra
 Word: Conjunto de dos bytes o 16 bits.
Dirección de memoria
 Esun identificador para una localización de memoria con
la cual un programa informático o un dispositivo de
hardware pueden almacenar un dato para su posterior
reutilización.
Ancho soportado por los registros de memoria
 Sistema de 32 bits: 232
Rango: Desde 0 hasta 4.294.967.295 = 4GB

 Sistema de 64 bits: 264


Rango: Desde 0 hasta 18.446.744.073.709.551.615=18.4 ZB ó
18 millones TB
Almacenamiento de Datos
 Little
Endian
 Big Endian
Tipos de Datos en Assembler
Tipos de Datos

También podría gustarte