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

INSTRUCCIONES

PARA EL USO DE
CADENA

INTRODUCCION
El uso de las cadenas de caracteres es
imprescindible para el programador debido
a que es el lenguaje natural de
comunicacin entre las personas. An
cuando se pueden desarrollar programas
que manejen cadenas de caracteres
utilizando las instrucciones bsicas
presentadas, existen una serie de
instrucciones dedicadas al manejo de este
tipo de datos que tienen como objetivo el
desarrollo de programas ms eficientes.
Esta seccin introduce estas instrucciones. .

Para recordar

Un carcter ASCII estndar est codificado


en un octeto. Por lo tanto, una cadena de
caracteres es una serie de caracteres de 1
octeto y no de 4 como los enteros.
Una cadena termina con el carcter 0 (el
valor 0 y no el carcter '0').
nicamente se pueden apilar elementos de
2 4 octetos en la pila (a menos que se
trate de una constante de un octeto).

Etiquetas
Tanto en los lenguajes de alto nivel como en
los de bajo nivel, se puede hacer referencia a
las posiciones (direcciones) de memoria
mediante un smbolo.
Tales smbolos se llaman etiquetas. As pues
tendremos dos tipos de etiquetas
esencialmente:
Etiquetas
1) Etiquetas para hacer referencia a
posiciones dentro del programa (lneas)
2) Etiquetas para hacer referencia a variables
del programa

EJEMPLO DE DECLARACIONES

RESERVA DE ESPACIO
Cuando se trata de declarar espacio para
cadenas muy grandes no tiene caso que
enumeremos todos los bytes, en su lugar
usamos RESB o RESW
RESB reserva un bloque de memoria de
tamao de N bytes,
Tambin se pueden reservar bytes de
tamao word con la directiva RESW

DECLARACIN DE CONSTANTES

No olvidar que comunmente en la declaracin


tambin se usan constantes. Para ello se
emplea la instruccin EQU
La sintaxis de EQU es similar a la de DB, solo
que en lugar del db dw se pone EQU, ejemplo:
Etiqueta EQU valor
En conjunto a la declaracin de constantes, el
nasm define dos pseudo operaciones que
permiten el clculo de direcciones estas dos
constantes especiales son $ y $$, a
continuacin se explican

CONSTANTES ESPECIALES
El $ define la posicin de la direccin de
memoria al inicio de donde lo coloquemos

Ya que $ regresa la posicin en donde ste se


encuentra; si realizamos una resta del valor
que tiene $ menos la posicin de la etiqueta
msj, lo que obtendremos como resultado es la
longitud de la declaracin msj. En este caso el
resultado lo asignamos a la variable tamao.
Tamao es igual a 6.

CONSTANTES ESPECIALES
De forma similar, el uso de la constante $$
regresa la direccin segmento en donde
incluyamos esta constante

En este caso lo que se obtiene como resultado


es la longitud de espacio ocupada por todo el
segmento hasta antes la Declaracin de la
variable espacio. Para este ejemplo el valor es
23d o 17h. Un byte por cada carcter

INSTRUCCIONES PUSH Y POP. USO DEL


STACK
Conocido el Stack o pila, veremos cmo
escribir datos y recuperalos. Hay dos
instrucciones para estas operaciones, que
son:
PUSH: Pone el dato de un registro en la pila.
POP: Recupera el dato de la pila y lo escribe
en un registro.

Ntese que los valores de CX y AX se


intercambian en el cdigo anterior. Existe una
instruccin especial para intercambiar valores
de dos registros: XCHG, la cual produce el
mismo resultado con una nica instruccin:

LLAMADA A INTERRUPCIN
INT INTERRUMPE EL PROGRAMA ACTUAL ,
CORRE LA SUBRRUTINA DE INT.
INT: llama a una funcin del DOS o BIOS a
travs de una subrutina para realizar un
servicio especial, por ejemplo manipular el
vdeo, la pantalla, abrir un fichero, escribir en
un puerto, etc. En este texto usaremos una de
ellas, la salida a pantalla, que se corresponde
con la 21h.

Casi todas las interrupciones tienen asociados


ms de un servicio, por ello es necesario pasar
el nmero de servicio deseado. Se utiliza para
ello el registro AH. El ejemplo ms usado es
escribir a lgo en la pantalla del monitor

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