miércoles, 26 de noviembre de 2014

Cuestionario sobre programación del 8085



1) Explique ¿qué es una directiva? y su estructura





Las Directivas ofrecen información al ensamblador sobre el tipo de elementos que se va a encontrar a continuación y la dirección de memoria donde debe disponerlos. Se caracterizan por ir precedidas por un punto.


su estructura es asi


.directiva + <direccion de memoria> + [comentario]


2) Haga un listado explicado de las instrucciones del microprocesador 8085


Instrucciones Para Transferencia De Datos


Mueva el contenido del Reg. C al Reg. A 79 MOV A, C 1 4


Mueva el contenido del Reg. D al Reg. A 7A MOV A, D 1 4


Movimientos Al Registro B


Mueva el contenido del Reg. E al Reg. A 7B MOV A, E 1 4


Mueva el contenido del Reg. H al Reg. A 7C MOV A, H 1 4


Mueva el contenido del Reg. B al Reg. B 40 MOV B, B 1 4 Mueva el contenido del Reg. L al Reg. A 7D MOV A, L 1 4


Mueva el contenido del Reg. C al Reg. B 41 MOV B, C 1 4 Mueva el contenido de M al Reg. A* 7E MOV A, M 1 7


Mueva el contenido del Reg. D al Reg. B 42 MOV B, D 1 4 Mueva el contenido del Reg. A al Reg. A 7F MOV A, A 1 4


Mueva el contenido del Reg. E al Reg. B 43 MOV B, E 1 4


Mueva el contenido del Reg. H al Reg. B 44 MOV B, H 1 4


Carga Inmediata De Los Registros


Mueva el contenido del Reg. L al Reg. B 45 MOV B, L 1 4


Mueva el contenido de M al Reg. B* 46 MOV B, M 1 7 Mueva data al Registro A 3E MVI A, data 2 7


Mueva el contenido del Reg. A al Reg. B 47 MOV B, A 1 4 Mueva data al Registro B 06 MVI B, data 2 7


Mueva data al Registro C 0E MVI C, data 2 7


Movimientos Al Registro C


Mueva data al Registro D 16 MVI D, data 2 7


Mueva data al Registro E 1E MVI E, data 2 7


Mueva el contenido del Reg. B al Reg. C 48 MOV C, B 1 4 Mueva data al Registro H 26 MVI H, data 2 7


Mueva el contenido del Reg. C al Reg. C 49 MOV C, C 1 4 Mueva data al Registro L 2E MVI L, data 2 7


Mueva el contenido del Reg. D al Reg. C 4A MOV C, D 1 4 Mueva data a la memoria* 35 MVI M, data 2 10


Mueva el contenido del Reg. E al Reg. C 4B MOV C, E 1 4


Mueva el contenido del Reg. H al Reg. C 4C MOV C, H 1 4


Carga Y Almacenamiento (Load Y Store)


Mueva el contenido del Reg. L al Reg. C 4D MOV C, L 1 4


Mueva el contenido de M al Reg. C* 4E MOV C, M 1 7 Cargue el apuntador de la pila con data16 31 LXI SP, data16 3 10


Mueva el contenido del Reg. A al Reg. C 4F MOV C, A 1 4 Cargue los registros B y C con data16 01 LXI B, data16 3 10


Cargue los registros D y E con data16 11 LXI D, data16 3 10


Movimientos Al Registro D


Cargue los registros H y L con data16 21 LXI H, data16 3 10


Cargue H y L con el contenido de addr 2A LHLD addr 3 16


Mueva el contenido del Reg. B al Reg. D 50 MOV D, B 1 4 Cargue el Reg. A con el contenido de addr 3A LDA addr 3 13


Mueva el contenido del Reg. C al Reg. D


Mueva el contenido del Reg. D al Reg. D


51


52


MOV D, C


MOV D, D


1


1


4


4


Cargue Reg. A con el contenido de la posición


De memoria definida por B y C 0A LDAX B 1 7


Mueva el contenido del Reg. E al Reg. D


Mueva el contenido del Reg. H al Reg. D


53


54


MOV D, E


MOV D, H


1


1


4


4


Cargue Reg. A con el contenido de la posición


De memoria definida por D y E 1A LDAX D 1 7


Mueva el contenido del Reg. L al Reg. D


Mueva el contenido de M al Reg. D*


55


56


MOV D, L


MOV D, M


1


1


4


7


