ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Uso Del Debug En Microprocesadores


Enviado por   •  18 de Agosto de 2011  •  8.043 Palabras (33 Páginas)  •  1.025 Visitas

Página 1 de 33

LABORATORIO DE MICROPROCESADORES

Temas:

- Conjunto de instrucciones.

- Uso del Debug

- Programación básica en lenguaje ensamblador.

- Programación en lenguaje ensamblador del 8086

1.- CONJUNTO DE INSTRUCCIONES.

El juego completo de instrucciones reconocidas por los procesadores Intel 8086 a 80286,mas adelante se darán a conocer mas instrucciones del 8086 en forma mas detallada, junto con los coprocesadores 8087 y 80287, se enlistan en el apéndice E. Como puede verse en dicho apéndice, la mayoría de las instrucciones requieren algunos operandos o expresiones para trabajar, y lo cual es válido también para las directivas. Los operandos representan valores, registros o localidades de memoria a ser accedidas de alguna manera. Las expresiones combinan operandos y operadores aritméticos y lógicos para calcular en valor o la dirección a acceder.

Los operandos permitidos se enlistan a continuación:

Constantes.- Pueden ser números, cadenas o expresiones que representan un valor fijo. Por ejemplo, para cargar un registro con valor constante usaríamos la instrucción MOV indicando el registro y el valor que cargaríamos dicho registro.

mov ax,9

mov al,´c´

mov bx,65535/3

mov cx,count

para el último ejemplo count sólo será válido si este fue declarado con la directiva EQU.

Directos.- Aquí se debe especificar la dirección de memoria a acceder en la forma segmento:offset.

mov ax,ss:0031h

mov al,data:0

mov bx,DGROUP:block

Relocalizables.- Por medio de un símbolo asociado a una dirección de memoria y que puede ser usado también para llamados.

mov ax, value

call main

mov al,OFFSET dgroup:tabla

mov bx, count

para el último ejemplo count sólo será válido si fue declarado con la directiva DW.

Contador de localización.- Usado para indicar la actual localización en el actual segmento durante el ensamblado. Representado con el símbolo $ y también conocido como centinela.

help DB ´OPCIONES´,13,10

F1 DB ´ F1 salva pantalla´,13,10

.

.

.

F10 DB ´ F10 exit´,13,10,´$

DISTANCIA = $-help

Registros.- Cuando se hace referencia a cualquiera de los registros de propósito general, apuntadores, índices, o de segmento.

Basados.- Un operador basado representa una dirección de memoria relativa a uno de los registros de base (BP o BX). Su sintaxis es:

desplazamiento[BP]

desplazamiento[BX]

[desplazamiento][BP]

[BP+desplazamiento]

[BP].desplazamiento

[BP]+desplazamiento

en cada caso la dirección efectiva es la suma del desplazamiento y el contenido del registro.

mov ax,[BP]

mov al,[bx]

mov bx,12[bx]

mov bx,fred[bp]

Indexado.- Un operador indexado representa una dirección de memoria relativa a uno de los registros índice (SI o DI). Su sintaxis es:

desplazamiento[DI]

desplazamiento[SI]

[desplazamiento][DI]

[DI+desplazamiento]

[DI].desplazamiento

[DI]+desplazamiento

en cada caso la dirección efectiva es la suma del desplazamiento y el contenido del registro.

mov ax,[si]

mov al,[di]

mov bx,12[di]

mov bx,fred[si]

Base-indexados.- Un operador base-indexado representa una dirección de memoria relativa a la combinación de los registros de base e índice. Su sintaxis es:

desplazamiento[BP][SI]

desplazamiento[BX][DI]

desplazamiento[BX][SI]

desplazamiento[BP][DI]

[desplazamiento][BP][DI]

[BP+DI+desplazamiento]

[BP+DI].desplazamiento

[DI]+desplazamiento+[BP]

en cada caso la dirección efectiva es la suma del desplazamiento y el contenido del registro.

mov ax,[BP][si]

mov al,[bx+di]

mov bx,12[bp+di]

mov bx,fred[bx][si]

Estructuras.- Su sintaxis es variable.campo. variable es el nombre con que se declaró la estructura, y campo es el nombre del campo dentro de la estructura.

date STRUC

mes DW ?

dia DW ?

aa DW ?

date ENDS

actual date ‹´ja´,´01´,´84´›

mov ax,actual.dia

mov actual.aa, ´85´

Operadores y expresiones.- Se cuenta con los siguientes operadores:

-aritméticos

expresión1 * expresión2

expresión1 / expresión2

expresión1 MOD expresión2

expresión1 + expresión2

expresión1 - expresión2

+ expresión

- expresión

-de corrimiento

expresión1 SHR contador

expresión1 SHL contador

-relacionales

expresión1 EQ expresión2

expresión1 NE expresión2

expresión1 LT expresión2

expresión1 LE expresión2

expresión1 GT expresión2

expresión1 GE expresión2

- de bit

NOT expresión

expresión1 AND expresión2

expresión1 OR expresión2

expresión1 XOR expresión2

-de índice

[expresión1] [expresión2]

ejemplos:

mov al, string[3]

mov string[last],al

mov cx,dgroup:[1] ; igual a mov cx,dgroup:1

-de apuntador

tipo PTR expresión

tipo puede ser BYTE ó 1, WORD ó 2, DWORD ó 4, QWORD ó 8, TBYTE ó 10, NEAR ó 0FFFFh, FAR ó 0FFFEh. Ejemplos:

call FAR PTR subrout3

mov BYTE ptr [array], 1

add al, BYTE ptr [full_word]

-de nombre de campo

estructura.campo

ejemplos:

inc month.day

mov time.min,0

mov [bx].dest

...

Descargar como (para miembros actualizados) txt (52 Kb)
Leer 32 páginas más »
Disponible sólo en Clubensayos.com