miércoles, 25 de septiembre de 2013

CONJUNTO DE INSTRUCCIONES.


El juego completo de instrucciones reconocidas por los procesadores intel 8086 a 80286,

junto con los coprocesadores 8087 y 80287, se enlistan en el apendice 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 accesadas 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

count sóo sera váido si este fue declarado con la directiva EQU.


Directos.-


Aquí se debe especificar la dirección de memoria a accesar 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

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

-de propósito especial.


OFFSET expresion.-
 
Regresa el desplazamiento del operando

mov bx, OFFSET dgroup:array

mov bx, offset subrout3

 

SHORT etiqueta.-


Para un salto de menos de 128 bytes

jmp SHORT loop

LENGTH variable.-
 
Regresa el número de elementos de variable según su tipo

mov cx,length array

SIZE variable.-
 
Regresa el tamaño en bytes alojados para variable
mov cx,size array
SEG expresión.-
 
Regresa el valor del segmento para expresión

mov ax, SEG saludo

lunes, 23 de septiembre de 2013

Cuestionario 

1.1Determine la configuración binaria en bits de los siguientes números:

a) 00000110----6
b) 00001110----14
c) 00010110----22
d) 00011100----28
e) 00011110----30

1.2 Sume los siguientes números bianarios

a) 00010101      b) 00111101              c) 00011101                       d) 01010111
    00001101           00101010                 00000011                           00111111
------------------    ---------------------              ------------------                      --------------------
   00100010           01100111                  00100000                         10010110


1.3 halle el complemento a dos de los siguientes números binarios

a) 00010110---> 11101001--------> 11101011
b) 00111101--->11000010--------> 11000011
c) 00111100--->11000011--------->11000111

1.4 Encuentre el valor positivo (absoluto) de los siguientes números  binarios negativos



 a) 11001000           b) 10111101          c) 11111101             d) 01110111
                      1                             1                            1                                1   
---------------               -------------                 --------------                    -------------
     11001001                10111110               11111110                 01110000






1.5 Determine la representación hexadecimal de los valores siguientes:

a) código ASCCI de la letra Q = ALT+81      
b) código ASCCI del número 7= ALT+55
c) 01011101= 93
d) 01110111= 119
1.6 sume los números hexadecimales siguientes :

a) 23A6   b) 51FD                c) 7779                  d) EABE            e) FBAC
    0022        0003                    0887                      26C4                  0CBE
    23C8        5200                    2000                      11182                 1086A

1.7 Determine la representación hexadecimal  de los valores siguientes. Consulte el apéndice   a para ver el método de conversión.

a) 19 = 13
b) 33 = 21
c) 89 = 59
d)  255 = FF
e) 4,095 = FFFh
f) 63,398 = F7A6h


1.8 Proporcione la configuración  ASCII, en bits, de los siguientes características de un byte

a) P = 50 = 01010000
b) p = 70 = 01110000
c) # = 23 = 00100011
d) 5 =35 = 00000101

1.9 ¿Cuál es objetivo del procesador?

Permite el procesamiento de información numérica, es decir, información ingresada en formato binario, así como la ejecución de instrucciones almacenadas en la memoria.

1.10 ¿Cuáles son las dos clases principales de memoria en la PC y cuales, sus principales usos?

Memoria RAM: Contiene los datos o la información obtenidos del disco duro, aunque quede almacenados temporalmente. Es una memoria de lectura y escritura, pero el acceso a los datos es más rápido que en el disco duro. No retiene la información sin electricidad.
Memoria Caché: Es mucho más rápida que la RAM, es capaz de trabajar a la velocidad del microprocesador y almacena los datos que el microprocesador utiliza con más frecuencia.
Memoria CMOS RAM: Almacena la hora, la fecha y los datos básicos de la configuración del PC, la pila evita que estos datos se pierdan cuando el PC está apagado.
Memoria ROM BIOS: contiene una serie de instrucciones almacenadas permanentemente, hace una comprobación inicial al encender el PC, si toso está en orden, la BIOS carga el sistema operativo del disco duro a la memoria principal.

1.11 Muestre como el sistema almacena 012345 hex como un valor de memoria.

 01 23 45 = 45 23 01

1.12 Explique los siguientes

a) Segmento: Es la parte de la rutina de un ordenador digital lo bastante corta para ser completamente almacenada en la memoria interna, y que contiene el código necesario para seleccionar e introducir automáticamente otros segmentos de la rutina.

b) desplazamiento (offset): un offset dentro de un array u otra estructura de datos es un entero que indica la distancia (desplazamiento) desde el inicio del objeto hasta un punto o elemento dado, presumiblemente dentro del mismo objeto.

c) límite de dirección:  Límite que determina la maxima dirección lineal permitida para cada registro de segmento.

