5
GUIA DE LABORATORIO N° 3 3.1. Indique como se almacena en memoria el siguiente registro 07 00 Memoria Variables 3.2. Copia el código 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 ¿Cuáles 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 mayúsculas de minúsculas? no

GUIA_DE_LABORATORIO_3.doc

Embed Size (px)

Citation preview

GUIA DE LABORATORIO N 1

GUIA DE LABORATORIO N 33.1. Indique como se almacena en memoria el siguiente registro

0700

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 DWDEFIDE WORD (USA BITS DE 8 AL 163.2.3. El Compilador distingue maysculas de minsculas?no3.2.4. Cul es la direccin de memoria de Va1?

010Ah3.2.5. Cul es la direccin de memoria de VA2?

010Bh3.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 MEMORIA3.2.9. Cul es el offset de 01 y C3?

01-----0104

C3----0109

3.2.10. Qu significa ORG 100hPone el contador de posiciones de ensamblador, que indica el ofset donde se deposita la instruccion3.2.11. Por que un fichero ejecutable es cargado en el offset 100h?Es un templete y siempre se va a almacenar en la 100hArrays (Vectores)#make_BIN#

; Calcula la suma de elementos del array V1MOV CX, 5 ; Nmero de elementosnext: ADD AL, V1[BX] ; sum elements:

INC BX ; next byte:

LOOP next ; loop until CX=0:

HLT

V1 DB 4, 3, 2, 1, 0 ; variables4.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 set4.2. Para que se utiliza la instruccin HLT? Halt the System.

Example:

MOV AX, 5

HLTCZSOPA

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

RETZSOPA

rrrrr

CF - unchanged! 5.5 que pasa si cambiamos MOV CX, 3?El ciclo se realiza solo 3 veces en lugar de 56.- cual es la sintaxis de LOOP? CX = CX - 1

if CX 0 then

jump

else

no jump, continue

Example:

include 'emu8086.inc'

#make_COM#

ORG 100h

MOV CX, 5

label1:

PRINTN 'loop!'

LOOP label1

RETCZSOPA

unchanged

Realice el ejemplo de Complete 8086 instruction set, de LOOPEjecute 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