You are on page 1of 28

Circuitos lgicos II

Politcnico Grancolombiano
2016

"La programacin en bajo nivel es


buena para el alma del programador"

-- John Carmack

Assembler, lenguaje ensamblador. Depende


de la arquitectura.
Estructura de una instruccin en assembler.
Mnemnicos

Argumentos, operandos

Main:

Etiquetas

Comentarios

Normal

Polaca

Polaca Invertida

Estructura
de
datos
que
comportamiento tipo LIFO.

PUSH

POP

Stack Overflow

posee

un

Caractersticas 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 manipulacin de datos
Aritmticas
Lgicas
Control
Otras

Las operaciones aritmticas bsicas que


conocemos (aunque no todas):

Suma: ADD
Resta: SUB
Incremento: INC
Decremento: DEC
Comparar: CMP

Las operaciones lgicas bsicas que


conocemos (aunque no todas):

Y: AND
O: OR
O exclusiva: EOR
Negacin: COM
Rotaciones: ROR, ROL

Incluye todo tipo de operaciones cuyo


objetivo sea transportar datos:
Cargar datos: LDA
Almacenar datos: STA

Todas aquellas operaciones que modifiquen


el flujo normal (en caida libre) de ejecucin
del programa.
JMP
BRA
Saltos condicionales: BCC, BNE, BHS, etc

El resto de instrucciones utilitarias


Limpiar: CLR
Setear: SET
Probar: TEST

Inherente o implcito

(solo afecta a registros

determinados)

Inmediato (#)

Directo (y extendido) (H - 0x - $)

Relativo

Indexado (X)

Se aplica en instrucciones que no requieren


argumentos.
Se ejecutan en registros determinados.
El almacenamiento de instrucciones con este tipo
de direccionamiento solo requiere una posicin
de memoria.

Ej: INCA

Instruccin que tiene un argumento al que se


le antepone el smbolo # que indica que el
valor que se enva es el que se quiere operar
(NO es una direccin de memoria).
El almacenamiento de instrucciones con este
tipo de direccionamiento requiere dos
posiciones de memoria.

Ej: ADDA #5

Instruccin que requiere un argumento, y este se


refiere a la direccin en memoria que el
procesador debe accesar para obtener el dato a
operar.
Directo si la direccin de memoria es de 8 bits,
extendido si es de 16 bits.
El almacenamiento de instrucciones con este tipo
de direccionamiento requiere dos posiciones de
memoria, pero si es extendido requiere tres.

Ej: ADDA 0x0A ;

El valor a sumar est en la posicin 10 de la memoria.

Utilizado en las operaciones de control de ejecucin


del programa (Saltos).
Es relativo, pues la posicin en memoria a la que
salta el Program Counter es relativa a la direccin en
memoria de la instruccin que se est ejecutando en
el momento.

El almacenamiento de instrucciones con este tipo


de direccionamiento requiere dos posiciones de
memoria.
Ej: BRA MAIN ;
programa va a saltar.

Donde MAIN es una etiqueta que indica a que parte del

Utiliza el Index Register (IR), tambin llamado X.


Las operaciones con este tipo de direccionamiento
buscan un valor en memoria partiendo de la
direccin que est almacenada en el IR y a la cual
se le suma un corrimiento.
El almacenamiento de instrucciones con este tipo de
direccionamiento requiere dos posiciones de
memoria.

Ej: LDX #0xA


; Carga 10 en el IR (X)
LDAA 0x5, X ; Suma el valor del acumulador A con el valor existente en la

direccin del IR (10) + el valor del argumento 5, por lo tanto


suma el valor del acumulador A con el valor que haya en la
posicin 15 (0xF) de la memoria.

En lenguaje de alto nivel:

Int A = 5;
Int B = 10;
Int R = A + B;

//An ms rpido
Int R = 5 + 10;

En Assembler:
.processor m6800
Directivas: Indican configuraciones generales
.org 0c000
MAIN: LDAA #5 ; Carga el valor del primer operando (5) en el acumulador A
STAA 02 ; Carga el valor de acumulador A (5) en la posicin de memoria 02
LDAA #10 ; Carga el valor del Segundo operando (10) en el acumulador A
STAA 03 ; Carga el valor del acumulador A (10) en la posicin de memoria 03
LDAA 02 ; Carga el valor de la posicin de memoria 02 (5) en el acumulador A
ADDA 03 ; Al valor del acumulador A (5) le suma el valor almacenado en la posicin de memoria 03 (10)
STAA 04 ; Carga el valor del acumulador A (15, el resultado de la suma) en la posicin de memoria 04

Desarrollar una rutina para el MC6800 que


calcul el nmero de Fibonacci que se asigne a
una posicin de memoria determinada y cuyo
resultado quede almacenado en otra posicin
de memoria diferente.
Utilice un simulador del MC6800 para
realizarlo.

Imgenes tomadas de:

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

You might also like