Вы находитесь на странице: 1из 5

1 Ejercicios sobre debug

1.1 Explique los modos de direccionamiento, ejemplifique cada


caso
1.1.1 Direccionamiento inmediato
En la instruccin est incluido directamente el operando.
En este modo el operando es especificado en la instruccin misma. En otras
palabras, una instruccin de modo inmediato tiene un campo de operando
en vez de un campo de direccin. El campo del operando contiene el
operando actual que se debe utilizar en conjunto con la operacin
especificada en la instruccin. Las instrucciones de modo inmediato son
tiles para inicializar los registros en un valor constante.
Cuando el campo de direccin especifica un registro del procesador, la
instruccin se dice que est en el modo de registro.
Su valor es fijo, por lo que se suele utilizar en operaciones aritmticas o
para definir constantes y variables. Como ventaja, no se requiere acceso
adicional a memoria para obtener el dato, pero el tamao del operando est
limitado por el tamao del campo de direccionamiento.
Las desventajas principales son que el valor del dato es constante y el rango
de valores que se pueden representar est limitado por el tamao de este
operando.
Lenguaje ensamblador
MOV BL,44
MOV AX,44H
MOV SI,0
MOV CH,100
MOV AL,`A
MOV AX,`AB
MOV CL,11001110B

Tamao
8 bits
16 bits
16 bits
8 bits
8 bits
16 bits
8 bits

Copia
Copia
Copia
Copia
Copia
Copia
Copia

Operacin
el 44 decimal (2CH) en BL.
el 0044H en AX.
000H en SI.
el 100 decimal (64H) en CH.
el carcter ASCII A en AL.
los caracteres ASCII BA en AX.
el 11001110 binario en CL.

1.1.2 Direccionamiento indexado


en este caso con los registros SI o DI, no pudindose utilizar otros registros.
EL registro SI utiliza como segmento por defecto el de datos DS. El registro
DI utiliza como segmento por defecto el de datos DS. Si se quieren usar
otros segmentos diferentes a los asignados por defecto, se debe de
especificar.

1.1.3 Direccionamiento directo


El direccionamiento directo o absoluto consiste en indicar una direccin
absoluta (segmento:desplazamiento) con la que quiero trabajar en mi
instruccin, por ejemplo con la instruccin mov podremos utilizar:
MOV AX,[1234h], esta instruccin recoger el dato del segmento de datos
con un offset 1234h y lo copiar en AX, tambin se podra haber utilizado el
direccionamiento absoluto como destino haciendo: MOV [1234h],AX, en este
caso se copiar el contenido del registro AX en la posicin de memoria
indicada por DS:1234h.
Tambin se puede utilizar la directiva DW de la siguiente forma:

Dato DW 1234h MOV AX, Dato

Para segmentos diferentes al de datos, debo especificar el segmento en la


instruccin:

MOV AX,ES:[1234h] o Dato DW 1234h MOV AX,ES:Dato

1.1.4 Direccionamiento de base indexado


En l participan dos registros uno actuando como base (BX o BP) y otro
como ndice (SI o DI), a cuya suma se le aade tambin un valor de
desplazamiento para obtener la direccin de memoria que contiene el dato
que se solicita, la forma de escribirlo es anloga a la anterior, slo que
ahora la suma estar compuesta por tres elementos.

[BX][SI] tiene por segmento por defecto a DS.


[BX][DI] tiene por segmento por defecto a DS.
[BP][SI] tiene por segmento por defecto a SS.
[BP][DI] tiene por segmento por defecto a SS.

Si se quieren usar otros segmentos diferentes a los asignados por defecto,


se debe de especificar.
Ejemplos:

MOV
MOV
MOV
MOV
MOV

AX,[BX][SI]+4
AX,[BX+4][SI]
AX,[BX+DI+4]
AX,[BX][DI+4]
AX,4[BP][DI]

1.2 Mencione los registros de propsito general


Los registros de propsito general son AX, BX, CX y DX.

1.3 Explique los registros ndice


Los registros SI y DI estn disponibles para direccionamiento indexado y
para sumas y restas.

1.3.1 Registro SI
El registro ndice fuente de 16 bits es requerida por algunas operaciones con
cadenas (de caracteres). En este contexto, el SI est asociado con el registro
DS. Los procesadores 80386 y posteriores permiten el uso de un registro
ampliado de 32 bits, el ESI.

1.3.2 Registro DI
El registro ndice destino tambin es requerido por algunas operaciones con
cadenas de caracteres. En este contexto, el DI est asociado con el registro
ES. Los procesadores 80386 y posteriores permiten el uso de un registro
ampliado de 32 bits, el EDI.

1.4 Describa los registros de segmento y dnde son utilizados


Un registro segmento tiene 16 bits de longitud y facilita un rea de memoria
para direccionamiento conocida como el segmento actual.

1.4.1 Registro CS
El DOS almacena la direccin inicial del segmento de cdigo de un programa
en el registro CS. Esta direccin de segmento, ms un valor de
desplazamiento en el registro apuntador de instruccin (IP), indica la
direccin de una instruccin que es buscada para su ejecucin.

