maquinas computadoras
(Programación 8086 – Parte I)
Departamento de Sistemas Digitales y
Telecomunicaciones
Facultad de Electrotecnia y Computación
Mayo 2012
Acceso a Memoria
Para obtener acceso a memoria podemos usar estos cuatro
registros: BX, SI, DI, BP.
Combinando estos registros dentro del símbolo [ ] , podemos
obtener diferentes localizaciones de memorias.
[BX+SI][BX+DI]
[BP+SI]
[BP+DI]
[SI]
[DI]
d16 (variable offset only)
[BX]
[BX+SI+d8]
[BX+DI+d8]
[BP+SI+d8]
[BP+DI+d8]
[SI + d8]
[DI + d8]
[BP + d8]
[BX + d8]
[BX + SI + d16]
[BX + DI + d16]
[BP + SI + d16]
[BP + DI + d16]
[SI + d16]
[DI + d16]
[BP + d16]
[BX + d16]
Departamento de Sistemas Digitales
2
Para Recordar
Por defecto el registro de segmento
DS es usadopara todos los modos
de direccionamiento excepto
cuando se usa el registro BP, el
cual es usado con el registro de
segmento SS.
Se puede formar todas las
combinaciones validas tomando un
solo elemento de cada columna, o
saltar la columna y no tomar nada.
BX y BP nunca van juntos.
SI y DI nunca van juntos.
Departamento de Sistemas Digitales
BX
SI
+ disp
BP
DIEjemplos:
[BX+5]
[BX+SI]
[DI+BX-4]
3
Tipos de Datos
• Para decirle al compilador el tipo de datos que vamos
a usar, se usan los siguiente prefijos:
– BYTE PTR - para un byte.
– WORD PTR - para una word (two bytes)
• Ejemplo:
– MOV AL, BYTE PTR [BX] ; byte access
– MOV CX, WORD PTR [BX] ; word access
• El ensamblador soporta prefijos mas cortos:
– B. - for BYTE PTR
– W. - for WORDPTR.
Departamento de Sistemas Digitales
4
Conjunto de Instrucciones µP8086
Se llama INSTRUCCIÓN a las palabras reservadas ó
MNEMÓNICOS en ensamblador, los cuales se traducen a
lenguaje máquina para su posterior ejecución por parte de la
CPU.
Existen varios tipos de instrucciones agrupadas en tres
grandes bloques:
Instrucciones de transferencia de información
Instruccioneslógicas - aritméticas
Instrucciones para el control de programa
Departamento de Sistemas Digitales
5
Conjunto de Instrucciones µP8086
INSTRUCCIONES DE TRANSFERENCIA DE DATOS
Código
Función
Operación
MOV
PUSH
PUSHF
POP
POPF
LEA
LDS
LES
Carga byte, palabra o doble palabra
Salva las palabras en la pila
Salva banderas en la pila
Recupera una palabra de la pila
Recupera lasbanderas de la pila
Carga la dirección efectiva
Carga DS y registro de 16 bits con los datos de
memoria de 32 bits
Carga ES y registro de 16 bits con los datos de
memoria de 32 bits
Departamento de Sistemas Digitales
6
La instrucción MOV
• Copia el segundo operando (source) al primer
operando (destination).
• El operando origen puede ser un valor inmediato, un registro
de propósitogeneral o una localidad de memoria.
• El registro destino puede ser un registro de propósito general o
una localización de memoria.
• Ambos operandos deben ser del mismo tamaño, ya sea de un
byte o palabra.
• La instrucción MOV no puede ser usada con los
registros CS and IP.
Departamento de Sistemas Digitales
7
Ejemplo de uso de MOV
ORG 100h
; this directive required for a simple 1segment
.com program.
MOV AX, 0B800h
; set AX to hexadecimal value of B800h.
MOV DS, AX
; copy value of AX to DS.
MOV CL, 'A'
; set CL to ASCII code of 'A', it is 41h.
MOV CH, 11011111b
; set CH to binary value.
MOV BX, 15Eh
; set BX to 15Eh.
MOV [BX], CX
; copy contents of CX to memory at B800:015E
RET
; returns to operating system.
Departamento de Sistemas Digitales
8Variables
• La Syntaxis para una declaración de variable:
– name DB value
– name DW value
• DB - Definición de Byte.
• DW - Definición de Word.
• name - puede ser cualquier combinación de números y
letras, aunque debe iniciar con una letra.
• value - puede ser cualquier valor numérico en
hexadecimal, binario, o decimal), se puede usar el
símbolo "?" para variables no inicializadas....
Regístrate para leer el documento completo.