Académique Documents
Professionnel Documents
Culture Documents
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
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.
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