Curso de Asembler - El juego de registros

3 - El juego de registros

[editar]
Curso gratis creado por Pablo Barrón Ballesteros ( Wintermute ).
04 de Noviembre de 2005
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.
[editar]

7 opiniones

Opinión.

Obsoleto. Poco práctico. Inservible. Para un museo puede estar bien. Jajaja no sería obsoleto si fueras a programar un sistema operativo , es un lenguaje muy poderoso , en el que está hecho parte de windows , y de linux

saludos.
Felicitaciones.

Excelente explicacion gracias.
Bueno.

El curo esta bueno pero necesito tener mas informacion para crear programas.
Mvp.

Excelente.
Bueno.

Excelente trabajo. Siga adelante.
1 2 | siguiente >

Cursos gratis relacionados con 'Curso de Asembler'

Completo curso de lenguaje ensamblador.

Autor y licencia de 'Curso de Asembler'


Curso gratis de Pablo Barrón Ballesteros ( Wintermute ). Extraido de: CopyLeft
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.