LENGUAJE ENSAMBLADOR - PowerPoint PPT Presentation

About This Presentation
Title:

LENGUAJE ENSAMBLADOR

Description:

LENGUAJE ENSAMBLADOR UNIDAD 1 La disponibilidad de diferentes esquemas de direccionamiento da al programador flexibilidad para escribir programas eficientes en cuanto ... – PowerPoint PPT presentation

Number of Views:955
Avg rating:3.0/5.0
Slides: 114
Provided by: MARC206
Category:

less

Transcript and Presenter's Notes

Title: LENGUAJE ENSAMBLADOR


1
LENGUAJE ENSAMBLADOR
  • UNIDAD 1

2
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

3
(No Transcript)
4
Cobol Pascal Basic Java
Alto nivel
C BCPL
Mediano nivel
Bajo nivel
Ensamblador
Maquina
001110011010100
5
  • 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.

6
  • Las instrucciones en lenguaje ensamblador son
    instrucciones conocidas como nemotécnicos.

7
  • 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

8
  • 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.

9
  • 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.

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

11
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.

12
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.

13
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.

14
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.

15
  • Su arquitectura interna consta de las siguientes
    partes
  • Unidad de control
  • Unidad Aritmética lógica
  • Registros Internos
  • Buses internos
  • Interrupciones

16
Arquitectura Interna del microprocesador
17
Secuencia de acciones
  1. Se inicia en una posición de memoria definida
  2. Se lee el dato de esa posición y se manda al
    control
  3. La unidad de control decodifica la instrucción y
    la ejecuta en señales adecuadas
  4. Se incrementa el contador del programa (registro
    que indica a que posición se debe dirigir)
  5. Se repite proceso desde el punto 2, hasta
    recibir unas señal del exterior

18
Arquitectura del microprocesador
19
ALU
  • Circutito digital que realiza operaciones
    artimeticas y logicas

20
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

21
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

22
Interrupciones
  • Utilizadas para interrumpir la secuencia del
    programa.

23
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

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

25
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

26
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.

27
(No Transcript)
28
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

29
(No Transcript)
30
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.

31
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

32
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

33
(No Transcript)
34
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).

35
  • 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.

36
(No Transcript)
37
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.

38
  • 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.

39
  • 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).

40
(No Transcript)
41
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.

42
(No Transcript)
43
MULTICORE-PROCESADOR
  • A multi-core processor Es un componente de
    computadora con dos o mas procesadoresindependient
    es (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.

44
(No Transcript)
45
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

46
(No Transcript)
47
  • 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.

48
  • Esta unidad central de procesamiento está
    constituida, esencialmente
  • por registros,
  • una unidad de control
  • y una unidad aritmético lógica (ALU)
  • .

49
(No Transcript)
50
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.
51
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.
52
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
53
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.
54
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.
55
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
56
  • Los microprocesadores poseen dos tipos de
    memoria interna
  • Memoria RAM (memoria de acceso aleatoria)
  • Memoria ROM (memoria de solo lectura)

57
  • 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
58
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)

59
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
60
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
61
SEGMENTOS Y DIRECCIONAMIENTO
62
  • El procesador se divide en dos unidades lógicas
  • Unidad de ejecución (EU)
  • Unidad de interfaz del bus (BIU)

63
  • El papel de la EU es ejecutar instrucciones,
    contiene el ALU, CU y varios registros

64
  • 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

65
  • 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

66
  • 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.

67
  • 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

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

69
  • Los tres segmentos principales son
  • Segmentos de código
  • Segmentos de datos
  • Segmentos de pila

70
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

71
Segmento de datos (DS)
  • Contiene datos, constantes y areas de trabajo
    definidos por el proograma
  • El registro del DS direcciona al segmento de datos

72
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

73
  • Los registros de segmentos contienen la direccion
    inicial de cada segmento

74
REGISTROS
75
  • 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

76
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.

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

78
REGISTRO DS
  • La dirección inicial de un segmento de programa
    es almacenada en el registro DS

79
REGSITRO SS
  • El registro SS permite la colocacion en memoria
    de una pila para almacenamiento temporal de
    direcciones y datos.

80
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)

81
REGISTRO FS y GS
  • Son registros extras de segmento en los
    procesadores 80386 y posteriores.

82
REGISTRO DE APUNTADOR DE DIRECCIONES
  • El registro apuntador de instrucciones (IP)
    contiene el desplezamiento de direcciones de la
    siguiente direccion que se ejecuta.

83
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

84
REGISTRO BP
  • Facilita la referencia de parametros los cuales
    son datos y direcciones transmitidos via pila

85
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

86
Registro AX
  • Es el acumulador principal, usado para
    operaciones de E/S y la mayor parte de la
    aritmetica

87
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

88
REGISTRO CX
  • Se utiliza como contador de bucles, operaciones
    con cadenas y desplazamientos

89
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

90
REGISTROS INDICE
  • REGISTRO SI (indice fuente) y DI (indice destino)
  • Requerido para operaciones con cadenas

91
REGISTROS DE BANDERAS
  • Sirven para indicar el estado actual de la
    maquina y el resultado del procesamiento.

92
  • 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.

93
  • 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.

94
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

95
  • 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

96
  • 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

97
  • Las técnicas de direccionamiento se utilizan con
    la siguiente finalidad
  • Dar versatilidad
  • Reducir el numero de bits del campo del operando

98
  • 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.

99
Autoincremental
Autodecremental
100
  • 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.

101
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

102
Direccionamiento inmediato
  • El operando figura en la instrucción no el la
    dirección
  • Ejemplo
  • MOV AH, 9

103
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

104
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

105
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

106
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.

107
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, BX2
  • MOV CX, BXDI
  • MOV DL, BXSI3

108
Direccionamiento indexado
  • La dirección del operando también se calcula
    sumando un registro del CPU al campo del operando

109
Direccionamiento postincremental
  • La dirección del operando se encuentra en un
    registro y este es incremental después de acceder
    al operando.

110
Direccionamiento autodecremental
  • Para obtener la dirección del operando hay que
    decrementar un registro en el tamaño del operando.

111
(No Transcript)
112
MODOS UTILIDADES
Inmediato Operaciones con constantes
Directo por registro Variables locales de procedimientos no recursivos
Indirecto por registro Variables referenciadas a través de apuntadores
Absoluto Direcciones del sistema
Relativo Variables globales
Indexado Acceso a vectores, matrices y cadenas
Autoincremental Desapilar parámetros de procedimientos Recorrido de vectores y cadenas
Autodecremental Apilar parámentros de procedimientos Recorrido de vectores y cadenas hacia atrás

113
  • .386
  • MODEL FLAT, STDCALL
  • .DATA
  • lttu data (información) inicializadagt
  • .DATA?
  • lttu data no inicializadagt
  • .CODE
  • ltEtiquetagt
  • lttu códigogt
  • End ltetiquetagt
Write a Comment
User Comments (0)
About PowerShow.com