Almacena Reg. A en la posición de memoria


Definida por los Reg. B y C 02 STAX B 1 7


Mueva el contenido del Reg. A al Reg. D 57 MOV D, A 1 4 Almacena Reg. A en la posición de memoria


Definida por los Reg. D y E 12 STAX D 1 7


Movimientos Al Registro E


Almacena Reg. A en la dirección 32 STA addr 3 13


Almacena Regs. H y L en la dirección 22 SHLD addr 3 16


Mueva el contenido del Reg. B al Reg. E 58 MOV E, B 1 4 Mueva el contenido de H y L al stack pointer F9 SPHL 1 6


Mueva el contenido del Reg. C al Reg. E 59 MOV E, C 1 4


Mueva el contenido del Reg. D al Reg. E 5A MOV E, D 1 4 2 -


Instrucciones Lógicas Y Aritméticas


Mueva el contenido del Reg. E al Reg. E 5B MOV E, E 1 4


Mueva el contenido del Reg. H al Reg. E 5C MOV E, H 1 4


Sumas O Adiciones


Mueva el contenido del Reg. L al Reg. E 5D MOV E, L 1 4


Mueva el contenido de M al Reg. E* 5E MOV E, M 1 7 Sume el Reg. B al Reg. A 80 ADD B 1 4


Mueva el contenido del Reg. A al Reg. E 5F MOV E, A 1 4 Sume el Reg. C al Reg. A 81 ADD C 1 4


Sume el Reg. D al Reg. A 82 ADD D 1 4


Movimientos Al Registro H


Sume el Reg. E al Reg. A 83 ADD E 1 4


Sume el Reg. H al Reg. A 84 ADD H 1 4


Mueva el contenido del Reg. B al Reg. H 60 MOV H, B 1 4 Sume el Reg. L al Reg. A 85 ADD L 1 4


Mueva el contenido del Reg. C al Reg. H 61 MOV H, C 1 4 Sume el contenido de M al Reg. A* 86 ADD M 1 7


Mueva el contenido del Reg. D al Reg. H 62 MOV H, D 1 4 Sume el Reg. B y el acarreo al Reg. A 87 ADC B 1 4


Mueva el contenido del Reg. E al Reg. H 63 MOV H, E 1 4 Sume el Reg. C y el acarreo al Reg. A 88 ADC C 1 4


Mueva el contenido del Reg. H al Reg. H 64 MOV H, H 1 4 Sume el Reg. D y el acarreo al Reg. A 89 ADC D 1 4


Mueva el contenido del Reg. L al Reg. H 65 MOV H, L 1 4 Sume el Reg. E y el acarreo al Reg. A 8A ADC E 1 4


Mueva el contenido de M al Reg. H* 66 MOV H, M 1 7 Sume el Reg. H y el acarreo al Reg. A 8B ADC H 1 4


Mueva el contenido del Reg. A al Reg. H 67 MOV H, A 1 4 Sume el Reg. L y el acarreo al Reg. A 8C ADC L 1 4


Sume el contenido de M y el acarreo al Reg. A* 8D ADC M 1 7


Movimientos Al Registro L


Sume el Reg. A y el acarreo al Reg. A 8E ADC A 1 4


Sume data al registro A C6 ADI data 2 7


Mueva el contenido del Reg. B al Reg. L 68 MOV L, B 1 4 Sume data y el acarreo al registro A CE ACI data 2 7


Mueva el contenido del Reg. C al Reg. L 69 MOV L, C 1 4 Sume los Regs. B y C a los Regs. H y L 09 DAD B 1 10


Mueva el contenido del Reg. D al Reg. L 6A MOV L, D 1 4 Sume los Regs. D y E a los Regs. H y L 19 DAD D 1 10


Mueva el contenido del Reg. E al Reg. L 6B MOV L, E 1 4 Sume los Regs. H y L a los Regs. H y L 29 DAD H 1 10


Mueva el contenido del Reg. H al Reg. L 6C MOV L, H 1 4 Sume el apuntador de la pila a los Regs. H y L 39 DAD SP 1 10


Mueva el contenido del Reg. L al Reg. L 6D MOV L, L 1 4


Mueva el contenido de M al Reg. L* 6E MOV L, M 1 7 RESTAS O SUSTRACCIONES


Mueva el contenido del Reg. A al Reg. L 6F MOV L, A 1 4


Reste el Reg. B del Reg. A 90 SUB B 1 4


