lenguaje ensamblador n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
LENGUAJE ENSAMBLADOR PowerPoint Presentation
Download Presentation
LENGUAJE ENSAMBLADOR

Loading in 2 Seconds...

play fullscreen
1 / 113

LENGUAJE ENSAMBLADOR - PowerPoint PPT Presentation


  • 220 Views
  • Uploaded on

LENGUAJE ENSAMBLADOR. UNIDAD 1. ENSAMBLADOR.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'LENGUAJE ENSAMBLADOR' - afram


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
ensamblador
ENSAMBLADOR

Es un lenguaje de programación de bajo nivel para los computadores, microprocesadores, microcontroladores y otros circuitos integrados programables. Implementa una representación simbólica de los códigos de máquina binarios y otras constantes necesarias para programar una arquitectura dada de CPU y constituye la representación más directa del código máquina específico para cada arquitectura legible por un programador

slide4

Cobol

Pascal

Basic

Java

Alto nivel

C

BCPL

Mediano nivel

Bajo nivel

Ensamblador

Maquina

001110011010100

slide5

Los lenguajes de bajo nivel son mas fáciles de utilizar que los lenguajes máquina, pero, al igual que ellos, dependen de la máquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador.

slide7

Por ejemplo, nemotécnicos típicos de operaciones aritméticas son: en inglés, ADD, SUB, DIV, etc.; en español, SUM, RES, DIV,etc. Una instrucción típica de suma sería:

ADD M, N, P

  • Esta instrucción podría significar “sumar el número contenido en la posición de memoria M al número almacenado en la posición de memoria N y situar el resultado en la posición de memoria P”.

Evidentemente es mucho más sencillo recordar la instrucción anterior con un nemotécnico que su equivalente en código máquina”.

0110 1001 1010 1011

slide8

Un programa escrito en lenguaje ensamblador no puede ser ejecutado directamente por la computadora en esto se diferencia esencialmente del lenguaje máquina, sino que requiere una fase de traducción al lenguaje máquina.

slide9

El programa original escrito en lenguaje ensamblador se denomina programa fuente y el programa traducido en lenguaje máquina se conoce como programa objeto, ya directamente entendible por la computadora.

slide10

El traductor de programas fuente a objeto es un programa llamado ensamblador, existente en casi todos los computadores.

ventajas del lenguaje ensamblador
Ventajas del lenguaje ensamblador.
  • Los lenguajes ensambladores presentan la ventaja frente a los lenguajes máquina de su mayor facilidad de codificación y, en general, su velocidad de cálculo.
  • La segunda razón es el control total de la PC que se tiene con el uso del mismo.
  • El ensamblador permite una optimización ideal en los programas tanto en su tamaño como en su ejecución.
desventajas del lenguaje ensamblador
Desventajas del lenguaje ensamblador.
  • Dependencia total de la máquina lo que impide la transportabilidad de los programas. El lenguaje ensamblador del PC es distinto del lenguaje ensamblador del Apple Macintosh.
  • La formación de los programadores es más compleja que la correspondiente a los programadores de alto nivel, ya que no sólo las técnicas de programación, sino también el conocimiento del interior de la máquina.
escalabilidad
ESCALABILIDAD
  • Es la propiedad deseable de un sistema, una red o un proceso, que indica su habilidad para extender el margen de operaciones sin perder calidad, o bien manejar el crecimiento continuo de trabajo de manera fluida.
microprocesador
MICROPROCESADOR
  • El microprocesador o simplemente procesador, es el circuito integrado central y más complejo de una computadora
  • El procesador es un circuito integrado constituido por millones de componentes electrónicos integrados.
slide15

Su arquitectura interna consta de las siguientes partes

  • Unidad de control
  • Unidad Aritmética lógica
  • Registros Internos
  • Buses internos
  • Interrupciones