1.13

- CS: segmento de código.

- DS: segmento de datos.

- SS: segmento de pila.

b) su tamaño máximo
El tamaño máximo de los registros es 64K.

1.14 Señale el objetivo de cada uno de los tres registros de segmentos.

SEGMENTO DE CODIGO
CS contiene las instrucciones de maquina que son ejecutadas. Por lo comun, la primera instrucción ejecutable esta en el inicio del segmento y el sistema operativo enlaza a esa localidad para iniciar la ejecucion del programa.
SEGEMENTO DE DATOS
DS contiene datos, constantes y areas de trabajo definidos por el programa. El registro DS dierecciona el segmento de datos.  Si su area de datos requiere de mas de 64 k, su programa puede necesitar definir mas de un segmento de datos.
SEGMENTO DE LA PILA

En terminos sencillos, la pila contiene los datos y direcciones que usted necesita guardar temporalmente o para uso de sus “llamadas” subrutinas. El registro del segmento de la pila (SS) direcciona el segmento de la pila.

1.15 Explique que registros se utiliza  para los siguientespropositos:

regstros que se utilizan para las siguientes operaciones:

a) suma y resta
SI : registro indice fuente
DI: registro indice destino

b) contar los ciclos

 CX: Es conocido como el registro contador. Puede contener un valor para controlar el numero de veces que un ciclo se repite o un valor para corrimiento de bits, hacia la derecha o hacia la izquierda.

c) multiplicar y dividir 


AX : es el acumulador principal , es utilizando para operaciones que implican entrada/salida y la mayor parte de la aritmetica.



1.16 Muestre el registro EAX y el tamaño y posicion de AH, AL Y AX.


a)AH: 8 bits

b)AL: 8 bits
c)AX: 16 bits
d)EAX: 32 bits.

1-17 

a)CH: MOV CH,25
b)CL: MOV CL,25
c)CX: MOV CX,25
d)ECX: MOV ECX,25

miércoles, 18 de septiembre de 2013

EJERCICIOS


 A qué tipo de direccionamiento corresponde cada una de las siguientes líneas

1. LDA #100 .-  Direccionamiento inmediato

2. MOVE AL,BL.-  Direccionamiento de registro

3. MOVE DX,CX.- Direccionamiento de registro

4. MOVE AX,DATO.-Direccionamiento directo

5. MOVE AX,[100].-Direcionamiento inmediato

6. MOVE AX,[BP] .-Direccionamiento de registro indirecto
 DEREGISTRO INDIRECTO
7. MOVE AX,COUNT[DI].- registro  indirecto con desplazamiento

1. Complete los siguientes enunciados

a) La memoria de un computador se compone de unidades de almacenamiento llamadas Memoria RAM y Memoria ROM.

b) Byte se agrupa 8 unidades de almacenamiento

c) La agrupación de 4 bits (inferiores y superiores se les llama Nibble inferior 0 a 3 bits, el que comprende del bit 4 al 7 se llama nibble superior.

d) Unidad de control es quien crea y controla el flujo de datos

e) Dispositivos Periféricos, se encarga de transferir datos entre CPU, memoria y periféricos

f) Unidad central de Proceso, se encuentran las diferentes señales encargadas de la sincronización y control del sistema


4. escriba nombre y función de los registros


a)AX AcumuladorPara almacenar resultados, letra o escritura desde o hacia los puertos.

b)BX Registro BaseApuntador base o indice

c)CX Registro ContadorUtilizado en operaciones de iteracion, como un contador que automaticamente se incrementa o decrementa deacuerdo conel tipo de insruccion usada.

d)DX Registro de datosSe usa como puente para el acceso de datos.

e)DS Registro desegmento de datosActua como policia donde se encuentran los datos.

f)ES Registro de segmento extraPermite operaciones sobre cadenas, pero tambien puede ser una extension de DS.

g)SS Registro desegmento de pilaManeja la posicion de memoria donde seecnuentralapila.
h)CS Registro de segmento de codigoAqui es donde seencuentra el codigo ejecutable de cadaprograma.

i)BP Registro de apuntadores baseSe usa para manipular la pilasin afectar al registro desegmentos.

j)SI Registro de indice fuenteManeja bloques de cadenas en memoria, siendo elindice fuente , representala direccion donde seencuentrala cadena.

k)DI Registro indice destinoManeja Bloques de cadenas en memoria, siendo el indice destino, representa la direccion donde sera copida

l)SP Regisro apuntador de pilaApunta a una area especifica de memoria que sirve para almacenar datos bajo la estructura de pila.

m)IP Registro apuntador de siguiente instruccionApunta la siguiente instruccion que sera ejecutada en memoria.

n)F Registro de banderasSe describe el significado de cada bit en este registro.