Programación en Lenguaje Ensamblador.

Slides:



Advertisements
Presentaciones similares
Laboratorio Lenguaje de Programación ING2101
Advertisements

Instrucciones de operación sobre datos
EXCEL 14 CLASE 6.
PHP-MYSQL OPERADORES EN PHP
No. Lista 31 Teresita Ramírez Uribe HORA: 8:00-9:00AM.
N.L 32 ROMERO HERNÁNDEZ GABRIELA VERÓNICA. HORA: 8:00-9:00AM ESQUELETO DE UN PROGRAMA EN ENSAMBLADOR.
Fundamentos de la Programación Estructurada
Funciones. Programación, Algoritmos y Estructuras de Datos.
Introducción al lenguaje ensamblador
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
Administración de Proyectos de desarrollo de Software Ciclo de vida de un proyecto Enfoque moderno Tema Función main Elementos básicos del lenguaje.
FUNCIONES EN C.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Programación en Lenguaje Ensamblador.
Una breve introducción
Tema 3. Optimización de Código
Funciones y procedimientos
Funciones: conceptos básicos
CI TEORIA semana 8 Subprogramas o funciones Definición de funciones.
Lenguaje de maquina Unidad II Programación en Lenguaje Ensamblador. Interrupción: Introducción. Servicios. Tema:
Al término de la clase, el alumno reconoce las ventajas de usar JAVASCRIPT para un proyecto web.
Introducción al NASM The Netwide Assembler MIA J. Rafael Rojano C.
ESTRUCTURAS DE CONTROL
Tema 3 Entrada y Salida.
TRADUCTOR DE UN PROGRAMA
MODOS DE DIRECCIONAMIENTO No. Lista 21 7am Rivas chacón Ana cristina
MODOS DE DIRECCIONAMIENTO
Administración de datos con MS-SQL Server y Visual Basic
Introducción al lenguaje ensamblador
Semana 5 Subprogramas..
MODOS DE DIRECCIONAMIENTO
Programación en Matlab
1 SEMANA 04_2. 2 OPERADORES ARITMETICOS OPERADOR: + FORMATO: VALOR1 + VALOR2 FUNCION : SUMA VALOR1 Y VALOR2 EJEMPLO : TABLA_MAS_2 DW TABLA + 2 ; (DESPLAZAMIENTO.
Informática Ingeniería en Electrónica y Automática Industrial
Lenguaje Ensamblador Unidad 2
Valor X Valor Y Punto (0,0) Coordenadas.
Administración de Proyectos de desarrollo de Software Ciclo de vida de un proyecto Enfoque moderno Temas Componentes Directivas Declaraciones globales.
Microprocesador (80X86) Universidad Nacional de Ingeniería
Introducción al lenguaje ensamblador
Informática Ingeniería en Electrónica y Automática Industrial
Archivos Programación I MC Beatriz Beltrán Martínez.
Teoría – Alejandro Gonzalez
LENGUAJES DE PROGRAMACIÓN
Unidad I: Registros e Interrupciones Facilitador: Ing. Eduardo Brando.
Elementos básicos del lenguaje
Estructuras de Control.
introducción al Lenguaje Ensamblador
Elementos básicos del lenguaje

SEMANA 03_2. ESCRITURA DE PROGRAMAS.COM DE FORMA AUTOMATICA EL ENLAZADOR GENERA UN FORMATO PARTICULAR PARA UN PROGRAMA.EXE. TAMBIEN PUEDE GENERAR UN PROGRAMA.COM.
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
SEMANA 01_2.
Vamos a tratar algunos temas que es necesario conocer a la hora de administrar un sistema informático y que nos van a ser útiles sin importar el sistema.
Teoría de lenguajes y compiladores

Elaboración de algoritmos usando lógica de programación

Lenguaje de maquina Unidad II Programación en Lenguaje Ensamblador. Operadores y Pseudo operadores: Ejemplos. Tema:
introducción al Lenguaje Ensamblador
Estructuras de Decisión
Programación en Lenguaje Ensamblador.
 Las funciones son un conjunto de instrucciones que realizan una tarea específica. En general toman unos valores de entrada, llamados parámetros y proporcionan.
MEMORIA DINÁMICA.
PROGRAMACIÓN Grupo de Modelamiento de Sistemas
El microprocesador y su arquitectura
Lenguaje ensamblador Conceptos introductorios. Formatos de Instrucción. Modos de Direccionamiento. Conjunto de instrucciones básico. Introducción al Lenguaje.
JOSE ALBERTO JIMENEZ JIMENEZ KATTY HIPOLITO. 7.1 INTRODUCCION AL LENGUAJE EMSAMBLADOR.
Lenguaje ensamblador Resumen en diapositivas
Omar Herrera Caamal Rigoberto Lizárraga Luis Cetina Luna.
Fundamentos Ofimáticos - Excel Docente: Edison Suarez Londoño.
Transcripción de la presentación:

Programación en Lenguaje Ensamblador. Lenguaje de maquina Unidad II Programación en Lenguaje Ensamblador. Tema: Herramientas de programación: Bibliotecas objetos. Macros. Procedimientos. Programación.

Objetivo General Adquirir una sólida comprensión del funcionamiento interno de los microprocesadores. Conocer y emplear eficientemente el entorno de programación del Lenguaje Ensamblador. Elaborar programas a nivel avanzado que permiten manejar eficientemente los recursos del microprocesador

Conocer y aplicar las diversas instrucciones e interrupciones. Objetivo Terminal Conocer y aplicar las diversas instrucciones e interrupciones.

Objetivo Instruccional Implementar macros y procedimientos en ensamblador empleando herramientas de programación

SEMANA 8_1

LAS MACROS SON UTILES PARA LOS SIGUIENTES PROPOSITOS: Lenguaje de maquina MACROS LAS MACROS SON UTILES PARA LOS SIGUIENTES PROPOSITOS: SIMPLIFICAR Y REDUCIR LA CANTIDAD DE CODIFICACION REPETIDA REDUCIR ERRORES CAUSADOS POR LA CODIFICACION REPETITIVA LINEALIZAR UN PROGRAMA EN LENGUAJE ENSAMBLADOR PARA HACERLO MAS LEGIBLE

INITZ MACRO ; DEFINE MACRO MOV AX , FLDA ADD AX , FLDB MOV FLDC , AX Lenguaje de maquina UNA DEFINICION SENCILLA DE UNA MACRO LAS MACROS DEBEN SER DEFINIDAS ANTES QUE CUALQUIER DEFINICION DE SEGMENTO: EJEMPLO INITZ MACRO ; DEFINE MACRO MOV AX , FLDA ADD AX , FLDB MOV FLDC , AX ENDM

PROMPT MACRO MENSAJE ; ARGUMENTO MUDO MOV AH , 09H LEA DX , MENSAJE Lenguaje de maquina USO DE PARAMETROS EN MACROS PARA HACER UNA MACRO FLEXIBLE, PUEDE DEFINIR NOMBRES EN ELLA COMO ARGUMENTOS MUDOS (FICTICIOS). EJEMPLO: PROMPT MACRO MENSAJE ; ARGUMENTO MUDO MOV AH , 09H LEA DX , MENSAJE INT 21H ENDM INVOCACION: PROMPT MOSTRAR

DEFINICION DE MACRO: (argumento) XYZ MACRO MENSAJE Lenguaje de maquina USO DE PARAMETROS EN MACROS EL PARAMETRO EN LA MACROINSTRUCCION CORRESPONDE AL ARGUMENTO MUDO EN LA DEFINICION ORIGINAL DE LA MACRO. DEFINICION DE MACRO: (argumento) XYZ MACRO MENSAJE MACROINSTRUCCION : (parámetro) XYZ MENS2 SE PUEDE DEFINIR UNA MACRO CON CUALQUIER NUMERO DE ARGUMENTOS MUDOS, SEPARADOS POR COMA, HASTA LA COLUMNA 120 DE UNA LINEA. EL ENSAMBLADOR SUSTITUYE LOS PARAMETROS DE LA MACROINSTRUCCION POR LOS ARGUMENTOS MUDOS EN LA DEFINICION DE LA MACRO, ENTRADA POR ENTRADA, DE IZQUIERDA A DERECHA.

Lenguaje de maquina USO DE PARAMETROS EN MACROS SI SE QUIERE QUE APAREZCA UN COMENTARIO DENTRO DE UNA EXPANSION, UTILICE LA DIRECTIVA DE LISTADO .LALL ANTES DE SOLICITAR LA MACROINSTRUCCION. .LALL PROMPT COMENTARIO

Lenguaje de maquina USO DE UNA MACRO DENTRO DE UNA DEFINICION DE MACRO SEA DOS21 UNA MACRO SENCILLA QUE CARGA UNA FUNCION EN EL REGISTRO AH Y EMITE LA INT 21H. DOS21 MACRO DOSFUNC MOV AH , DOSFUNC INT 21H ENDM USAR ESTA FUNCION DOS21 PARA ACEPTAR ENTRADA DESDE EL TECLADO, CODIFIQUE: LEA DX , NOMBREPAR DOS21 0AH

Lenguaje de maquina USO DE UNA MACRO DENTRO DE UNA DEFINICION DE MACRO AHORA SUPONGA QUE TIENE OTRA MACRO, LLAMADA DISP, QUE CARGA LA FUNCION 02H DE LA INT 21H EN EL REGISTRO AH PARA DESPLEGAR UN CARÁCTER. DISP MACRO CHAR MOV AH , 02H MOV DL , CHAR INT 21H ENDM

Lenguaje de maquina USO DE UNA MACRO DENTRO DE UNA DEFINICION DE MACRO ENTONCES PARA DESPLEGAR UN SIGNO DE INTERROGACION PODEMOS CAMBIAR DISP PARA APROVECHAR LA MACRO DOS21 DENTRO DE DISP. DISP MACRO CHAR MOV DL , CHAR DOS21 02H ENDM

Lenguaje de maquina LA DIRECTIVA LOCAL ALGUNAS MACROS NECESITAN QUE SE DEFINAN ELEMENTOS DE DATOS Y ETIQUETAS DE INSTRUCCIONES DENTRO DE LA DEFINICION DE MACRO. SI UTILIZA LA MACRO MAS DE UNA VEZ DENTRO DEL MISMO PROGRAMA, EL ENSAMBLADOR DEFINE LOS ELEMENTOS DE DATOS PARA CADA APARICION. LOS NOMBRES DUPLICADOS HARIAN QUE EL ENSAMBLADOR GENERE UN MENSAJE DE ERROR. PARA ASEGURAR QUE CADA NOMBRE GENERADO ES UNICO CODIFIQUE LA DIRECTIVA LOCAL INMEDIATAMENTE DESPUES DE LA INSTRUCCIÓN MACRO.

DIVIDE MACRO DIVIDENDO,DIVISOR,COCIENTE LOCAL COMP LOCAL OUT Lenguaje de maquina LA DIRECTIVA LOCAL EJEMPLO: DIVIDE MACRO DIVIDENDO,DIVISOR,COCIENTE LOCAL COMP LOCAL OUT MOV AX , DIVIDENDO MOV BX , DIVISOR SUB CX,CX COMP: CMP AX , BX … OUT: MOV COCIENTE , CX ENDM

Lenguaje de maquina INCLUIR (INCLUDE) DESDE UNA LIBRERÍA DE MACROS DEFINIR UNA MACRO Y USARLA UNA SOLA VEZ EN UN PROGRAMA NO ES MUY PRODUCTIVO. EL ENFOQUE ES CATALOGAR LAS MACROS EN UNA BIBLIOTECA EN DISCO BAJO UN NOMBRE DESCRIPTIVO COMO MACRO.LIB. USTED SOLO TIENE QUE REUNIR TODAS LAS DEFINICIONES DE SUS MACROS EN UN ARCHIVO Y ALMACENAR EL ARCHIVO EN DISCO. COMO INCLUIR: IF1 INCLUDE D:MACRO.LIB ENDIF

Lenguaje de maquina LA DIRECTIVA PURGE LA EJECUCION DE UNA INSTRUCCIÓN INCLUDE HACE QUE EL ENSAMBLADOR INCLUYA TODAS LAS DEFINICIONES DE MACROS QUE ESTAN ESPECIFICADAS EN LA BIBLIOTECA. PARA ELIMINAR LAS QUE NO SE NECESITAN USAMOS LA DIRECTIVA PURGE. IF1 INCLUDE D:MACRO.LIB ENDIF PURGE PROMPT,DIVIDE …

Lenguaje de maquina CONCATENACION (&) EL CARÁCTER AMPERSAN (&) INDICA AL ENSAMBLADOR QUE CONCATENE TEXTO O SIMBOLOS. LA SIGUIENTE MACRO MOVE PROPORCIONA LA GENERACION DE LA INSTRUCCIÓN MOVSB, MOVSW O MOVSD. MOV MACRO TAG REP MOVS&TAG ENDM

Lenguaje de maquina LA DIRECTIVA REPETICION LA DIRECTIVA DE REPETICION REPT, IRP e IRPC HACEN QUE EL ENSAMBLADOR REPITA UN BLOQUE DE INSTRUCCIONES TERMINADAS POR ENDM. ESTAS DIRECTIVAS NO TIENEN QUE ESTAR CONTENIDAS EN UNA DEFINICION MACRO, PERO SI LO ESTAN, ES NECESARIO UN ENDM PARA FINALIZAR LA REPETICION Y UN SEGUNDO ENDM PARA TERMINAR LA DEFINICION MACRO. MASM 6.0 INTRODUJO LOS TERMINOS REPEAT, FOR y FORC PARA REPT, IRP e IRPC , RESPECTIVAMENTE.

Lenguaje de maquina REPETICION: REPT LA DIRECTIVA REPT PROVOCA LA REPETICION DE UN BLOQUE DE INSTRUCIONES HASTA ENDM DE ACUERDO CON EL NUMERO DE VECES EN LA EXPRESION DE ENTRADA. REPT EXPRESION EJEMPLO: BEEPSPKR MACRO MOV AH , 02H MOV DL , 07 REPT 5 INT 21H ENDM

IRP ARG_MUDO , <ARGUMENTOS> Lenguaje de maquina REPETICION INDEFINIDA: IRP HACE QUE SE REPITA UN BLOQUE DE INSTRUCCIONES HASTA ENDM. EL FORMATO GENERAL ES: IRP ARG_MUDO , <ARGUMENTOS> EJEMPLO: IRP N , <3,19,17,25,28> DB N GENERA: DB 3 DB 19 DB 17 DB 25 DB 28

Lenguaje de maquina REPETICION INDEFINIDA CON CARACTER: IRPC HACE QUE SE REPITA UN BLOQUE DE INSTRUCCIONES HASTA ENDM. EL FORMATO GENERAL ES: IRPC ARG_MUDO , CADENA EJEMPLO: IRPC N , 39758 DW N GENERA: DW 3 DW 9 DW 7 DW 5 DW 8

DIRECTIVAS CONDICIONALES Lenguaje de maquina DIRECTIVAS CONDICIONALES EL LENGUAJE ENSAMBLADOR PERMITE USAR VARIAS DIRECTIVAS CONDICIONALES. USAMOS IF1 ANTERIORMENTE PARA INCLUIR UNA ENTRADA DE BIBLIOTECA SOLO DURANTE LA PASADA 1 DE UN ENSAMBLADO. LAS DIRECTIVAS CONDICIONALES SON MUY UTILES DENTRO DE UNA DEFINICION DE MACRO, PERO NO ESTAN LIMITADAS A ESE PROPOSITO. CADA DIRECTIVA IF DEBE TENER SU CORRESPONDIENTE ENDIF PARA TERMINAR UNA CONDICION QUE SE PRUEBA. UN ELSE OPCIONAL PUEDE PROPORCIONAR UN AREA ALTERNA.

IFxx (Condición) … ELSE (Opcional) ENDIF (Fin del IF) Lenguaje de maquina DIRECTIVAS CONDICIONALES IFxx (Condición) … ELSE (Opcional) ENDIF (Fin del IF)

Lenguaje de maquina DIRECTIVAS CONDICIONALES: TIPOS IF expresión. Si la expresión que se evalúa es diferente de cero, el ensamblador ensambla las instrucciones dentro del bloque condicional. IFE expresión. Si la expresión que se evalúa es cero, el ensamblador ensambla las instrucciones dentro del bloque condicional. IF1 (sin expresión). Si el ensamblador esta procesando la pasada 1, actúa sobre las instrucciones en el bloque condicional. IF2 (sin expresión). Si el ensamblador esta procesando la pasada 2, actúa sobre las instrucciones en el bloque condicional.

Lenguaje de maquina DIRECTIVAS CONDICIONALES: TIPOS IFDEF símbolo. Si el símbolo esta definido en el programa o declarado como EXTRN, el ensamblador procesa las instrucciones en el bloque condicional. IFNDEF símbolo. Si el símbolo no esta definido en el programa o declarado como EXTRN, el ensamblador procesa las instrucciones en el bloque condicional. IFB <argumento>. Si el argumento esta en blanco, el ensamblador procesa las instrucciones en el bloque condicional. Se debe incluir los <>

Lenguaje de maquina DIRECTIVAS CONDICIONALES: TIPOS IFNB <argumento>. Si el argumento no esta en blanco, el ensamblador procesa las instrucciones en el bloque condicional. Se debe incluir los <>. IFIDN <arg-1>,<arg-2>. Si la cadena del argumento 1 es idéntica a la cadena del argumento 2, el ensamblador procesa las instrucciones en el bloque condicional. IFDIF <arg-1>,<arg-2>. Si la cadena del argumento 1 es diferente a la cadena del argumento 2, el ensamblador procesa las instrucciones en el bloque condicional.

IF e IFE pueden usar operadores relacionales EQ, NE, LT, LE, GT y GE. Lenguaje de maquina DIRECTIVAS CONDICIONALES: TIPOS IF e IFE pueden usar operadores relacionales EQ, NE, LT, LE, GT y GE. EJEMPLO: DOS21 MACRO DOSFUNC , DXADDRES MOV AH, DOSFUNC IFNB <DXADDRES> MOV DX , OFFSET DXADDRES ENDIF INT 21H ENDM

Lenguaje de maquina LA DIRECTIVA EXITM UNA DEFINICION DE MACRO PUEDE CONTENER UNA DIRECTIVA CONDICIONAL QUE PRUEBE BUSCANDO UNA CONDICION GRAVE. SI LA CONDICION ES VERDADERA, EL ENSAMBLADOR SALE DESDE CUALQUIER EXPANSION POSTERIOR DE MACRO. LA DIRECTIVA EXITM SIRVE PARA ESTE PROPOSITO: IFxx (CONDICION) … (CONDICION NO VALIDA) EXITM … SI EL ENSAMBLADOR ENCUENTRA EXITM EN UNA EXPANSION DE UNA MACROINSTRUCCION, DESCONTINUA LA EXPANSION DE LA MACRO Y REASUME EL PROCESAMIENTO DESPUES DE ENDM.

EJEMPLOS PROGRAMA USO DE IF Y IFNDEF PROGRAMA USO DE IFIDN Lenguaje de maquina EJEMPLOS PROGRAMA USO DE IF Y IFNDEF PROGRAMA USO DE IFIDN VER LISTADOS ADJUNTOS.