Upload
adolfo-maya-gomes
View
2
Download
0
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