secuencia de acciones
Secuencia de acciones
  • Se inicia en una posición de memoria definida
  • Se lee el dato de esa posición y se manda al control
  • La unidad de control decodifica la instrucción y la ejecuta en señales adecuadas
  • Se incrementa el contador del programa (registro que indica a que posición se debe dirigir)
  • Se repite proceso desde el punto 2, hasta recibir unas señal del exterior
slide19
ALU
  • Circutito digital que realiza operaciones artimeticas y logicas
unidad de control
Unidad de control

Cerebro del microprocesador, genera señales de control interno y externo.

Recibe códigos los cuales decodifica y ejecuta.

Los códigos pueden ser:

  • Operaciones aritmético lógicas
  • Cargar o leer datos
  • Saltos o interrupciones
regsitros internos
Regsitros internos
  • Posiciones de memoria con utilidad general o especifica.

Tipos:

  • Registros de datos: operaciones aritméticas lógicas y manipulación de datos
  • Registros de Direcciones : para acceder a posiciones de memoria

- Contador de programa: leer o escribir datos de programa

- Puntero de pila: Recuperar y guardar datos de uso interno

- índices: para acceder a posiciones de memoria en forma relativa

3. Registro de estado: para información especifica

interrupciones
Interrupciones
  • Utilizadas para interrumpir la secuencia del programa.
buses internos
Buses Internos

Caminos de comunicación que conectan dos o mas dispositivos o acceder a diferentes partes del circuito

1. Bus de dirección: para seleccionar posición de memoria para leer o escribir datos

2. Bus de datos: transmitir datos

El microprocesador se dividen por el numero de bits que conforman el dato

4, 8 , 16, 32, 46 bits

slide24

3. Bus de control: para sincronizar actividades y transacciones con los periféricos del sistema

clasificacion del microprocesador
CLASIFICACION DEL MICROPROCESADOR

Una forma es en función de las instrucciones que son capaces de ejecutar.

Microprocesadores con tecnología CISC y RISC

CISC (Complex Instructions Set Computer): Interpreta y ejecuta un gran numero de instrucciones, lo cual los hace lentos

RISC ( Reduced Instructios Set Computer): Interpreta y ejecuta solo instrucciones reducidas, son mas rápidos que los CISC

von neumann
Von Neumann
  • Es una de las arquitecturas mas primitivas, cuando se invento los programas eran muy pequeños y los costos de memoria eran muy altos. En esta estructura, tanto datos como programa son guardados en la misma memoria y accesados en el mismo bus.
  • Cada instrucción es leída de memoria, decodificada y ejecutada.
  • Durante el estado de decodificación algunos operadores son leídos de la misma memoria.
  • Las computadoras Von Neumann son llamadas también computadoras de almacenamiento de programas, porque los programas son guardados en ROM, la cual no se cambia durante el tiempo de ejecución.
arquitectura harvard
Arquitectura Harvard

Esta es una modificación de la arquitectura Von Neumann, en esta arquitectura se separa la salida (direcciones y bus de datos) de datos para accesar al código (programa) y datos (operadores).

Esto hace posible leer datos e instrucciones al mismo tiempo (en diferentes buses)

Desde que las instrucciones tienen un bus de datos separados, la siguiente instrucción puede ser leída mientras se decodifica y ejecutan las instrucciones actuales

derivados de la arquitectura harvard
Derivados de la arquitectura Harvard

Existen algunos derivados de la arquitectura Harvard, las cuales tienen múltiples buses de datos para accesar datos, tales arquitecturas son mas aplicadas para aplicaciones intensivas de datos (como procesos de señales digitales) las cuales requieren múltiples operadores de datos para la ejecución de cada instrucción.

Desde que estos operadores son leídos en paralelo se logro una gran mejora en ejecución.

complex instruction set computer cisc
Complex Instruction Set Computer (CISC)

En los inicios de la computación, se codificaba en código ensamblador o maquina.