Movimientos De Los Registros A La Memoria


Reste el Reg. C del Reg. A 91 SUB C 1 4


Reste el Reg. D del Reg. A 92 SUB D 1 4


Mueva el contenido del Reg. B a memoria* 70 MOV M, B 1 7 Reste el Reg. E del Reg. A 93 SUB E 1 4


Mueva el contenido del Reg. C a memoria* 71 MOV M, C 1 7 Reste el Reg. H del Reg. A 94 SUB H 1 4


Mueva el contenido del Reg. D a memoria* 72 MOV M, D 1 7 Reste el Reg. L del Reg. A 95 SUB L 1 4


Mueva el contenido del Reg. E a memoria* 73 MOV M, E 1 7 Reste el contenido de M del Reg. A* 96 SUB M 1 7


Mueva el contenido del Reg. H a memoria* 74 MOV M, H 1 7 Reste el Reg. A del Reg. A 97 SUB A 1 4


Mueva el contenido del Reg. L a memoria* 75 MOV M, L 1 7 Reste el Reg. B y el préstamo del Reg. A 98 SBB B 1 4


Mueva el contenido del Reg. A memoria* 77 MOV M, A 1 7 Reste el Reg. C y el préstamo del Reg. A 99 SBB C 1 4


Reste el Reg. D y el préstamo del Reg. A 9A SBB D 1 4


Movimientos Al Registro A


Reste el Reg. E y el préstamo del Reg. A 9B SBB E 1


Resta el Reg H y el préstamo del Reg. A 9C SBB H 1 4



Mueva el contenido del Reg. B al Reg. A 78 MOV A, B 1 4 Resta el Reg H y el préstamo del Reg. A 9D SBB L 1 4


3) Describa la arquitectura del microprocesador 8085


Arquitectura interna del 8085.


El microprocesador se compone de:






-Unidad de control (CU).


Esta unidad hace que ciertas conexiones entre los bloques de microprocesador se abran o cierren para que los datos vayan a donde sea necesario, y para que las operaciones de la Unidad Aritmético-lógica se lleven a cabo.






-Unidad Aritmético-Lógica (ALU).


La ALU realiza operaciones numéricas lógicas. Utiliza información almacenada en los registros, la memoria y el acumulador para llevar a cabo las operaciones. El resultado de las operaciones siempre se almacena en el acumulador, sobresaliendo el dato que estuviera almacenado antes.






*Registros:


Tiene seis registros para almacenar datos de 8 bits. Se pueden combinar para llevar a cabo algunas operaciones de 16 bits. El programador puede utilizar estos registros para almacenar o copiar datos en ellos mediante el uso de las instrucciones adecuadas.







-Acumulador (A).


Registro de 8 bits que forma parte de la ALU. Se utiliza para almacenar datos de 8 bit. El resultado de cualquier operación se almacena en el acumulador, sobresaliendo el dato que estuviera antes almacenado. Identificado como registro A.






-Registro de Estado (flags).


La ALU incluye cinco biestables que se actualizan después de cada operación de acuerdo a las condiciones del resultado almacenado en el acumulador y otros registros.


Tiene una importancia fundamental en el proceso de toma de decisiones del microprocesador. El estado (activado o desactivado) de los flags se comprueba a través de instrucciones software.






-Contador de programa (PC).


Este registro de 16 bits es un puntero a memoria (almacena una dirección de memoria). Las posiciones de memoria tienen direcciones de 16 bits.


La función del contador de un programa es apuntar a la dirección de memoria donde se encuentra la siguiente instrucción del programa. Cuando una instrucción se ha cargado de la memoria, el contador de programa se incrementa para que apunte a la siguiente instrucción en memoria.






-Puntero de pila (SP).


También es un registro de 16 bits utilizado como puntero de memoria. Almacena una dirección en la memoria de lectura/escritura denominada pila, que se utiliza cuando se hacen llamadas a subrutinas.






-Registro de instrucción.


Este registro almacena temporalmente la instrucción del programa que se está ejecutando en ese momento. Cada instrucción se envía desde la memoria a este registro antes de su ejecución.






-Registro de dirección de memoria.


Almacena la dirección en memoria, recibida desde el PC, de la siguiente instrucción del programa.






-Decodificador de instrucciones.


Este componente toma la instrucción almacenada en el registro de instrucción y la decodifica, pasando el resultado al generador de señales de control,






