3a LMaquina
3.Lenguaje Máquina
1.Visión del Programador
2.Formato de las Instrucciones
3.Modos de Direccionamiento
4.Instrucciones Típicas
5.Un Ejemplo: Intel 8086
(prácticas)
Arquitectura de Computadores
Lenguaje Máquina - 1
En el capítulo anterior hemos visto la interfaz hardware que ofrece la CPU, esto es, los
elementos que ofrece para conectarla con el resto de loscomponentes de un ordenador.
Ahora abordaremos la interfaz software, o lo que es lo mismo, lo que necesitan
saber los programadores o constructores de compiladores para poder escribir programas
capaces de ejecutarse en la CPU.
Esta interfaz software muestra aspectos como el repertorio y formato de las
instrucciones que ofrece, con sus variados modos de direccionamiento para acceso
a los operandos. Peropara poder escribir programas para una CPU también se
necesita conocer otros aspectos como los registros internos, estructura o visión de la
memoria y los tipos de datos que maneja directamente la ALU.
En paralelo (en las prácticas) se trabajará con un procesador concreto: el procesador Intel
8086 utilizando el emulador emu8086.
Visión del Programador
Lenguaje Máquina
Visión del
CPU de n bits:registros
Hardware PC
SP
Memoria
0x0000
0x0001
...
0x0400
SR
R0
0x0B00
...
0x1000
prog.
datos
2n
Rn
Bus
Datos
(m
bits)
Bus
Dir.
(n bits)
0x10FF
0xFFFF
m bits
La Memoria: organizada como un vector de celdas del mismo tamaño y de direcciones secuenciales
Arquitectura de Computadores
Lenguaje Máquina - 2
El programador más inmediato de un ordenador trabaja a muy bajo nivel, pues ve elhardware muy de cerca. Los programas los tiene que escribir en lenguaje máquina
(formado por secuencias de bits, expresado en hexadecimal) o, normalmente, en
ensamblador, es decir, una representación nemotécnica del lenguaje máquina en la
que cada instrucción ensamblador se corresponde con una instrucción máquina (se suele
representar en binario/hexadecimal).
¿Qué tiene que conocer esteprogramador de ensamblador o de lenguaje máquina para
escribir programas para el ordenador? La respuesta es “Algo de hardware y algo de
software”.
Algo de hardware:
●
Algunos detalles de la CPU:
✔
✔
●
Registros generales y de control (Contador de Programa (PC-Program
Counter), Puntero de Pila (Stack Pointer-SP), Registro de Estado, ...).
Tamaño de los registros generales, para saber el rango de losnúmeros
que se pueden manejar.
Tamaño de la memoria
…Visión del Programador
Lenguaje Máquina
Visión del Software
move #3,R2
add R2,R3
Pila
Código Máquina
Nemotécnico
11000111
00110110
($C7)
($36)
01100110
($66)
E1
50
2B
9A
...
...
sub #1,R2
Pila: segmento de memoria utilizado por la ALU o por el
programador para almacenar temporalmente los datos que se
están manipulando.
LIFO: Last InFirst Out
Arquitectura de Computadores
LIFO
- Meter
- Sacar
Lenguaje Máquina - 3
2) Algo de software:
●
El juego de instrucciones
●
Organización de la pila (si la hay).
Estos elementos de hardware y de software son con los que cuenta el programador para
escribir sus programas, o lo que es lo mismo, ésta es la visión del programador del
ordenador básico.
En resumen, cuenta con una memoriadonde almacena su programa (con las instrucciones
y los datos) y una CPU que es capaz ejecutar las instrucciones del programa, ayudándose
para ello de registros internos a los que trae los operandos desde la memoria
principal, y de una pila para guardar ciertos datos temporales.
Puesto que ya conocemos la estructura básica de una CPU, en este capítulo vamos a
ocuparnos del lenguaje máquina, esdecir, del formato que pueden tener las instrucciones
máquina, de los modos de direccionamiento disponibles para acceder a los operandos
indicados en las instrucciones y, por supuesto, de los distintos tipos de instrucciones que
suelen ofrecer los procesadores de propósito general (al menos los de tipo CISC).
Al final del capítulo particularizaremos todo esto para el microprocesador de INTEL 8086...
Regístrate para leer el documento completo.