Para hacer rápida y fácil la programación las computadoras soportaban un gran numero de instrucciones. Estas instrucciones podían hacer operaciones complejas, una sola instrucción podía leer uno o mas operadores y hacer una o mas operaciones con esos operadores.

Esto hacia la programación fácil y con menos código.

Otro factor favorable fue el costo de memoria, las memorias eran costosas, por lo que los diseñadores hacían juegos de instrucciones densos

reduced instruction set risc
Reduced Instruction Set (RISC)

Es un tipo de microprocesador con las siguientes características fundamentales:

  • Instrucciones de tamaño fijo y presentadas en un reducido número de formatos.
  • Sólo las instrucciones de carga y almacenamiento acceden a la memoria de datos.

Además estos procesadores suelen disponer de muchos registros de propósito general.

El objetivo de diseñar máquinas con esta arquitectura es posibilitar la segmentación y el paralelismo en la ejecución de instrucciones y reducir los accesos a memoria.

Esta surge con los lenguejes de alto nivel

procesador digital de se al
Procesador digital de señal
  • Es un sistema basado en un procesador que posee un juego de instrucciones, un hardware y un software optimizados para aplicaciones que requieran operaciones numéricas a muy alta velocidad. Debido a esto es especialmente útil para el procesado y representación de señales analógicas en tiempo real: en un sistema que trabaje de esta forma (tiempo real) se reciben muestras normalmente provenientes de un conversor analógico/digital (ADC).
slide35

Caracteristicas:

  • Necesita una memoria donde almacenar los datos con los que trabajará y el programa que ejecuta
  • Puede trabajar con varios datos en paralelo y un diseño e instrucciones específicas para el procesado digital.
vliw procesador
VLIW PROCESADOR
  • Very Long Instruction Word. Esta arquitectura de CPU implementa una forma de paralelismo a nivel de instrucción. Es similar a las arquitecturas superescalares, ambas usan varias unidades funcionales (por ejemplo varias ALUs, varios multiplicadores, etc) para lograr ese paralelismo.
slide38

Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de instrucciones muy simples en cuanto a número de instrucciones diferentes, pero muy grandes en cuanto al tamaño de cada instrucción.

slide39

Ventajas

  • Simplificación de la arquitectura hardware al no tener que planificar el código.
  • Menor potencia y consumo.

Inconvenientes

  • Requiere compiladores mucho más complejos.
  • Cualquier mejora en la arquitectura hardware implica un cambio en el juego de instrucciones (compatibilidad hacia atrás nula).
slide41
SMID
  • Single Instruction, Multiple Data es una técnica empleada para conseguir paralelismo a nivel de datos.
  • SIMD consisten en instrucciones que aplican una misma operación sobre un conjunto más o menos grande de datos. Es una organización que influye muchas unidades de procesamiento bajo la supervisión de una unidad de control común.
  • Todos los procesadores reciben la misma instrucción de la unidad de control, pero operan sobre diferentes conjuntos de datos. Es decir la misma instrucción es ejecutada de manera síncrona por todas las unidades de procesamiento.
multicore procesador
MULTICORE-PROCESADOR
  • A multi-core processor Es un componente de computadora con dos o mas procesadoresindependientes (called "cores"), los cuales son unidades que leen y ejecutan isntrucciones de programas. Los datos en la instruccion le dicen al procesador que hacer. Las instrucciones hacen cosas muy basicas como leer datos de meoria o mandar datos a un display, pero son procesados rapidamente.
procesador stream
PROCESADOR STREAM
  • El procesador STREAM, acrónimo de Sistema de Tiempo Real para la Extracción y Análisis de Movimiento, es una arquitectura de procesamiento de imágenes implementada
  • en una tarjeta PCI
slide47

