campos de programación

Anuncio
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.
Descargar