-Generador de señales de control.


Hace que ciertas conexiones entre los bloques del microprocesador se abran o cierren para que los datos vayan a donde sea necesario, y para que las operaciones de ALU se lleven a cabo.






-Microprograma.



Está escrito por el diseñador de chips, y le dice al microprocesador el significado de cada instrucción para que a continuación pueda llevar a cabo la operación.


4) Nombre los tipos de elementos que conforman la sintaxis del microprocesador 8085


En un programa ensamblador se distinguirá los siguientes tipos de elementos en la sintaxis del microprocesador 8085: Directivas, Instrucciones de ensamblaje e Instrucciones de la maquina, las instrucciones a nivel ensamblador de los procesadores poseen más o menos los mismos grupos de instrucciones, aunque no necesariamente tienen todas las instrucciones de cada grupo.


5)Explique la sintaxis de las definiciones, datos, instrucciones y operandos


Nombre de la instrucción Operando 1, Operando 2, Operando 3, Operando 4,...


El nombre de esta instrucción está conformada por 2 o 3 letras, los operandos pueden ser registros, constantes o direcciones de memoria. La cantidad de los operandos dependerá de las instrucciones


Por ejemplo:


MOV AL, [2000]


Con esta instrucción indicamos que se copie el valor de la porción de la memoria que esté en la ubicación 2000 (En código Hexadecimal) a la parte baja del registro AX (AL). Cuando un operando es un valor de una dirección de memoria, ésta dirección se escribe entre corchetes, recordar que el operando 1 es el destino y el operando 2 es el origen. Cuando es una constante dependerá del ensamblador pues se interpretaran en código hexadecimal en los ejemplos a mostrar se interpretara que las constantes en realidad son números hexadecimales.


También se puede tomar un valor de la memoria apuntado por un registro, por ejemplo:


MOV AL, [DI]


DI está apuntado al valor que está en la memoria que será copiado al registro AL. El nombre MOV viene de la palabra move, que es una palabra del inglés que significa mover. Justamente la instrucción mencionada significa, mover el valor apuntado por DI a AL.


También se puede copiar el valor de un registro a otro


MOV AL, BL


En este caso se copia el valor de BL a AL


Igualmente se puede copiar el valor de la parte baja de un registro a la parte alta de otro registro


MOV CH, DL


Así como también operar con las partes altas


MOV AH, DH


Inclusive se puede copiar el valor de un registro a una dirección de memoria


6) Explique los tipos de error en la programación del microprocesador 8085


Errores en Directivas


Las Directivas ofrecen información al ensamblador sobre el tipo de elementos que se va a encontrar a continuación y la dirección de memoria donde debe disponerlos (si corresponde). Se caracterizan por ir precedidas por un punto.


Errores en Definiciones


El objetivo de una definición es, simplemente, poner un nombre a un número. Durante el ensamblaje, cada vez que nos encontremos con un operando que contiene el nombre este será sustituido de forma automática por el valor correspondiente con el que se ha definido.


Errores en Declaraciones de Datos


Dentro de un programa se establece una clara diferencia entre datos e instrucciones. Los datos constituyen básicamente los operandos de las instrucciones.


Errores en Instrucciones


Las instrucciones del lenguaje ensamblador vienen dadas por una serie de reglas que conforman la sintaxis de este.


Errores en Expresiones


Una expresión es una secuencia de números y operadores que pueden resolverse. En ensamblador, a diferencia que otros lenguajes de más alto nivel, las expresiones han de resolverse en tiempo de compilación y no de ejecución, ya que el ensamblador solo traduce instrucciones, no compila. Por esta razón, las expresiones en ensamblador no contienen variables (aunque sí definiciones) ni registros.


Errores en Etiquetas


El objetivo de una etiqueta es referenciar una dirección de memoria. Esto es, cuando una etiqueta se sitúa en la declaración de un dato o delante una instrucción de programa está haciendo referencia a la dirección de memoria en la que se encuentra dicho dato o instrucción.


7) Explique las características del microprocesador 8085


Este procesador utiliza registros de 8 y 16 bits y tiene 8 registros direccionales de 8 bits seis de estos registros pueden utilizarse como registros de 8 bits o como registros de 16 bits. Adicional el microprocesador 8085 contiene dos registros más de 16 bits.


1) El acumulador (registro A) este acumulador es de gran importancia pues en él se incluyen instrucciones aritméticas, lógicas, de carga y almacenamiento y de E/S. Es un registro de 8 bits