1.4.2 Registro DS
La direccin inicial de un segmento de datos de programa es almacenada en
el registro DS. En trminos sencillo, esta direccin, ms un valor de
desplazamiento en una instruccin, genera una referencia a la localidad de
byte especfico en el segmento de datos.

1.4.3 Registro SS
El registro SS permite la colocacin en memoria de una pila, para
almacenamiento temporal de direcciones y datos. El DOS almacena la
direccin de inicio del segmento de pila de un programa en el registro SS.
Esta direccin de segmento, ms un valor de desplazamiento en el registro
del apuntador de pila (SP), indica la palabra actual en la pila que est siendo
direccionada.

1.4.4 Registro ES
Algunas operaciones con cadenas de caracteres (datos de caracteres)
utilizan el registro extra de segmento para manejar el direccionamiento de
memoria. En este contexto, el registro ES est asociado con el registro DI
(ndice). Un programa que requiere el uso del registro ES puede inicializarlo
con una direccin de segmento apropiada.

1.4.5 Registro FS y GS
Son registros extra de segmento en los procesadores 80386 y posteriores.

1.5 De las siguientes instrucciones explique la lgica de la


instruccin y diga si la sintaxis es correcta, en caso de que
no sea correcta, explique por qu y d un ejemplo correcto
1.5.1 ADD[300],200
ADD realiza la suma, y guarda el resultado en el primero de ellos. Admiten
todos los tipos de direccionamiento (excepto que ambos operando estn en
memoria):

ADD
ADD
ADD
ADD
ADD

reg,reg
mem,reg
reg,mem
reg,inmediato
mem,inmediato

La expresin es casi correcta que tendra la forma de ADD mem,inmediato;


pero la mem no est bien definida. Una expresin correcta sera:

ADD [EBX],200; carga 200 en la direccin apuntada por EBX.

1.5.2 XCHG BX,DX


XCHG realiza el intercambio entre los valores de los operando. Puede tener
operando en registros y en memoria:

XCHG reg, mem


XCHG reg, reg
XCHG mem, reg

Por lo tanto, la expresin est correcta.

1.5.3 JMP 220


JMP realiza un salto incondicional a la direccin especificada. Esta expresin
tiene la forma de:

JMP inmediato

1.5.4 MOV CX,AL


MOV realiza transferencia de datos, este es un tipo de transferencia de
registro. La expresin est correcta.

1.5.5 MUL AX,DX


MUL realizan la multiplicacin. La expresin est incorrecta, la forma
correcta sera:

MOV AX,5
MOV BX,6
MUL BX

1.5.6 CMP AL,F5


CMP realiza la resta de los dos operando (como la instruccin SUB) pero no
afecta a ninguno de ellos, slo afecta al registro de estado. Admite todos los
modos de direccionamiento, excepto los dos operando en memoria:

CMP
CMP
CMP
CMP
CMP

reg,reg
reg,mem
mem,reg
reg,inmediato
mem,inmediato

La expresin est correcta.

1.5.7 JGE DH
JGE realiza un salto condicional, se toma en cuenta el signo. Salta si es ms
grande o igual osalta si no es menor que.
La expresin est correcta.

1.5.8 SBB AL,[SI]


SBB realiza la resta con acarreo de dos operandos y guarda el resultado en
el primero de ellos. Admite todos los modos de direccionamiento, excepto
dos operando en memoria:

SBB
SBB
SBB
SBB
SBB

reg,reg
mem,reg
reg,mem
reg,inmediato
mem,inmediato

La expresin es correcta.

1.6 Explique las instrucciones utilizadas y su sintaxis


1.6.1 MOV AX,[BX]
Realiza la trasferencia de datos del operando de origen (segundo) al destino
(primero). Esta expresin obedece a la forma MOV registro,memoria; donde
[BX] indica una posicin de memoria la cual se transfiere el dato al registro
AX.

1.6.2 SUB CX,10


Realiza la resta y guarda el resultado en el primero de ellos. Esta expresin
obedece a la forma SUB registro,inmediato; donde a CX se le resta el dato
inmediato (10).

1.6.3 CMP AX,BX


Realiza la resta de dos operandos (como la instruccin SUB) pero no afecta a
ninguna de ella, slo afecta al registro de estado. Esta expresin obedece a
la forma CMP registro,registro; donde se le resta BX a AX.

1.6.4 XOR DI,[BX+SI+100]


XOR realiza la operacin lgica de O exclusiva de dos operandos,
guardando el resultado en el primero de ellos. Esta operacin obedece a la
forma XOR registro,memoria.

1.7 Realizar un programa que obtenga un dato de la direccin


200, si el dato obtenido es 1, obtener el dato que se
encuentre en la direccin 201, sumar esa cantidad de datos
(considerar cada dato de 1 byte) con la informacin que se
encuentre a partir de la 300; si el dato obtenido es 2, restar
lo que est en la 300 con la 301.

Вам также может понравиться