Desde el punto de vista funcional es, básicamente, el encargado de realizar toda operación aritmético-lógica, de control y de comunicación con el resto de los componentes integrados que conforman un PC, siguiendo el modelo base de Von Neumann.

  • También es el principal encargado de ejecutar los programas, sean de usuario o de sistema; sólo ejecuta instrucciones programadas a muy bajo nivel, realizando operaciones elementales, básicamente, las aritméticas y lógicas, tales como sumar, restar, multiplicar, dividir, las lógicas binaris y accesos a memoria.
slide48

Esta unidad central de procesamiento está constituida, esencialmente:

  • por registros,
  • una unidad de control
  • y una unidad aritmético lógica (ALU)
  • .
slide50

TIPOS DE ENSAMBLADORES

Aunque todos los ensambladores realizan básicamente las mismas tareas, podemos clasificarlos de acuerdo a características.

Así podemos clasificarlos en:

-Ensambladores Cruzados (Cross-Assembler).

- Ensambladores Residentes.

- Macroensambladores.

- Micro ensambladores.

- Ensambladores de una fase.

- Ensambladores de dos fases.

slide51

Ensambladores Cruzados (Cross-Assembler).

Se denominan así los ensambladores que se utilizan en una computadora que posee un procesador diferente al que tendrán las computadoras donde va a ejecutarse el programa objeto producido.

El empleo de este tipo de traductores permite aprovechar el soporte de medios físicos (discos, impresoras, pantallas, etc.), y de programación que ofrecen las máquinas potentes para desarrollar programas que luego los van a ejecutar sistemas muy especializados en determinados tipos de tareas.

slide52

Ensambladores Residentes.

Son aquellos que permanecen en la memoria principal de la computadora y cargan, para su ejecución, al programa objeto producido. Este tipo de ensamblador tiene la ventaja de que se puede comprobar inmediatamente el programa sin necesidad de transportarlo de un lugar a otro, como se hacía en cross-assembler, y sin necesidad de programas simuladores.

Sin embargo, puede presentar problemas de espacio de memoria, ya que el traductor ocupa espacio que no puede ser utilizado por el programador. Asimismo, también ocupará memoria el programa fuente y el programa objeto. Esto obliga a tener un espacio de memoria relativamente amplio. Es el indicado para desarrollos de pequeños sistemas de control y sencillos automatismo empleando microprocesadores

slide53

MACROENSAMBLADORES.

Son ensambladores que permiten el uso de macroinstrucciones (macros). Debido a su potencia, normalmente son programas robustos que no permanecen en memoria una vez generado el programa objeto. Puede variar la complejidad de los mismos, dependiendo de las posibilidades de definición y manipulación de las macroinstrucciones, pero normalmente son programas bastantes complejos, por lo que suelen ser ensambladores residentes.

slide54

MICRO ENSAMBLADORES.

Generalmente, los procesadores utilizados en las computadoras tienen un repertorio fijo de instrucciones, es decir, que el intérprete de las mismas interpretaba de igual forma un determinado código de operación.

El programa que indica al intérprete de instrucciones de la UCP cómo debe actuar se denomina microprograma. El programa que ayuda a realizar este microprograma se llama micro ensamblador. Existen procesadores que permiten la modificación de sus microprogramas, para lo cual se utilizan micro ensambladores.

slide55

ENSAMBLADORES DE UNA FASE.

Estos ensambladores leen una línea del programa fuente y la traducen directamente para producir una instrucción en lenguaje máquina o la ejecuta si se trata de una pseudoinstrucción. También va construyendo la tabla de símbolos a medida que van apareciendo las definiciones de variables, etiquetas, etc.

Debido a su forma de traducción, estos ensambladores obligan a definir los símbolos antes de ser empleados para que, cuando aparezca una referencia a un determinado símbolo en una instrucción, se conozca la dirección de dicho símbolo y se pueda traducir de forma correcta. Estos ensambladores son sencillos, baratos y ocupan poco espacio, pero tiene el inconveniente indicado

slide56

Los microprocesadores poseen dos tipos de memoria interna:

  • Memoria RAM (memoria de acceso aleatoria)
  • Memoria ROM (memoria de solo lectura)
