120 likes | 389 Views
Modos de direccionamiento. No. Lista 12 8:00 – 9:00 Ensamblador MIGUEL ALEJANDRO DAVALOS HUERTA. Esqueleto de un programa ensamblador. Tipo de modelo de un programa en ensamblador Determina el tamaño de los segmentos. Model small Stack Data Code Mov ax,@data Movds,ax Push ds
E N D
Modos de direccionamiento No. Lista 12 8:00 – 9:00 Ensamblador MIGUEL ALEJANDRO DAVALOS HUERTA
Esqueleto de un programa ensamblador Tipo de modelo de un programa en ensamblador Determina el tamaño de los segmentos • Modelsmall • Stack • Data • Code • Movax,@data • Movds,ax • Pushds • …Codigo del programa • … • … • Mov ax,4c00h • Int 21h • end Segmento pila Segmento de datos • Aquí se declaran: • Variables • Arreglos • Matrices • cadenas Inicializacion Finalizacion
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 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 y matrices: Nombre_Dato directiva valor(s)
Ejemplos 1.- se desea declarar una variable contador de tipo byte inicializada a cero en el segmento de data .data Db contador 0 2.- define una variable llamada “carácter” inicializada con el carácter ‘Z’ .data carácter db ‘z’ 3.- declara una cariable “promedio” inicializada con tu promedio general .data promedio dw 89.99
Evidencia No.4 • Define los siguientes esqueletos de programas en ensamblador • Guardar como p1.asm un documento creado en un block de notas • Define las siguientes variables inicializadas a cero: promedio, sumatoria, contador_repe, contador_normal • Guardar como p2.as, declarando las siguientes variables • Un arreglo inicializando con 4 valores de tipo carácter • La variable “índice” inicializada a cero • Un mensaje con tu nombre
METODOS DE DIRECCIONAMIENTO • Son las formas que hacen referencia a la memoria • Varian de autor a autor, se identifican entre 7 u 8 modos de direccionamiento • DIRECCIONAMIENTO INMEDIATO • DIRECCIONAMIENTO POR REGISTROS • DIRECCIONAIENTO DIRECTO • DIRECCIONAMIENTO INDEXADO DIRECTO • DIRECCIONAMIENTO RELATIVO A LA BASE • DIRECCIONAMIENTO INDIRECTO • DIRECCIONAMIENTO BASE INDEXADO EXPLICACION DE CADA UNO: (SE UTILIZARFA LA INTRUCCION MOV PARA SU EXPLICACION). 1.- DIRECCIONAMIENTO INMEDIATO.- SE LE IDENTIFICA CUANDO EL OPERANDO FUENTE ES UNA CONSTANTE. EJEMPLO: A) MOV AH,34H B) MOV BX,0F98H C) MOV CH,’C’ INVALIDOS A) MOV CL,999H B) MOV DH , ‘AB’ C) MOV ‘A’, BL
2.- DIRECCIONAMIENTO POR REGISTROS.- SEIDENTIFICA CUANDO TANTO EL OPERANDO FUENTE COMO EL OPERANDO DESTINO SON REGISTROS VALIDOS DEL MICROPROCESADOR. • EJEMPLO: • A) MOV A, BX • B) MOV AH, AL • C) MOV CX, CL • D) MOV SI, DI • INVALIDOS • A)MOV AH, BX • B)MOV DL, BP • C) MOV CL, CX
3.- DIRECCIONAMIENTO DIRECTO: SE IDENTIFICA CUANDO EL OPERANDO FUENTE O EL OPERANDO DESTINO ES UNA VARIABLE DECLARANDO EN EL SEGMENTO DE DATO. • EJEMPLO: • A)MOV DX,PALABRA • B)MOV DATOS, AX • C)MOV CARÁCTER, CH • INAVALIDOS: NO ES PERMITIDO DIRECIONAR DE VARIABLE A VARIABLE O DE MEMORIA A MEMORIA. • A) MOV PALABRA, DATOS • B) MOV CARÁCTER, DATOS • C) MOV CARÁCTER, ARREGLO [0] • D) MOV PALABRA, PALABRA
P3.asm • DISEÑE UN PROGRAMA EN ENSAMBLADOR QUE UTILICE LOS PRIMEROS 3 MODOS DE DIRECCIONAMIENTO, HAGA REFERENCIA A POR LO MENOS 2 INTRUCCIONES PARA CADA MODO DE DIRECCIONAMIENTO. NOTA: NO REPITA LOS EJEMPLOS VISTOS EN CLASE.
4.- DIRECCIONAMIENTO INDEXADO DIRECTO.- SE INDENTIFICA CUANDO EL OPERANDO FUENTE U OPERANDO DESTINO ES UNA VARIABLE DECLARADA EN EL SEGMENTO DE DATOS INDEXADA POR ALGUNO DE LOS REGISTROS INDICES ( SI, DI ): • EJEMPLO: • A)MOV ARREGLO [SI] ‘A’ • B)MOV CL, VECTOR [DI] • C) MOV VECTOR [SI] • INVALIDOS: • MOV VECTOR1[SI], VECTOR2 [DI]
p4.asm • DISEÑE UN PROGRAMA EN ENSAMBLADOR QUE DECLARE 3 ARREGLOS DE 4 ELEMENTOS CADA UNO, LOS 2 PRIMEROS ARREGLOS INICIALIZADOS CON CUALQUIER CONJUNTO DE CARACTERES. PASAR EL CONTENIDO DEL PRIMERO VECTOR AL TERCER VECTOR Y EL CONTENIDO DEL SEGUNDO VECTOR AL PRIMER VECTOR. IDENTIFICA POR MEDIO DE COMENTARIOS AL MODO DE DIRECCIONAMIENTO UTILIZADO EN CADA INSTRUCCION