Circuitos lógicos II

Politécnico Grancolombiano
2016

.

"La programación en bajo nivel es buena para el alma del programador" -.John Carmack .

Depende de la arquitectura.Assembler. Estructura de una instrucción en assembler. Mnemónicos Argumentos. operandos Main: Etiquetas Comentarios . lenguaje ensamblador.

 Normal  Polaca  Polaca Invertida .

 PUSH  POP  Stack Overflow posee un .Estructura de datos que comportamiento tipo LIFO.

Características principales  2 registros acumuladores  IR  PC  SP  SR: E-F-H-I-N-Z-V-C  MDR 8 Bits  MAR 16 Bits  2 MHz  72 Instr.  6 modos de direccionamiento .

.

.

.

72 Instrucciones (RISC) diferentes tipos de instrucciones:  Instrucciones de manipulación de datos  Aritméticas  Lógicas  Control  Otras .

 Las operaciones aritméticas básicas que conocemos (aunque no todas): ◦ ◦ ◦ ◦ ◦ Suma: ADD Resta: SUB Incremento: INC Decremento: DEC Comparar: CMP .

ROL . Las operaciones lógicas básicas que conocemos (aunque no todas): ◦ ◦ ◦ ◦ ◦ Y: AND O: OR O exclusiva: EOR Negación: COM Rotaciones: ROR.

 Incluye todo tipo de operaciones cuyo objetivo sea transportar datos: ◦ Cargar datos: LDA ◦ Almacenar datos: STA .

BNE. etc . BHS. Todas aquellas operaciones que modifiquen el flujo normal (en caida libre) de ejecución del programa. ◦ JMP ◦ BRA ◦ Saltos condicionales: BCC.

 El resto de instrucciones utilitarias ◦ Limpiar: CLR ◦ Setear: SET ◦ Probar: TEST .

 Inherente o implícito (solo afecta a registros determinados)  Inmediato (#)  Directo (y extendido) (H .$)  Relativo  Indexado (X) .0x .

El almacenamiento de instrucciones con este tipo de direccionamiento solo requiere una posición de memoria. Se ejecutan en registros determinados.    Se aplica en instrucciones que no requieren argumentos. Ej: INCA .

Ej: ADDA #5 .   Instrucción que tiene un argumento al que se le antepone el símbolo # que indica que el valor que se envía es el que se quiere operar (NO es una dirección de memoria). El almacenamiento de instrucciones con este tipo de direccionamiento requiere dos posiciones de memoria.

    Instrucción que requiere un argumento. pero si es extendido requiere tres. Ej: ADDA 0x0A . extendido si es de 16 bits. y este se refiere a la dirección en memoria que el procesador debe accesar para obtener el dato a operar. El almacenamiento de instrucciones con este tipo de direccionamiento requiere dos posiciones de memoria. Directo si la dirección de memoria es de 8 bits. El valor a sumar está en la posición 10 de la memoria. .

Donde MAIN es una etiqueta que indica a que parte del . programa va a saltar.    Utilizado en las operaciones de control de ejecución del programa (Saltos). Ej: BRA MAIN . Es relativo. pues la posición en memoria a la que salta el Program Counter es relativa a la dirección en memoria de la instrucción que se está ejecutando en el momento. El almacenamiento de instrucciones con este tipo de direccionamiento requiere dos posiciones de memoria.

Ej: LDX #0xA . Las operaciones con este tipo de direccionamiento buscan un valor en memoria partiendo de la dirección que está almacenada en el IR y a la cual se le suma un corrimiento. Suma el valor del acumulador A con el valor existente en la dirección del IR (10) + el valor del argumento 5. por lo tanto suma el valor del acumulador A con el valor que haya en la posición 15 (0xF) de la memoria. El almacenamiento de instrucciones con este tipo de direccionamiento requiere dos posiciones de memoria. también llamado X. Carga 10 en el IR (X) LDAA 0x5. .    Utiliza el Index Register (IR). X .

.

.

el resultado de la suma) en la posición de memoria 04 . Carga el valor de la posición de memoria 02 (5) en el acumulador A ADDA 03 . Int B = 10. Int R = A + B. Carga el valor de acumulador A (5) en la posición de memoria 02 LDAA #10 .En lenguaje de alto nivel: Int A = 5.org 0c000 MAIN: LDAA #5 . //Aún más rápido Int R = 5 + 10. Carga el valor del primer operando (5) en el acumulador A STAA 02 . Carga el valor del acumulador A (10) en la posición de memoria 03 LDAA 02 .processor m6800 Directivas: Indican configuraciones generales . En Assembler: . Carga el valor del acumulador A (15. Al valor del acumulador A (5) le suma el valor almacenado en la posición de memoria 03 (10) STAA 04 . Carga el valor del Segundo operando (10) en el acumulador A STAA 03 .

. Utilice un simulador del MC6800 para realizarlo.Desarrollar una rutina para el MC6800 que calculé el número de Fibonacci que se asigne a una posición de memoria determinada y cuyo resultado quede almacenado en otra posición de memoria diferente.

edu.assignmentpoint. html .html https://edux.com/science/comput er/report-on-motorola-microprocessor.Imágenes tomadas de:   http://www.pl/mat/264/lec/index47.pjwstk.