La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

SEMANA 01_2.

Presentaciones similares


Presentación del tema: "SEMANA 01_2."— Transcripción de la presentación:

1 SEMANA 01_2

2 COMPOSICION REGISTROS DE USO GENERAL
Lenguaje de maquina 31 15 7 AH AL AX EAX EAX EBX ECX EDX COMPOSICION REGISTROS DE USO GENERAL

3 COMPOSICION DEL REGISTRO DE BANDERAS
REGISTROS DE BANDERAS (FLAGS) Lenguaje de maquina 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 O D I T S Z A P C COMPOSICION DEL REGISTRO DE BANDERAS

4 LA INSTRUCCIÓN ENSAMBLADOR QUE EN ESTE CASO NOS INTERESA ES: MOV
ASIGNACION DE VALORES Lenguaje de maquina LA NECESIDAD MAS URGENTE EN EL DESARROLLO DE CUALQUIER APLICACIÓN ES LA DE ASIGNAR VALORES YA SEA A REGISTROS O A CELDAS DE MEMORIA. LA INSTRUCCIÓN ENSAMBLADOR QUE EN ESTE CASO NOS INTERESA ES: MOV EL FORMATO DE LA INSTRUCCIÓN ES EL SIGUIENTE: MOV DESTINO , ORIGEN UN PRINCIPIO, BASICO ES QUE TANTO DESTINO COMO ORIGEN DEBEN SER DEL MISMO TAMAÑO

5 SENTENCIA INVALIDA: MOV 10 , 24 SENTENCIAS VALIDAS: MOV AH , 24
VALORES INMEDIATOS Lenguaje de maquina EL DESTINO DE UN VALOR INMEDIATO PUEDE SER UN REGISTRO O BIEN UNA POSICION DE MEMORIA, PERO NO OTRO VALOR INMEDIATO. SENTENCIA INVALIDA: MOV 10 , 24 SENTENCIAS VALIDAS: MOV AH , 24 MOV [10] , 24 LA SEGUNDA SENTENCIA VALIDA INTRODUCE UN VALOR EN LA MEMORIA CORRESPONDIENTE A LA DIRECCION DS:10

6 ES UNA SENTENCIA INVALIDA LO CORRECTO SERIA: MOV AX , 0B800H
VALORES INMEDIATOS Lenguaje de maquina HAY QUE TENER EN CUENTA QUE ESTE TIPO DE ASIGNACION NO ESTA PERMITIDA EN ALGUNOS CASOS. POR EJEMPLO: MOV DS , 0B800H ES UNA SENTENCIA INVALIDA LO CORRECTO SERIA: MOV AX , 0B800H MOV DS , AX

7 ASIGNACION ENTRE REGISTROS
Lenguaje de maquina SIEMPRE QUE LOS REGISTROS DESTINO Y ORIGEN SEAN DEL MISMO TAMAÑO, ES POSIBLE PRACTICAMENTE CUALQUIER ASIGNACION. PODEMOS ASIGNAR UN REGISTRO DE PROPOSITO GENERAL A UNO DE SEGMENTO. SENTENCIA VALIDA: MOV DS , AX SENTENCIA INVALIDA: MOV CX, AL

8 LECTURA DE DATOS DE LA MEMORIA
Lenguaje de maquina EN EL INTERIOR DEL MICROPROCESADOR SOLO ES POSIBLE MANTENER UNA PEQUEÑA CANTIDAD DE INFORMACION, ALOJADA EN LOS REGISTROS DE PROPOSITO GENERAL, POR LO QUE ES INDISPENSABLE ALMACENAR TODOS LOS DATOS EN MEMORIA, GENERALMENTE EN UNA SECCION O SEGMENTO ESPECIFICO, RECUPERANDOLO CUANDO SEA NECESARIO. EN ESTE CASO EL DESTINO SERIA UN REGISTRO, MIENTRAS QUE EL ORIGEN SERIA LA DIRECCION DE LA CELDA DE MEMORIA.

9 LECTURA DE DATOS DE LA MEMORIA
Lenguaje de maquina SI ESCRIBIMOS: MOV AH , 100 REALMENTE ESTARIAMOS ASIGNANDO A AH EL VALOR 100. POR EL CONTRARIO, SI ESCRIBIMOS: MOV AH , [100] REALMENTE ESTARIAMOS ASIGNANDO A AH EL VALOR ALMACENADO EN LA POSICION DE MEMORIA 100. TAMBIEN ES VALIDO: MOV BX , 100 MOV AH , [BX]