slide57

Los bytes en memoria se numeran de forma consecutiva, iniciando con 00, de modo que cada localidad tiene un un numero de direccion unico.

64 k sistema base ROM

1924 k area de expansion

De memoria (ROM)

128 k area de despliegue de

video (RAM)

640 k memoria (RAM)

Inicio Direccion

Dec Hex

960 k F0000

slide58

CLASIFICACION DE MEMORIAS.

  • Las memorias se clasifican, por la tecnología empleada y según la forma en la que se puede modificar su contenido.
  • Las cuales son:
  • Memoria RAM (memoria de acceso aleatorio)
  • Memoria ROM (memoria de solo lectura)
slide59

CLASIFICACION DE MEMORIA RAM

  • EDO RAM. (Memoria de acceso aleatorio con salida de datos extendida).
  • DRAM. (Memoria dinámica de acceso aleatorio).
  • SDRAM. (Memoria dinámica de paginación de acceso aleatorio).
  • RDRAM. (Memoria dinámica de acceso aleatorio para tecnologías rambus).
  • SRAM. (Memoria estática de acceso aleatorio.

RAM

slide60

CLASIFICACION DE MEMORIA ROM

  • PROM. (Memoria programable de solo lectura).
  • EPROM. (Memoria de solo lectura programable y borrable).
  • EEPROM. (Memoria de solo lectura programable y borrable eléctricamente).
  • Memoria flash.

ROM

slide62

El procesador se divide en dos unidades lógicas :

  • Unidad de ejecución (EU)
  • Unidad de interfaz del bus (BIU)
slide64

El BIU envía instrucciones y datos a la EU.

La función mas importante del BIU es manejar la unidad de control del bus, los registros de segmentos, y la cola de instrucciones.

La BIU controla los buses que transfieren los datos a la EU, a la memoria y a los dispositivos de E/S externos, mientras que los registros de segmentos controlan el direccionamiento de memoria

slide65

El BIU permite acceso a las instrucciones, puede acceder a estas desde la memoria y colocarlas en la cola de instrucciones. Tamaño de la cola de 4 a 32 bytes

slide66

La EU y la BIU trabajan en paralelo, La EU notifica al BIU cuando necesita acceso a los datos en memoria o a dispositivos de E/S

  • La EU solicita instrucciones de maquina de la cola de instrucciones de la BIU
  • Mientras la EU esta ocupada ejecutando una instriccion el BIU busca otra en la memoria, esto aumenta la velocidad de procesamiento.
slide67

Un segmento es un area especial en un programa que incia en un limite de una localidad regularmente divisible entre 16 o 10 hex

  • Un segmento, puede estar ubucado casi en cualquier lugar y puede ser hasta de 64 K
slide68

Se puede tener cualquier numero de segmentos, para direccionar un segmento en particular basta cambiar la direccion en el registro del segmento apropiado

slide69

Los tres segmentos principales son:

  • Segmentos de código
  • Segmentos de datos
  • Segmentos de pila
segmentos de codigo cs
Segmentos de codigo (CS)
  • Contiene instrucciones de maquina que son ejecutadas.
  • Comúnmente la primera instrucción ejecutable esta en el inicio del segmento, el SO enlaza a esa localidad para iniciar la ejecución del programa
segmento de datos ds
Segmento de datos (DS)
  • Contiene datos, constantes y areas de trabajo definidos por el proograma
  • El registro del DS direcciona al segmento de datos
segmento de pila ss
Segmento de pila (SS)
  • La pila contiene los datos y direcciones que se necesitan guardar temporalmente o para el uso de sus llamadas subrutinas.
  • El registro del segmento de la pila (SS) direcciona el segmento de la pila
slide75

Los registros del procesador se emplean para controlar las instrucciones en ejecucion, manejar direccionamiento, y proporcionar capacidad aritmetica.

  • Son direccionables por medio de un nombre, los bits se numeran de derecha a izquierda
registro de segmento
REGISTRO DE SEGMENTO
  • Un registro de segmento tiene 16 bits de longitud y facilita un area de memoria para el direccionamiento conocida como el segmento actual.
registro cs
REGISTRO CS
  • Registro CS

El DOS almacena la dirección inicial del segmento de código de un programa en el registro CS

registro ds
REGISTRO DS
  • La dirección inicial de un segmento de programa es almacenada en el registro DS
regsitro ss
REGSITRO SS
  • El registro SS permite la colocacion en memoria de una pila para almacenamiento temporal de direcciones y datos.
registro es
REGISTRO ES

Algunas operaciones con cadenas de caracteres utilizan regsitro extra de segmento para manejar el direccionamiento de memoria.

Un registro ES esta asociado con un registro DI (indice)

registro fs y gs
REGISTRO FS y GS
  • Son registros extras de segmento en los procesadores 80386 y posteriores.
registro de apuntador de direcciones
REGISTRO DE APUNTADOR DE DIRECCIONES
  • El registro apuntador de instrucciones (IP) contiene el desplezamiento de direcciones de la siguiente direccion que se ejecuta.
registros apuntadores
REGISTROS APUNTADORES
  • Los registros apuntador de pila (SP) y BP (apuntador base) estan asociados con el registro SS y permiten al sistema acceder a datos de la pila
registro bp
REGISTRO BP
  • Facilita la referencia de parametros los cuales son datos y direcciones transmitidos via pila
registros de proposito general
REGISTROS DE PROPOSITO GENERAL
  • Los registros de proposito general AX, BX, CX, y DX, con caballos de batalla del sistema, en el sentido que se puede direccionar como una palabara o como una parte de un byte.
  • La parte izquiera es la parte alta
  • La parte derecha es la parte baja
registro ax
Registro AX
  • Es el acumulador principal, usado para operaciones de E/S y la mayor parte de la aritmetica
registro bx
REGISTRO BX
  • Es conocido como registro base y es el unico de proposito general, usado para la transferencia de datos entre la memoria y el procesador
registro cx
REGISTRO CX
  • Se utiliza como contador de bucles, operaciones con cadenas y desplazamientos
registro dx
REGISTRO DX
  • Se utiliza para operaciones de multiplicacion y division junto con AX y en operaciondes de entrada y salida de puertos, su mitad inferior contiene el numero de puertos
registros indice
REGISTROS INDICE
  • REGISTRO SI (indice fuente) y DI (indice destino)
  • Requerido para operaciones con cadenas
registros de banderas
REGISTROS DE BANDERAS
  • Sirven para indicar el estado actual de la maquina y el resultado del procesamiento.
slide92

OF (overflow): overflow indica desbordamiento

DF (dirección): Designa dirección hacia la izquierda o hacia la derecha para mover o comparar cadenas de caracteres.

IF (Interrupción): indica una interrupción externa

TF (trampa): Permite la operación del procesador en modo de un paso

SE (signo): Contiene el signo resultante de una operación aritmética

ZF (cero): Indica el resultado de una operación aritmética o de una comparación.

slide93

AF (acarreo auxiliar): contiene el acarreo del bit 3 de un dato de 8 bits, para aritmética especializada

PF (paridad) : Indica paridad, par o impar

CF (acarreo) : Contiene el acarreo de un orden mas alto, despues de una operación aritemtica.

direccionamiento
DIRECCIONAMIENTO

El campo de operación de una instrucción especifica la operación que se debe realizar. Esta debe ser ejecutada sobre algunos datos almacenados en registros de la computadora, o sobre operandos almacenados en memoria

slide95

El modo de direccionamiento especifica la forma de interpretar la información contenida en cada campo de operando para localizar, en base a esta información, el operando

slide96

Entonces los modos de direccionamiento de un procesador son las diferentes formas de transformación del campo operando de la instrucción en la dirección del operando

slide97

Las técnicas de direccionamiento se utilizan con la siguiente finalidad:

  • Dar versatilidad
  • Reducir el numero de bits del campo del operando
slide98

La disponibilidad de diferentes esquemas de direccionamiento da al programador flexibilidad para escribir programas eficientes en cuanto la numero de instrucciones y el tiempo de ejecución.

slide99

Registro

Implícito

Pila

Registro

Inmediato

absoluto

Contador de programa

Memoria

Apuntador de pila

Directo

Base (base y desplazamiento)

Relativo a registros (indexados)

Índice

Autoincremental

Autoindexado

Autodecremental

Indirecto

slide100

Los modos de direccionamiento también pueden clasificarse en propios e impropios

  • Propios es cuando el operando esta en una dirección concreta
  • Impropio es cuando puede estar en registros del procesador.
direccionamiento impl cito
Direccionamiento implícito
  • El operando se especifica en la misma definición de la instrucción.

La instrucción no lleva parámetros.

  • Particularmente en instrucciones que no accesan memoria, o bien, tienen una forma específica de accesarla.
  • Ejemplos: PUSHF, POPF, NOP
direccionamiento inmediato
Direccionamiento inmediato
  • El operando figura en la instrucción no el la dirección
  • Ejemplo:
  • MOV AH, 9
direccionamiento por registro
Direccionamiento por registro
  • El operando esta especificado con el direccionamiento directo por registro
  • Usa solamente registros como operandos
  • Es el más rápido, pues minimiza los recursos necesarios (toda la información fluye dentro del EU del CPU)

Ejemplo:

MOV AX, BX

direccionamiento directo
Direccionamiento directo
  • Uno de los operandos involucra una localidad específica de memoria
  • El valor constante se tiene que buscar en memoria, en la localidad especificada.
  • Es más lento que los anteriores, pero es el más rápido para ir a memoria, pues ya “sabe” la localidad, la toma de la instrucción y no la tiene que calcular.

Ejemplo:

MOV AH, Variable

direccionamiento indirecto
Direccionamiento indirecto
  • Se usan los registros SI, DI como apuntadores
  • El operando indica una localidad de memoria, cuya dirección está en SI o DI.
  • Es más lento que los anteriores, pues tiene que “calcular” la localidad

Ejemplos:

MOV AL, [SI]

direccionamiento relativo
Direccionamiento relativo
  • No es necesario utilizar todos los bits de la dirección de memoria en el campo operando, basta con usar los bits precisos.
  • Esto es debido a que las direcciones referenciadas por el programa no están alejadas unas de las otras.
direccionamiento por base y desplazamiento
Direccionamiento por base y desplazamiento
  • Formato:
  • [BX o BP + SI o DI (opcionales)+constante (opcional)]
  • BX o BP indica una localidad base de la memoria
  • A partir de BX o BP, se puede tener un desplazamiento variable y uno constante
  • La diferencia es el segmento sobre el que trabajan por defecto:
  • BX por defecto en el segmento de datos
  • BP por defecto en el segmento de pila.
  • Ejemplos:
  • MOV AX, [BX]
  • MOV DX, [BX+2]
  • MOV CX, [BX+DI]
  • MOV DL, [BX+SI+3]
direccionamiento indexado
Direccionamiento indexado
  • La dirección del operando también se calcula sumando un registro del CPU al campo del operando
direccionamiento postincremental
Direccionamiento postincremental
  • La dirección del operando se encuentra en un registro y este es incremental después de acceder al operando.
direccionamiento autodecremental
Direccionamiento autodecremental
  • Para obtener la dirección del operando hay que decrementar un registro en el tamaño del operando.
slide113

.386

  • MODEL FLAT, STDCALL
  • .DATA
  • <tu data (información) inicializada>
  • .DATA?

<tu data no inicializada>

.CODE

<Etiqueta>

<tu código>

End <etiqueta>