Anda di halaman 1dari 6

INGENIERA EN SISTEMAS DE INFORMACIN 2013

ARQUITECTURA DE COMPUTADORAS
TRABAJO PRACTICO N 2
Operaciones - Complemento a la Base
1- Hallar el complemento al mdulo a los siguientes nmeros:
a) 099d
b) 056d
c) 999d
d) 900d

e) 0101b
f) 1010b
g) 0100 0000b
h) 0111 1111b

i) 1000 0000b
j) 1111 1111b
k) FFh
l) 01h

m) 7Fh
n) 80h
) 81 h
o) 3Eh

2- a) En un formato de 8 bits (1 byte) cual es el menor y el mayor nmero que se pueden


representar. Expresarlos en decimal, binario y hexadecimal.
b) En un formato de 8 bit (1 byte) con bit de signo, representar el intervalo de nmeros negativos y
positivos en decimal, binario y hexadecimal.
Menor (-)

Mayor(-)

Menor (+)

Mayor (+)

3- Realizar las siguientes operaciones de suma y resta en complemento a dos en formato binario de
8 bits.
Para cada caso indicar si hay acarreo y/o desbordamiento, y si el resultado es correcto o no, e
interpretar el mismo. En caso de dar resultado negativo, hallar la magnitud del mismo.
a) 19 + 92
b) 19 - 92
c) 127 + 1

d) - 128 -1
e) - 128 + 1
f) -128 - 128

g) -12 - 30
h) +127 - 62
i) -127 + 62

4- Realizar las operaciones del ejercicio anterior en hexadecimal con formato de dos dgitos
hexadecimales.
5- a) En un formato de 16 bits (2 bytes una palabra) cual es el menor y el mayor nmero que se
pueden representar. Expresarlos en decimal, binario y hexadecimal.
b) En un formato de 16 bits (2 bytes una palabra) con bit de signo, representar el intervalo de
nmeros negativos y positivos en decimal, binario y hexadecimal.
Menor (-)

Mayor(-)

Menor (+)

Mayor (+)

6) Realizar las siguientes operaciones algebraicas en formato de 16 bits (una palabra) con bit de
signo.
Expresar si hay acarreo, desbordamiento y como se debe interpretar el resultado. En caso de dar
resultado negativo, hallar la magnitud del mismo.
a) FFB4h + 4Ch
b) FFFFh + FFFFh
c) 7FFFh + 0001h
d) 7FFFh + 8000h
e) 8000h + 0001h

f) 8000h +8000h
g) 00A1 + D001
h) 532A + EE01
i) EBC0 + F321
j) 0A13 + 1A03

7) Realizar los ejercicios 3 (tres) y 6 (seis) utilizando el Debug.


Ing. Juan Carlos Ansaldi

INGENIERA EN SISTEMAS DE INFORMACIN 2013


ARQUITECTURA DE COMPUTADORAS
Las operaciones de ambos ejercicios se deben tratar como sumas (siempre utilizar la instruccin
ADD). Para el caso del ejercicio 3 (tres) las restas pasarlas a sumas hallando el complemento del
nmero negativo.
Copiar y pegar los resultados en un procesador de texto como se indica en el siguiente ejemplo:
AX=0013BX=005CCX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=11F5ES=11F5SS=11F5CS=11F5IP=0100 NV UP EI PL ZR NA PE NC
11F5:0100 00D8
ADD AL,BL
-T
AX=006FBX=005CCX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=11F5ES=11F5SS=11F5CS=11F5IP=0102 NV UP EI PL NZ NA PE NC

Utilizacin del "DEBUG" para Visualizar Operaciones a Nivel del


Microprocesador.
Introduccin:
El programa "Debug" del DOS se utiliza para la depuracin de programas, pues permite ejecutar
un programa instruccin a instruccin y observar como funciona y que valores toman los distintos
registros del microprocesador.
Registros de la familia del 8086:
El microprocesador 8086 se compone de catorce registros de una palabra (16 bits)
Cuatro registros de datos de almacenamiento temporal:
AX: Acumulador. Registro principal utilizado para instrucciones aritmticas.
BX: Base. Se utiliza para indicar un desplazamiento (offset).
CX: Contador. Se utiliza como contador de bucles y en operaciones de tipo repetitivo.
DX: Dato. Se utiliza tambin en operaciones aritmticas.
Los registros de almacenamiento temporal del 8086, cuya longitud es de una palabra, se pueden
dividir en dos bytes, conocidos como byte alto y byte bajo, indicandose por medio de la letra H el
byte alto y de la letra L el byte bajo, de esta manera, el acumulador lo podemos representar de la
siguiente manera:
AX

AH

AL

Lo mismo es vlido para los registros: BX, CX y DX.


