Escolar Documentos
Profissional Documentos
Cultura Documentos
Tema 4-1
Contenidos:
Lenguaje mquina Formatos de instruccin mquina Tipos de instrucciones mquina Modos de direccionamiento Implcito Inmediato Directo absoluto Directo relativo Indirecto Lenguaje ensamblador Programa ensamblador, programa fuente y programa objeto
Tema 4-2
e)
Lenguaje mquina
El ordenador slo entiende un lenguaje muy restringido y de bajo nivel llamado lenguaje mquina El lenguaje mquina depende del procesador Existe una incompatibilidad innata entre los distintos procesadores Constituye una de las caractersticas ms importantes de su arquitectura El lenguaje mquina establece las capacidades bsicas del computador El lenguaje mquina est formado por un conjunto de instrucciones mquina Cada instruccin tiene una representacin determinada en forma de bits, almacenados en memoria Los distintos tipos de representacin se denominan formato de instruccin
Tema 4-3
te)
Formatos de Instruccin
Ejemplo de instrucciones mquina
100 11 10 0
Se usan nemotcnicos : MOV R3,R2 ; R3 R2
Vemos que las instrucciones mquina estn formadas por ceros y unos
Tema 4-4
n bits
m bits
NOP
Cdigo de operacin
operando
Cdigo de operacin
operando1
operando2
Cdigo de operacin
operando1
operando2
operando3
Tema 4-6
MOV SP , #2000H ; inicializo puntero de pila CALL 1100h ;llamo a la subrutina inicializar ADD R3, [R1] ; R3M(R1) + R3 INC R1 ;incremento direccin de memoria DEC R2 ;decremento contador de bytes JNZ 1002 ;contino sumando hasta terminar los 30 bytes STORE /5000H, R3 ; escribo resultado de la suma HLT ;fin de programa MOV R1, #3700H MOV R2, #30 MOV R3, #00 RET ; inicializo registro R1 ; inicializo contador de bytes : blanqueo registro R3 ;retorno de subrutina
Tema 4-7
Tema 4-8
ADD (ADD) SUBTRACT (SUB) INCREMENT (INC) DECREMENT (DEC) MULTIPLY (MUL) DIVIDE (DIV) ADD WITH CARRY (ADDC) SUBTRACT WITH BORROW (SUBC)
REGISTRO DE ESTADO
Tema 4-9
COMPARE (CMP)
ALU
REGISTRO DE ESTADO
Instrucciones lgicas(afectan a los bits de estado) Se realizan en cada uno de los bits de los operandos de forma independiente
AND (AND) OR (OR) NOT (NOT) XOR (XOR)
Instrucciones de bit
BIT SET BIT CLEAR
Tema 4-10
Bifurcaciones incondicionales
Sin retorno (JUMP / JMP) Con retorno (CALL)
Bifurcaciones condicionales
Sin retorno (Jcnd) Con retorno (Ccnd)
Tema 4-11
e
Bifurcaciones Condicionales
Tienen dos secuencias distintas
Cuando no se cumple la condicin de bifurcacin no hacen nada Cuando se cumple, modifican el PC, que recibe la direccin de salto
Condiciones de bifurcacin
ZERO (Z) - GREATHER THAN (GT)
Ns con signo (C2)
NOT ZERO (NZ) - GREATHER THAN OR EQUAL (GE) EQUAL (E) - LESS THAN (LT) NOT EQUAL (NE) - LESS THAN OR EQUAL (LE) CARRY (C) - PARITY EVEN (PE) NOT CARRY (NC) - PARITY ODD (PO) Ns sin signo POSITITIVE (P) - HIGHER (H) NEGATIVE (N) - NOT HIGHER (NH) OVERFLOW (V) - LOWER (L) NO OVERFLOW (NV)- NOT LOWER (NL)
Tema 4-12
Lenguaje mquina
Tipos de instrucciones mquina Instrucciones de entrada/salida
Son operaciones de transferencia, con la peculiaridad de que el destino o el origen es un registro de un perifrico
Modos de direccionamiento
Los modos de direccionamiento especifican el lugar concreto donde se encuentran los operandos, donde se almacenar un resultado o la direccin donde hay que saltar si es una instruccin de salto.
Direccionamiento Indirecto
A Registro A Memoria
Direccionamiento relativo
Tema 4-15
Modos de direccionamiento
Ejemplo :
ADD
Tiene 2 operandos: R0 y el n 31
Direccionamiento implcito: Es cuando el operando se encuentra en un registro que est implcitamente especificado en el propio cdigo de operacin Direccionamiento inmediato: La instruccin contiene el operando
Hay mquinas que permiten distintos tamaos de operandos inmediatos
1100 0110
cdigo operacin (ADD)
00011111
operando(31)
Tema 4-16
Modos de direccionamiento
Ejemplo :
Tema 4-17
Modos de direccionamiento
Ejemplo :
Direccionamiento indirecto
La instruccin contiene el registro o direccin de memoria que contiene la direccin del operando
Tema 4-18
Modos de direccionamiento
Ejemplo :
Direccionamiento relativo a registro ndice (direccionamiento indexado) La instruccin contiene el identificador de un registro ndice + un desplazamiento La direccin del operando se forma sumndole al registro ndice el desplazamiento
Tema 4-19
Modos de direccionamiento
1.2. 3.4.5 .-
MOV R3, #50 LOAD R2, /50 SUB 5[R3], R4 ADD [R3], R7 INCR [1000]
Tema 4-20
Tema 4-21
Lenguaje ensamblador
El lenguaje ensamblador permite: Escribir las instrucciones en notacin simblica o nemotcnica, en vez de cdigo hexadecimal o binario Utilizar direcciones de memoria simblicas, en lugar de direcciones binarias absolutas Insertar lneas de comentarios
Tema 4-22
Lenguaje ensamblador
Programa en lenguaje ensamblador (i8085):
INICIO: PILA: .EQU .EQU .ORG JMP .BYTE .BYTE LXI MVI LDA LXI MOV SUB JNZ INR JMP HLT .END 1000H FFFFH INICIO COMIENZO 10H 20H SP,PILA C,0 SUMANDO1 H,SUMANDO2 B,M B FINAL C BUCLE
FINAL:
; ; ; ; ; ; ; ; ; ; ; ; ;
ME SALTO LOS DATOS (NO SON EJECUTABLES) RESERVO UN BYTE Y LO INICIO A 10H RESERVO EL BYTE CONTIGUO Y LO INICIO A 20H INICIALIZA LA PILA C0 A M(SUMANDO1), A=10H HL SUMANDO2 B M(HL), B=20H AA-B TERMINA CC+1 REPITE EL BUCLE DETIENE EL MICROPROCESADOR
Tanto las instrucciones como las directivas deben ocupar una nica lnea en nuestro programa ensamblador, descompuesta en cuatro campos: etiqueta, operacin, operandos y comentario < sentencia > ::= [ etiqueta ] < cdigo > [ operandos ] [ ;comentario ]
Tema 4-24
Programa Fuente
Escrito en lenguaje ensamblador
Ensamblador
Es un traductor
(o fichero listado)
Tema 4-25
C3 05 10 10 20 31 0E 3A 21 46 90 C2 0C C3 76 FF FF 00 03 10 04 10
JMP SUMANDO1: .BYTE SUMANDO2: .BYTE COMIENZO: LXI MVI BUCLE: LDA LXI MOV SUB JNZ INR JMP FINAL: HLT .END
Archivo .lst
19 10 0A 10
Tabla Smbolos
Tema 4-26
Tema 4-27