2) Los registros de propósito general BC, DE y HL son utilizados como seis registros de 8 bits o tres registros de 16 bits esto depende de la instrucción que valla a realizar. El registro HL llamado puntero de datos por Intel puede ser apuntado a direcciones. Pocas instrucciones utilizan los registros BC y DE cómo puntero de dirección, y la razón es que normalmente se utilizan registros de propósitos generales.


3) El contador de programa (PC) este siempre señala la posición de la memoria de la siguiente instrucción que realizara siempre posee una dirección de 16 bits.


4) El puntero de pila (SP) es un puntero de dato que siempre apunta a la parte superior de la pila de la RAM. Es un registro de 16 bits.


5) este registro de señalizadores contiene 5 señalizadores de 1 bit que poseen información del estado de la CPU. Estos señalizadores son utilizados entonces por instrucciones de bifurcación condicional, llamada, y vuelta de subrutina.


• El señalizador de arrastre es puesto a 1 o 0 operaciones aritméticas y su estatus es examinado por las instrucciones del programa. Como en el microprocesador genérico, un over flow (rebose) de una suma de 8 bits hará que el bit se ponga a 1. En la resta el señalizador de arrastre es puesto como un señalizador de "préstamo”, indicando que el minuendo es menor que el sustraendo si el señalizador es está a 1.


• El señalizador de cero se pone a uno si el resultado de ciertas instrucciones es cero. Este está en cero si el resultado no es cero. La acción de señalizador de cero se observó en el microprocesador se observó en la parte genérica del mismo.


• El señalizador de signo(S) indica la condición del bit más significativo del acumulador después de la ejecución de instrucciones aritmético lógicas. Estas instrucciones utilizan el MSB signo a uno representa un numero contenido en el acumulador. Un señalizador de sino a uno representa un número negativo, mientras que a cero significa un número positivo.


• El señalizador de arrastre auxiliar (AC) indica un over folw o arrastre del bit 3 del acumulador de la misma forma que el señalizador de arrastre indica un overflow del bit 7. Esta señalización es utilizada comúnmente en BCD.


• El señalizador de paridad (P) examina el número de bits 1. Si este contiene un número par de uno, se dice que existe paridad par y el señalizador de paridad se pone a 1. Sin embargo, si el acumulador contiene un número impar de 1, el señalizador de paridad del 8085 se pone a cero


8) Explique las advertencias que se pueden producir en la programación del microprocesador 8085


Este procesador posee 5 interrupciones básicas que se priorizan por encima de otras acciones. La serie de interrupciones RST 5.5, 6.5, 7.5 son interrupciones enmascarables, lo que significa que puedes desactivarlas. Cuando las instrucciones son recibidas el procesador escribe en una pila general de la computadora y a su vez bifurca a la dirección de llamada correspondiente en código hexadecimal (2Ch, 34h, 3Ch), adicionalmente existe una interrupción no enmascarable que guarda y luego bifurca a la dirección 24h.


9) Explique las diferencias entre las instrucciones de ensamblaje y las de máquina


El lenguaje maquina consta de cadenas de números binarios y es el lenguaje que entiende directamente los procesadores. Todas las instrucciones preparadas en cualquier lenguaje de máquina tienen por lo menos dos partes. La primera es el comando u operación, que dice a la computadora cuál es la función que va a realizar. La segunda parte de la instrucción es el operando, esta indica al computador donde buscar los datos y otras instrucciones que se van a manipular.



Las instrucciones de ensamblaje se desarrollaron con códigos nemotécnicos para las operaciones y direcciones simbólicas. La característica principal y más importante es que permite sustituir los códigos de las operaciones generadas por lenguajes de programación de alto nivel a lenguaje máquina.


10) Explique la organización aleatoria y usual de los bloques de un programa


Los bloques dentro de un programa ensamblador no están sujetos a ningún tipo de restricción al iniciar. Es posible la declaración de varios bloques de un mismo tipo de la misma manera ningún bloque es imprescindible, por lo tanto se pueden construir programas sin declaraciones de datos e incluso instrucciones. Aunque parezca un poco razonable nos puede llegar a ser útil si se quiere solo introducir datos en una memoria para luego usarlos con otro programa. Por lo general lo forma de un programa será el siguiente definición, datos y programas.

No hay comentarios:

Publicar un comentario