Cuatro registros de segmentos:
Contienen la direccin de comienzo de ciertos segmentos de memoria.
CS: Registro de segmento de cdigo (Code Segment)
DS: Registro de segmento de datos (Data Segment)
SS: Registro de segmento de pila (Stack Segment)
ES: Registro de segmento extra (Extra Segment)
Dos registros punteros de pila:
SP: Puntero de la pila (Stack Pointer)
BP: Puntero base (Base Pointer)
Dos registros ndice:
Ing. Juan Carlos Ansaldi

INGENIERA EN SISTEMAS DE INFORMACIN 2013


ARQUITECTURA DE COMPUTADORAS
SI: Indice fuente (Source Index)
DI: Indice destino (Destination Index)
Un registro puntero de instrucciones:
IP: Puntero de instruccin o contador del programa (Instruction Pointer)
Este registro contiene el desplazamiento de la siguiente instruccin a ejecutar respecto al segmento
de cdigo del programa en ejecucin.
En conjuncin con el registro CS, indica la direccin completa de la siguiente instruccin a
ejecutar, CS:IP.
Un registro de estado o banderas (Flags)
Cada flags es un bit y se utiliza para registrar la informacin de estado y de control de las
operaciones del microprocesador. Hay nueve (9) Flags, los restantes siete (7) bits no se usan.
Seis flags de estado:
CF (Carry Flag): Bandera de acarreo.
OF (Overflow Flag): Bandera de desbordamiento.
ZF (Zero Flag) : Bandera de resultado cero.
SF (Sign Flag): Bandera de signo.
PF (Parity Flag): Bandera de paridad.
AF (Aauxiliar Flag): Bandera auxiliar.
Tres flags de control:
DF (Direcction Flag) : Bandera de direccin.
IF (Interrup Flag): Bandera de interrupciones.
TF (Trag Flag): Bandera de atrape o modo de ejecucin paso a paso.
Segmentos, registros asociados, direcciones
El direccionamiento de memoria se realiza por una direccin "segmentada" en la que se utilizan
dos registros:
Segmento
Desplazamiento (Offset)
De manera que una direccin completa ser: Segmento:Desplazamiento.
Un programa cuenta de cuatro tipo de segmentos:
Segmento de cdigo: Cada instruccin se direcciona mediante:
Registro de Segmento: CS
Registro de Desplazamiento: IP
Segmento de datos: Los datos se direccionan mediante:
Registro de Segmento: DS
Registro de Desplazamiento: BX, SI o DI
Segmento de pila: La pila se direcciona mediante:
Registro de Segmento: SS
Registro de Desplazamiento: SP o BP
Segmento extra: Igual al de datos, sustituyendo DS por Es:
Registro de Segmento: ES
Registro de Desplazamiento: BX, SI o DI

Ing. Juan Carlos Ansaldi

INGENIERA EN SISTEMAS DE INFORMACIN 2013


ARQUITECTURA DE COMPUTADORAS
CLCULOS UTILIZANDO "DEBUG"
Utilizaremos los registros del microprocesador como variables y realizaremos con ellos distintas
operaciones, observando los resultados y el registro de estado. Se debe tener en cuenta que la
representacin de los clculos binarios del 8086 son expresados por "debug" como nmeros
hexadecimales. Al ejecutar el programa DEBUG este nos presentar su indicador: Escribiendo el comando R (Register) Registro, nos mostrar el contenido de todos los registros.
a) Binarios de 8 bit, un byte (dos dgitos hexadecimales)
Para realizar la aritmtica de 8 bits utilizando el debug, se debe recordar que los registros
temporales o de uso general AX, BX, CX y DX se pueden dividir en dos bytes, de esta manera,
quedan: AX= AH:AL, BX=BH:BL; CX=CH:CL; DX=DH;DL.
Suma de dos bytes
Si queremos sumar dos bytes, podemos ingresarlos en AL y BL, y luego el resultado se guardar
en AL. Los pasos a seguir son:
1. Introducimos el primero en AL por medio del comando R AX, teniendo en cuenta que el primer
byte (los dos primeros dgitos hexadecimales) se deben poner en cero.
2. Introducimos el segundo en BL por medio del comando R BX, con la misma consideracin que
en el caso anterior.
3. Introducimos la instruccin de suma ADD AL, BL (cdigo Hexa: 00 D8) en la direccin
0100h por medio del comando E 0100 (escribir en posicin XXXXh).
4. Ejecutamos el cdigo por medio del comando T (Trace) Ejecutar.
5. El resultado de la operacin se observa en el registro AL.
Ejemplo 1)
Sumar los siguientes bytes y observar que pasa con el registro de estado.
3Ah + 09Ah
FFh + 03h
70h + 3Ah
FFh + 01h
Practicar con distintos pares de bytes.
Resta de dos bytes
La instruccin de resta es SUB AL, BL (Cdigo Hexa: 28 D8). Los pasos a seguir son similares al
punto anterior, modificando el cdigo de la operacin.
Ejemplo 2)
Restar los siguientes bytes y observar que pasa con el registro de estado.
3Ah - 9Ah
00h - 01h
FFh - FFh
70h - 80h
FFh - 02h
Practicar con distintos pares de nmeros.
b) Binarios de 16 bit, una palabra (cuatro dgitos hexadecimales)
Suma de dos nmeros:
1. Introducimos el primero en AX por medio del comando R AX
2. Introducimos el segundo en BX por medio del comando R BX
3. Introducimos la instruccin de suma ADD AX, BX (cdigo Hexa: 01 D8) en la direccin
0100h por medio del comando E 0100 (escribir en posicin XXXXh).
4. Ejecutamos el cdigo por medio del comando T (Trace) Ejecutar.
5. El resultado de la operacin se observa en el registro AX.
Ejemplo 3)
Sumar los siguientes nmeros y observar que pasa con el registro de estado.
Ing. Juan Carlos Ansaldi

