Vous êtes sur la page 1sur 4

GUIA DE LABORATORIO N 3

3.1. Indique como se almacena en memoria el siguiente registro

07

00
Memoria

Variables
3.2. Copia el cdigo siguiente en el emulador
#MAKE_COM#
ORG 100h
MOV Dl, 5
MOV AL, va1
MOV BX, vA2
RET ; para el programa.
Va1 DB 2
vA2 DW 2234h
END
3.2.1 Cules son los tipos de variables que admite el compilador?
DB Y DW
3.2.12 Que significa DB
DEFINE BYTE USA BITS DEL 0 AL 7
Que significa DW
DEFIDE WORD USA BITS DE 8 AL 16
3.2.3. El Compilador distingue maysculas de minsculas?
no
3.2.4. Cul es la direccin de memoria de Va1?
010Ah
3.2.5. Cul es la direccin de memoria de VA2?
010Bh
3.2.6. Cul es la direccin completa de Va1?
0B560010Ah
3.2.7. Cul es la direccin completa de VA2?
0B560010Bh

3.2.8. Qu significa offset?


DESPLAZAMIENTO QUE VA HACIENDO EN MEMORIA
3.2.9. Cul es el offset de 01 y C3?
01-----0104
C3----0109
3.2.10. Qu significa ORG 100h
Pone el contador de posiciones de ensamblador, que indica el ofset donde se deposita la
instruccion
3.2.11. Por que un fichero ejecutable es cargado en el offset 100h?
Es un templete y siempre se va a almacenar en la 100h

Arrays (Vectores)
#make_BIN#
; Calcula la suma de elementos del array V1
MOV CX, 5 ; Nmero de elementos
next: ADD AL, V1[BX] ; sum elements:
INC BX ; next byte:
LOOP next ; loop until CX=0:
HLT
V1 DB 4, 3, 2, 1, 0 ; variables
4.1. Que es un vector (investigue en Internet)?
En programacin, una matriz o vector (llamados en ingls arrays) es una zona de
almacenamiento contiguo, que contiene una serie de elementos del mismo tipo, los
elementos de la matriz. Desde el punto de vista lgico una matriz se puede ver como un
conjunto de elementos ordenados en fila (o filas y columnas si tuviera dos dimensiones). En
principio, se puede considerar que todas las matrices son de una dimensin, la dimensin
principal, pero los elementos de dicha fila pueden ser a su vez matrices (un proceso que
puede ser recursivo), lo que nos permite hablar de la existencia de matrices
multidimensionales, aunque las ms fciles de imaginar son los de una, dos y tres
dimensiones.

Estas estructuras de datos son adecuadas para situaciones en las que el acceso a los datos se
realice de forma aleatoria e impredecible. Por el contrario, si los elementos pueden estar
ordenados y se va a utilizar acceso secuencial sera ms adecuado utilizar una lista, ya que
esta estructura puede cambiar de tamao fcilmente durante la ejecucin de un programa.

Desde Emu8086 de clic en el icono de help posteriormente en Emu8086 reference


y en Complete 8086 instruction set
4.2. Para que se utiliza la instruccin HLT?
Halt the System.
Example:
MOV AX, 5
HLT

C ZSOPA
unchanged
4.3. Para que se utiliza la instruccin LOOP?
He aqu el equivalente al FOR-TO-NEXT en Ensamblador, se trata de la
orden LOOP. Lo que hace esta orden es comparar CX con cero; si es igual,
sigue adelante, si no lo es, vuelve al lugar que se indica en su operando
decrementando CX en uno. Por lo tanto, CX ser un contador de las veces
que ha de repetirse el bucle. Veamos un ejemplo:
MOV CX,0005h
bucle: INC DX
CMP DX,0000h
JE Acaba
LOOP bucle
Acaba: ...
4.4. Para que se utiliza la instruccin INC?
Increment.
Algorithm:
operand = operand + 1
Example:
MOV AL, 4
INC AL
; AL = 5
RET

Z SOPA
r r r r r

CF - unchanged!
5.5 que pasa si cambiamos MOV CX, 3?
El ciclo se realiza solo 3 veces en lugar de 5
6.- cual es la sintaxis de LOOP?
CX = CX - 1
if CX <> 0 then
o jump
else
o

no jump, continue

Example:
include 'emu8086.inc'
#make_COM#
ORG 100h
MOV CX, 5
label1:
PRINTN 'loop!'
LOOP label1
RET

C ZSOPA
unchanged

Realice el ejemplo de Complete 8086 instruction set, de LOOP


Ejecute el programa y describa lo que esta realizando
compara CX con cero; si es que es igual,
sigue adelante, y si no lo es, regresa al lugar que se indica en su operando
decrementando CX en uno. Asi que, CX ser un contador de las veces
que ha de repetirse el ciclo. Por lo que se repite print loop

Vous aimerez peut-être aussi