La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

MODOS DE DIRECCIONAMIENTO

Presentaciones similares


Presentación del tema: "MODOS DE DIRECCIONAMIENTO"— Transcripción de la presentación:

1 MODOS DE DIRECCIONAMIENTO
No. 26 8:00 a.m. Lenguaje Ensamblador

2 ESQUELETO DE UN PROGRAMA EN ENSAMBLADOR
Tipo de Modelo de un programa en Ensamblador. Determina el tamaño de los segmentos Model small stack data Code mov mov ds, ax push ds …código del programa mov ax,4c00h int 21h end Segmento de Pila Aquí se declaran: Variables Arreglos Matrices Cadenas Segmento de Datos Inicialización Segmento de Pila Finalización

3 Declaración de datos en el segmento de Datos
Directivas: db = Define byte = 8 bits = 1 carácter dw = Define palabra = 16 bits = 2 caracteres dd = Define doble palabra = 32 bits = 4 caracteres No existen tipos de datos en el Lenguaje Ensamblador a diferencia de los lenguajes de alto nivel, lo que se realiza es para reservar espacios de memoria. sintaxis para declarar datos, cadenas, arreglos, matrices: nombre_Dato directiva valor(s) Ejemplos: 1. Se desea declarar una variable contador de tipo byte inicializada a cero en el segmento de datos.

4 Ejemplo 1 . data contador db

5 Ejemplo 2 2. Define una variable “carácter” inicializada con el carácter ‘z’. . data caracter db ‘z’ 3. Declara una variable “promedio” inicializada con tu promedio general. promedio dw

6 Evidencia No. 4 Define los siguientes esqueletos de programas en ensamblador: a. Guardar como p1.asm un documento creado en block de notas. Define las siguientes variables inicializadas a cero: promedio, sumatoria, contador_repe, contador_normal.

7 b. Guardar como p2.asm, declarando las siguientes variables:
Un arreglo inicializado con 4 valores de tipo carácter (los que sean). Variable índice inicializada en cero. Un mensaje con tu nombre.

8 Modos de Direccionamiento
Direccionamiento Inmediato. Direccionamiento por Registros. Direccionamiento Director. Direccionamiento Indexado Directo. Direccionamiento Relativo a la Base. Direccionamiento Indirecto. Direccionamiento Base Indexada.

9 Direccionamiento Inmediato
Se le identifica cuando el operando fuente es una constante. Ejemplo: MOV AH, 34H MOV BX, OF989H MOV CH, ‘C’ Inválidos: MOV CL, 9999H MOV DH, ‘AB’ MOV ‘A’, BL

10 Direccionamiento por Registros
Se le identifica cuando tanto el operando fuente como el operando destino son registros válidos del microprocesador. Ejemplo: MOV AX, BX MOV AH, AL MOV CX, CL Inválidos: MOV AH, BX MOV DL, BP MOV CL, CX

11 Direccionamiento Directo
Se identifica cuando el operando fuente o el operando destino es una variable declarada en el segmento de datos. Ejemplo: MOV DX, palabra MOV datos, AX MOV caracter, CH Inválidos: No es permitido direccionar de variable a variable o de memoria a memoria. MOV palabra, datos MOV caracter, datos MOV caracter, arreglo[0] MOV palabra, palabra

12 Direccionamiento Indexado Directo
Se identifica cuando el operando fuente u operando destino es una variable declarada en el segmento de datos indexada por alguno de los registros índices (SI, DI). Ejemplo: MOV arreglo[SI], ‘A’ MOV CL, vector[DI] MOV vector[SI], 0 Inválidos: MOV vector1[SI], vector2[DI]

13 Direccionamiento Relativa a la Base
Se utilizan los registros BX, BP. Ejemplo: Considere el siguiente programa: .data MiVector db 9,8,7,6,5,4,3,2,1 .code Inicialización mov bp, 0 mov ah, MiVector[bp+1] ;[0+1]=1 mov cl, MiVector[bp+5] ;[0+5]=5 Finalización 9 8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 8

14 Direccionamiento Indirecto
Este modo de direccionamiento se identifica porque se hace referencia directa a una dirección efectiva. Instrucción de apoyo: LEA Op_Destino, Op_Fuente Obtiene la dirección efectiva ó desplazamiento.

15 Ejemplo: Lea SI, MiVector
Lea obtiene la posición en memoria de MiVector. Apunta al inicio de MiVector. mov ah, [SI] ;apunta al 9 add SI, 3 mov bh,[SI] ;apunta al 6 9 8 7 6 5 4 3 2 1

16 Direccionamiento Base Indexado
Este modo de direccionamiento se identifica porque para direccionar un elemento en la memoria se hace uso de los registros base (bx,bp) más registros índices (si,di), más una variable definida por el programador.

17 Ejemplo .data matriz db 1,2,3,4 ;r1 db 6,5,7,8 ;r2 db 9,10,11,12 ;r3
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 r1 2 .data matriz db 1,2,3, ;r1 db 6,5,7, ;r2 db 9,10,11, ;r3 db ,14,15, ;r4 .code }Inicialización mov BX, 1 mov DI, 2 mov AH, matriz [BX]][DI] ;matriz [1][2] mov DL, ;matriz [1+2] add DL, matriz [BX][DI] ;matriz [3] 3 4 5 r2 6 7 8 9 r3 10 r1 11 12 13 r4 14 15


Descargar ppt "MODOS DE DIRECCIONAMIENTO"

Presentaciones similares


Anuncios Google