INGENIERA EN SISTEMAS DE INFORMACIN 2013


ARQUITECTURA DE COMPUTADORAS
03A7h + 092Ah
FFFFh + 0002h
7000h + 6000h
FFFFh + 0001h
Practicar con distintos pares de nmeros.
Resta de dos nmeros:
La instruccin de resta es SUB AX, BX (Cdigo Hexa: 29 D8). La instruccin de resta es SUB
AL, BL (Cdigo Hexa: 28 D8). Los pasos a seguir son similares al punto anterior, modificando el
cdigo de la operacin.
Ejemplo 4)
Restar los siguientes nmeros y observar que pasa con el registro de estado.
03A7h - 092Ah
0000h - 0001h
FFFFh - FFFFh
7000h - 8000h
FFFFh - 0002h
Practicar con distintos pares de nmeros.
Multiplicacin de dos nmeros:
La instruccin de multiplicacin es MUL BX (Cdigo Hexa: F7 E3)
El resultado se guarda en el par de registros DX: AX
Ejemplo 5)
Multiplicar los siguientes nmeros y observar que pasa con el registro de estado.
7C4Bh * 0100h
0002h * 0000h
7000h * 8000h
1FFFh * EFFFh
FFFFh * FFFFh
Practicar con distintos pares de nmeros.
Divisin de dos nmeros:
La instruccin de divisin es DIV BX (Cdigo Hexa: F7 F3)
El dividendo se guarda en el par de registros DX:AX
El resultado se guarda en el registro AX y el resto en DX
Ejemplo 6)
Dividir los siguientes nmeros:
7C4B12 / 100
FFFFFFFF / 100
E400/ 10
Practicar con distintos pares de nmeros.

Visualizacin de los Flags utilizando el Debug


El Debug muestra 8 flags por medio de un cdigo de dos letras, el cual indica la condicin en que
el mismo se encuentra. Para visualizar los flags, se debe escribir:
RF
A continuacin se detalla por medio de una tabla, los estados que pueden asumir las banderas.
Flags ( Banderas)

Set

Clear

OF Overflow (Si/No)
DF Direcction (Decrem/Increm)
IF Interrup (Hab/Desab)
SF Sign (Negat./Posit)
ZF Zero (Si/No)
AF Auxiliar (Si/No)
PF Parity (Even/Odd)
CF Carry (Si/No)

OV
DN
EI
NG
ZR
AC
PE
CY

NV
UP
DI
PL
NZ
NA
PO
NC

Ing. Juan Carlos Ansaldi

INGENIERA EN SISTEMAS DE INFORMACIN 2013


ARQUITECTURA DE COMPUTADORAS
Sintaxis de Debug
DEBUG [[unidad:][ruta]archivo [archivoprueba-parmetros]]
[unidad:][ruta]archivo
archivoprueba-parmetros

Especifica el archivo que desea comprobar.


Especifica la informacin de lnea de comandos
requerida por el archivo a comprobar.

Comandos de Debug
Comando
ensamblar
comparar
volcar
introducir
llenar
ir
hexadecimal
info/entrada
cargar
mover
nombre
info/salida
continuar
salir
registro
buscar
seguir
desensamblar
escribir
asignar-memoria expandida
desasignar-memoria expandida
trazar pginas-memoria expandida
mostrar estado-memoria expandida

Sintaxis
A [direccin]
C intervalo de direcciones
D [intervalo]
E direccin [lista]
F lista de rango
G [=direccin] [direcciones]
H valor1 valor2
I puerto
L [direccin] [unidad] [primersector] [nmero]
M intervalo de direcciones
N [ruta\nombre] [arglist]
O byte de puerto
P [=direccin] [nmero]
Q (cierra la sesin sin guardar en archivo)
R [registro]
S lista de rango
T [=direccin] [valor]
U [intervalo] (Separado por coma)
W [direccin] [unidad] [primersector] [nmero]
XA [#pginas]
XD [identificador]
XM [Lpgina] [Ppgina] [identificador]
XS

Ing. Juan Carlos Ansaldi

Anda mungkin juga menyukai