10 ESCRITURA DE DATOS DE LA MEMORIA
Lenguaje de maquina COMO PUEDE SUPONER, PARA ESCRIBIR DATOS EN LA MEMORIA HAY, BASICAMENTE QUE INTERCAMBIAR DESTINO Y ORIGEN. EL DESTINO SERIA UNA DIRECCION DE MEMORIA, YA SEA CONSTANTE O ALOJADA EN UN REGISTRO, MIENTRAS QUE EL ORIGEN PODRIA SER TANTO UN VALOR INMEDIATO COMO EL CONTENIDO DE UN REGISTRO. SI EL ORIGEN ES UN REGISTRO, ESTE DETERMINARA EL TAMAÑO DEL OPERANDO Y, POR TANTO, LA CANTIDAD DE INFORMACION A TRANSFERIR A LA MEMORIA.

11 LO ANTERIOR ES VALIDO EN MASM, EN NASM EL MODIFICAR PTR NO ES VALIDO
ESCRITURA DE DATOS DE LA MEMORIA Lenguaje de maquina EN EL CASO DE LOS VALORES INMEDIATOS ES NECESARIO INDICAR DE MANERA EXPLICITA LA CANTIDAD DE MEMORIA A TRANSFERIR. EN EL EJEMPLO: MOV [BX] , 24 LA CANTIDAD DE INFORMACION NO ESTA DISPONIBLE. PERO EN : MOV WORD PTR [BX] , 24 LA PALABRA WORD ES LA QUE INDICA EL TAMANO DEL OPERADOR. LO ANTERIOR ES VALIDO EN MASM, EN NASM EL MODIFICAR PTR NO ES VALIDO

12 ESCRITURA DE DATOS DE LA MEMORIA
Lenguaje de maquina EN EL CASO DE QUE EL VALOR ESTE ALMACENADO EN UN REGISTRO, POR EJEMPLO AX, SERIA REDUNDANTE INDICAR EL TAMANO DEL VALOR A TRANSFERIR. POR EJEMPLO: MOV WORD [BX] , AX MOV [BX] , AX SON EQUIVALENTES

13 DEFINICION DE DATOS EN EL PROGRAMA
Lenguaje de maquina LEER Y ESCRIBIR EN CELDAS DE MEMORIA ALEATORIAMENTE, SIN SABER EXACTAMENTE QUE ES LO QUE HAY EN LAS CELDAS Y PARA QUE USA EL SISTEMA SU CONTENIDO, NO ES UNA PRACTICA ACONSEJABLE. DE HECHO PODEMOS ALTERAR EL FUNCIONAMIENTO DEL PROGRAMA O DEL ORDENADOR E INCLUSO BLOQUEARLO. EN LA MAYORIA DE LOS CASOS, LAS POSICIONES DE MEMORIA EMPLEADAS POR LOS PROGRAMAS CORRESPONDEN A SU PROPIO SEGMENTO DE DATOS EN EL QUE SE HAN DEFINIDO PREVIAMENTE.

14 IDENTIFICADOR INDICADOR VALOR EJEMPLOS:
CAMPOS SIMPLES Lenguaje de maquina LA SINTAXIS PARA DEFINIR CAMPOS EN EL SEGMENTO DE DATOS DEPENDE EN PARTE DEL ENSAMBLADOR USADO. SINTAXIS: IDENTIFICADOR INDICADOR VALOR EJEMPLOS: ASTERISCO DB “*” ; DB DEFINE BYTE POSICION DW 3280 ; DW DEFINE WORD VALOR32 DD ; DD DEFINE DOBLE PALABRA

15 [NOMBRE] INDICADOR CONTADOR_DE_REPETICIONES EJEMPLOS:
CONJUNTO DE CAMPOS Lenguaje de maquina CUANDO SE QUIERE MULTIPLES CAMPOS DE UN MISMO TAMANO Y ASOCIADOS ENTRE SI, LO QUE EN OTROS LENGUAJES DE PROGRAMACION SE CONOCE COMO MATRICES, ARREGLOS O VECTORES, TENEMOS VARIAS OPCIONES. SINTAXIS: [NOMBRE] INDICADOR CONTADOR_DE_REPETICIONES EJEMPLOS: ARR1 DW 10 DUP(?) ; DIEZ PALABRAS NO INICIALIZADAS ARR2 DB 5 DUP (14) ; OEOEOEOEOE DB 3 DUP(4 DUP (8)) ;

16 REFERENCIAS AL SEGMENTO DE DATOS
Lenguaje de maquina UNA VEZ DEFINIDOS YA LOS CAMPOS QUE SE PRECISEN, PARA ACCEDER A ELLOS DESDE EL CODIGO DEL PROGRAMA ES NECESARIO COMPONER UNA DIRECCION. EL PRIMER PASO SERA ASIGNAR A UN REGISTRO DE SEGMENTO, GENERALMENTE DS, LA DIRECCION DEL SEGMENTO DE DATOS. EJEMPLO 1: MOV AX, SEG CARACTERES MOV DS , AX EJEMPLO 2: MOV AX , DATOS ; DATOS ES EL NOMBRE DEL SEGMENTO

17 EJEMPLO 1


Descargar ppt "SEMANA 01_2."

Presentaciones similares


Anuncios Google