Sistemas Digitales I Programación. CONJUNTO DE INSTRUCCIONES µP8086 Se llama INSTRUCCIÓN a las palabras reservadas ó MNEMÓNICOS en ensamblador, los cuales se traducen a lenguaje máquina para su posterior ejecución por parte de la CPU. Existen varios tipos de instrucciones agrupadas en tres grandes bloques: Instrucciones lógicas - aritméticas Instrucciones de transferencia de información Instrucciones para el control de programa Ing. Ricardo Godínez Bravo. Sistemas Digitales I Programación. CONJUNTO DE INSTRUCCIONES µP8086 INSTRUCCIONES LÓGICAS Y ARITMÉTICAS Estas instrucciones son ejecutadas por la ALU y existen los siguientes tipos: Operaciones puramente lógicas Operaciones puramente aritméticas Operaciones de manejo de bits Operaciones de conversión • AAA ADC RCL AND ADD RCR OR • AAD INC XOR ROL • AAM SBB NOT ROR • AAS • SUB • DEC • SAL MUL CBW IMUL SHL • CWD DIV • SAR DAA IDIV SHR • DAS • NEG Ing. Ricardo Godínez Bravo. Sistemas Digitales I Programación. CONJUNTO DE INSTRUCCIONES µP8086 INSTRUCCIONES DE TRANSFERENCIA DE INFORMACIÓN Estas instrucciones permiten la transferencia de datos entre el µP y la memoria y/o dispositivos de E/S: Usando registros y/o memoria Usando puertos de entrada - salida Transferencias especiales LDS • LODS IN LES • MOVS OUT LAHF • SCAS SAHF • STOS PUSH • REP POP • REPE • XCHG REPNE XLAT • REPZ • REPNZ Ing. Ricardo Godínez Bravo. Sistemas Digitales I Programación. CONJUNTO DE INSTRUCCIONES µP8086 INSTRUCCIONES PARA EL CONTROL DE PROGRAMA Estas instrucciones alteran el contenido del registro PSW en el µP y el flujo del programa: Operaciones con banderas Instrucciones de comparación Instrucciones de salto incondicional Instrucciones de salto condicional Manejo de interrupciones CLC CMP JMP JC • INT CLD CMPS CALL JNC • INTO CLI TEST RET JZ • IRET CMC • JNZ • JS •JNS STC • JE STD • JNE STI • LOOP • LOOPZ • LOOPNZ • JCXZ Ing. Ricardo Godínez Bravo. Sistemas Digitales I Programación. CAMPOS DE PROGRAMACIÓN Para editar un programa fuente se debe de trabajar bajo un cierto formato. Este formato está dividido en campos, los cuales determinan la función de los distintos elementos en un programa. Existen cuatro campos básicos: Campo de etiquetas Campo de operaciones Campo de operandos Campo de comentarios Ing. Ricardo Godínez Bravo. Sistemas Digitales I Programación. CAMPOS DE PROGRAMACIÓN CAMPO DE ETIQUETAS Este campo contiene las etiquetas asignadas a cualquier línea de programa. Estas deben empezar en la primera columna. Se recomienda que sean en MAYUSCULAS. Aceptan caracteres alfanuméricos. Sus limitadores son los caracteres de dos puntos “ : “ o el tabulador vertical “ Å ”. Ing. Ricardo Godínez Bravo. Sistemas Digitales I Programación. CAMPOS DE PROGRAMACIÓN CAMPO DE OPERACIONES Este campo contiene los mnemónicos de las instrucciones así como algunas directivas o pseudo instrucciones del ensamblador. Las directivas o pseudo instrucciones indican como procesará el ensamblador un operando o una sección del programa. Algunas directivas generan y almacenan información en la memoria y otras no. Ing. Ricardo Godínez Bravo. Sistemas Digitales I Programación. CAMPOS DE PROGRAMACIÓN CAMPO DE OPERACIONES Este campo contiene los mnemónicos de las instrucciones así como algunas directivas o pseudo instrucciones del ensamblador. Directiva ORG. Marca un valor absoluto a partir del cual se asignarán valores reales a símbolos y etiquetas. [etiqueta] ORG [operando] Ing. Ricardo Godínez Bravo. Sistemas Digitales I Programación. CAMPOS DE PROGRAMACIÓN CAMPO DE OPERACIONES Este campo contiene los mnemónicos de las instrucciones así como algunas directivas o pseudo instrucciones del ensamblador. Directiva EQU. Asigna a una etiqueta el valor de un operando. [etiqueta] EQU [operando] Ing. Ricardo Godínez Bravo. Sistemas Digitales I Programación. CAMPOS DE PROGRAMACIÓN CAMPO DE OPERACIONES Este campo contiene los mnemónicos de las instrucciones así como algunas directivas o pseudo instrucciones del ensamblador. Directiva DB. Reserva espacio de memoria asignando valores a las localidades seleccionadas. [etiqueta]: DB [operando] Ing. Ricardo Godínez Bravo. Sistemas Digitales I Programación. CAMPOS DE PROGRAMACIÓN CAMPO DE OPERACIONES Este campo contiene los mnemónicos de las instrucciones así como algunas directivas o pseudo instrucciones del ensamblador. Directiva DB. Cuando dichos operandos son caracteres ascii, estos pueden ir entre comillas “ “, o puede reservarse todo un espacio de una cadena MSG: DB “Hola mundo” Ing. Ricardo Godínez Bravo. Sistemas Digitales I Programación. CAMPOS DE PROGRAMACIÓN CAMPO DE OPERACIONES Este campo contiene los mnemónicos de las instrucciones así como algunas directivas o pseudo instrucciones del ensamblador. Directivas PROC y ENDP. Indican el inicio y final de un procedimiento o subrutina. Ambas directivas requieren una etiqueta. [etiqueta] PROC ret [etiqueta] ENDP Ing. Ricardo Godínez Bravo. Sistemas Digitales I Programación. CAMPOS DE PROGRAMACIÓN CAMPO DE OPERACIONES Este campo contiene los mnemónicos de las instrucciones así como algunas directivas o pseudo instrucciones del ensamblador. Directivas ENDS. SEGMENT y Definen el inicio y final de un segmento. Ambas directivas requieren una etiqueta. [etiqueta] SEGMENT [etiqueta] ENDS Ing. Ricardo Godínez Bravo. Sistemas Digitales I Programación. CAMPOS DE PROGRAMACIÓN CAMPO DE OPERACIONES Este campo contiene los mnemónicos de las instrucciones así como algunas directivas o pseudo instrucciones del ensamblador. Directiva AT. Esta directiva es seguida de una expresión o constante que especifica la localización exacta de un segmento en memoria. [etiqueta] SEGMENT AT [cte] [etiqueta] ENDS Ing. Ricardo Godínez Bravo. Sistemas Digitales I Programación. CAMPOS DE PROGRAMACIÓN CAMPO DE OPERACIONES Este campo contiene los mnemónicos de las instrucciones así como algunas directivas o pseudo instrucciones del ensamblador. Directiva ASSUME. Asigna un segmento de memoria a los registros de segmento CS, DS y ES mediante un nombre: ASSUME [nombre del registro de segmento]: [nombre], ... Ing. Ricardo Godínez Bravo. Sistemas Digitales I Programación. CAMPOS DE PROGRAMACIÓN CAMPO DE OPERACIONES Este campo contiene los mnemónicos de las instrucciones así como algunas directivas o pseudo instrucciones del ensamblador. Directiva END. Todo programa fuente debe terminar con esta directiva. Lo que este después de END no será tomado en cuenta por el ensamblador, por lo que esta debe ser la ultima línea del programa. Ing. Ricardo Godínez Bravo. Sistemas Digitales I Programación. CAMPOS DE PROGRAMACIÓN CAMPO DE OPERANDOS En este campo se tienen los elementos sobre los cuales se ejecutarán las operaciones. Cuando se tienen más de dos operandos estos se separan por una coma “,“ Sus limitadores son los caracteres de punto y coma “ ; “ o el tabulador vertical “ Å ”. Ing. Ricardo Godínez Bravo. Sistemas Digitales I Programación. CAMPOS DE PROGRAMACIÓN CAMPO DE COMENTARIOS Este campo contiene la información que puede ser útil para el usuario para detectar la función básica del código. El ensamblador detecta un comentario cuando este se precede por un punto y coma “ ; “ Ing. Ricardo Godínez Bravo. Sistemas Digitales I Programación. CAMPOS DE PROGRAMACIÓN ESTRUCTURA GENERAL DE UN PROGRAMA EXTRA segment at 8000H db “Hola mundo” org 8050H db 10, 0FFH, ‘3’ EXTRA ends DATA VAR1 VAR2 DATA segment equ 10H equ 123 ends Ing. Ricardo Godínez Bravo. Sistemas Digitales I Programación. CAMPOS DE PROGRAMACIÓN ESTRUCTURA GENERAL DE UN PROGRAMA PILA PILA segment stack dw 100H dup(?) ends CODIGO segment assume CS:CODIGO, DS:DATA, ES:EXTRA INICIO: : call RUTINA : RUTINA proc near (far) : ret RUTINA endp CODIGO ends end INICIO Ing. Ricardo Godínez Bravo. Sistemas Digitales I Programación. ESTRUCTURAS DE PROGRAMACIÓN La programación estructurada es una técnica para organizar y codificar programas. Esta técnica reduce la complejidad, mejora la claridad y facilita la depuración de los programas. Todos los programas pueden ser escritos usando solo tres estructuras básicas: ACCIÓN, LAZOS y SELECCIÓN. Una herramienta para desarrollar un programa, son los diagramas de flujo, para después implementar en lenguaje ensamblador . Esta herramienta facilita la formulación y entendimiento del problema. Ing. Ricardo Godínez Bravo. Sistemas Digitales I Programación. ESTRUCTURAS DE PROGRAMACIÓN DIAGRAMAS DE FLUJO Los símbolos más comunes en un diagrama de flujo son los siguientes: Ing. Ricardo Godínez Bravo. Sistemas Digitales I Programación. ESTRUCTURAS DE PROGRAMACIÓN Estructura de declaración o acción Esta estructura provee un mecanismo básico para realizar algo. INICIO: [acción 1] [acción 2] : [acción n] FIN: end Ing. Ricardo Godínez Bravo. Sistemas Digitales I Programación. ESTRUCTURAS DE PROGRAMACIÓN Estructura de lazo o repetición Esta estructura es usada para realizar repetidamente una acción. Existen dos tipos de lazos: WHILE / DO y REPEAT / UNTIL. WHILE / DO (mientras [condición] realizar [acción]) Este tipo de estructura sólo tiene un punto de entrada y otro de salida. Evalúa cierto o falso. Ing. Ricardo Godínez Bravo. Sistemas Digitales I Programación. ESTRUCTURAS DE PROGRAMACIÓN Estructura de lazo o repetición Esta estructura es usada para realizar repetidamente una acción. Existen dos tipos de lazos: WHILE / DO y REPEAT / UNTIL. REPEAT / UNTIL (repetir [acción] hasta [condición]) Este tipo de estructura al menos ejecuta una sola vez la acción. Ing. Ricardo Godínez Bravo. Sistemas Digitales I Programación. ESTRUCTURAS DE PROGRAMACIÓN Estructura de selección Esta estructura determina una acción entre varias dependiendo de una condición. Los arreglos mas comunes son: IF/THEN/ELSE y CASE. IF / THEN / ELSE (si [condición] entonces [acción1] sino [acción2]) En esta estructura la acción 2 puede ser opcional. Ing. Ricardo Godínez Bravo. Sistemas Digitales I Programación. ESTRUCTURAS DE PROGRAMACIÓN Estructura de selección Esta estructura determina una acción entre varias dependiendo de una condición. Los arreglos mas comunes son: IF/THEN/ELSE y CASE. CASE (si [condición1] entonces [acción1] sino si [condición2] entonces [acción2] sino ... si [condiciónN] entonces [acciónN] sino [acción defaul] Ing. Ricardo Godínez Bravo.