Curso de Asembler - El juego de registros
Curso gratis creado por Pablo Barrón Ballesteros ( Wintermute ). Extraido de:
04 de Noviembre de 2005
Ensamblador
3 - El juego de registros
Quiz alguno de vosotros se est‚ preguntando a ‚stas alturas: ¨ Y eso
del Segment y Offset, dónde se guarda, que indica al ordenador esos sitios
en memoria, qu‚ indica al ordenador en qu‚ punto de la memoria est y qu‚
tiene que ejecutar ? Pues bien, para ‚sto y mucho m s sirven los registros.
Se trata de una serie de "variables", que contienen información que
puede ser cambiada.
Comenzar‚, al contrario que todos los libros, por los de segmento y
offset actual: CS e IP.
El registro CS es una variable de un tama¤o de dos bytes. Contiene el
Segmento actual en que se encuentra el programa. IP, es la variable, de
dos bytes tambi‚n, que contiene el Offset actual. sto significa, el
ordenador va interpretando las secuencias de bytes, pero necesita "algo"
que le indique donde tiene que leer. La combinación CS:IP ( tal y como
me referí antes en lo de Segments&Offsets ) contiene la dirección en la
que el ordenador est interpretando información *en el momento*. O sea,
indica la dirección de la próxima instrucción que se va a ejecutar.
El registro DS y el registro ES tambi‚n sirven para guardar direcciones
de Segmentos, y tambi‚n son variables de dos bytes, ser n utilizados para
por ejemplo mover datos en memoria, imprimir cadenas, bueno, un etc‚tera
larguísimo. Digamos que son "punteros", que apuntan a cierta zona de
memoria ( siempre combinado con otro que haga de Offset, claro ).
El registro SS apunta a la pila, y el SP es el que contiene el offset
de la pila, pero ‚sto lo explicar‚ m s adelante.
Luego tenemos una serie de registros que utilizaremos m s comunmente:
AX, BX, CX y DX.
Todas ocupan dos bytes, y se pueden utilizar divididas en dos partes de
longitud un byte, cambiando de nombre. AX se divide en AH y AL, BX en
BH y BL, CX en CH y CL y DX en DH y DL. La 'H' se refiere a High en ingl‚s,
alto ( de mayor valor ), y la 'l' a Low ( de menor valor ). Lo ilustro un
poquillo:
AX
|
|
11010110 10111000
AH AL
Las funciones de ‚stos cuatro registros son diferentes: AX se suele
utilizar como propósito general, indica función a las interrupciones, etc,
y es el m s flexible, ya que ser el único que permita multiplicaciones
y divisiones. Se denomina a veces acumulador.
BX nos servir mucho como "handler", para abrir/cerrar archivos, etc, y
como registro de propósito general al igual que AX, CX y DX
CX se suele usar como contador.
DX suele ser el puntero, se¤alando haciendo el papel de Offset lugares
en memoria ( suele combinarse con DS en la forma DS:DX )
Y nos quedan ya sólo tres registros, BP, SI y DI, que son tambi‚n
punteros. SI y DI los utilizaremos a menudo para copiar bytes de un lado
a otro, etc. Ni que decir que, como el resto de registros, contienen dos
bytes. Igual sucede con BP, de otros dos bytes de tama¤o.
del Segment y Offset, dónde se guarda, que indica al ordenador esos sitios
en memoria, qu‚ indica al ordenador en qu‚ punto de la memoria est y qu‚
tiene que ejecutar ? Pues bien, para ‚sto y mucho m s sirven los registros.
Se trata de una serie de "variables", que contienen información que
puede ser cambiada.
Comenzar‚, al contrario que todos los libros, por los de segmento y
offset actual: CS e IP.
El registro CS es una variable de un tama¤o de dos bytes. Contiene el
Segmento actual en que se encuentra el programa. IP, es la variable, de
dos bytes tambi‚n, que contiene el Offset actual. sto significa, el
ordenador va interpretando las secuencias de bytes, pero necesita "algo"
que le indique donde tiene que leer. La combinación CS:IP ( tal y como
me referí antes en lo de Segments&Offsets ) contiene la dirección en la
que el ordenador est interpretando información *en el momento*. O sea,
indica la dirección de la próxima instrucción que se va a ejecutar.
El registro DS y el registro ES tambi‚n sirven para guardar direcciones
de Segmentos, y tambi‚n son variables de dos bytes, ser n utilizados para
por ejemplo mover datos en memoria, imprimir cadenas, bueno, un etc‚tera
larguísimo. Digamos que son "punteros", que apuntan a cierta zona de
memoria ( siempre combinado con otro que haga de Offset, claro ).
El registro SS apunta a la pila, y el SP es el que contiene el offset
de la pila, pero ‚sto lo explicar‚ m s adelante.
Luego tenemos una serie de registros que utilizaremos m s comunmente:
AX, BX, CX y DX.
Todas ocupan dos bytes, y se pueden utilizar divididas en dos partes de
longitud un byte, cambiando de nombre. AX se divide en AH y AL, BX en
BH y BL, CX en CH y CL y DX en DH y DL. La 'H' se refiere a High en ingl‚s,
alto ( de mayor valor ), y la 'l' a Low ( de menor valor ). Lo ilustro un
poquillo:
AX
|
|
11010110 10111000
AH AL
Las funciones de ‚stos cuatro registros son diferentes: AX se suele
utilizar como propósito general, indica función a las interrupciones, etc,
y es el m s flexible, ya que ser el único que permita multiplicaciones
y divisiones. Se denomina a veces acumulador.
BX nos servir mucho como "handler", para abrir/cerrar archivos, etc, y
como registro de propósito general al igual que AX, CX y DX
CX se suele usar como contador.
DX suele ser el puntero, se¤alando haciendo el papel de Offset lugares
en memoria ( suele combinarse con DS en la forma DS:DX )
Y nos quedan ya sólo tres registros, BP, SI y DI, que son tambi‚n
punteros. SI y DI los utilizaremos a menudo para copiar bytes de un lado
a otro, etc. Ni que decir que, como el resto de registros, contienen dos
bytes. Igual sucede con BP, de otros dos bytes de tama¤o.
Valora este capítulo:
Autor y licencia de 'Curso de Asembler - El juego de registros'
|
Opiniona sobre 'Curso de Asembler - El juego de registros' (8)
Tu nombre debe tener tres caracteres como mínimo.
Es necesario que te des de alta con una cuenta de correo válida.
Es necesario que te des de alta con una cuenta de correo válida.
El contenido del título de tu opinión debe tener tres caracteres como mínimo.
Es obligatorio que selecciones una valoración del recurso.
El contenido del comentario de tu opinión debe tener tres caracteres como mínimo.
Opina sobre este curso gratis |
Wikis relacionados con 'Curso de Asembler - El juego de registros'
El juego es una parte fundamental del desarrollo del niño en crecimiento. No sólo lo...
Más »
Este concepto, considerado hasta ahora como un simple mito por la ciencia occidental, está en...
Más »
El objetivo de este curso es aprender a programar en el lenguaje Ada, desde sus...
Más »
Excelente curso de iniciación a la astronomía para aquellos que quieran aprender sobre esta apasionante...
Más »
La idea de este curso surgió de varias conversaciones entre amig@s de la cuadrilla y...
Más »
