Ass Ambler

2
7/23/2019 Ass Ambler http://slidepdf.com/reader/full/ass-ambler 1/2 segementacion nacio de la necesidad de usar el 1mb obtenido para los datos de bu s de direcciones es decir para ese procesador se tenia 20 bites para las direcci ones y 16 para datos, que evivale 2 a la 20 = 1.048.576 que equivale 1mb, enton ces los registros actuales eran de 16 bits por lo que es 2 a la 16 equivale a 65 .300 bytes, la pregunta era como acceder al 1mb completo ? 2 a la 20 = 1mb 2 a la 16 = 64 kb para eso se diseño un sistema llamado segmentación. Esto consistia en obtener grupos e 64 kb cada grupo contiene un registro de segmento de 16 bits, para el offset se genera  con otro registro de 16 bits. Entonces para alcanzar los 20 bits, se multiplicamos por 16 el valor del registr o de segmento mas el desplazamiento. DIRECCION = SEGMENTO * 16 + OFFSET CS DS SS ES Segmento 001001010101---- offset ----101101011001 direccion 0101101001010101 tenemos el segmento de 16 bits por 16 mas el desplazamiento. ====== Ds =======  ====== Si ===== se puede ver que los dos se solapan, por lo que hay mas formas de acceder a la m isma direccion de memoria por ejemplo 3d00h:0300h es equivalente a 3d30h:0000h direccion = segmento *16+offset direccion = 3d30h*16+0000h = 3d300h  = 3d00h*16+0300h = 3d300h direccion accedida por estas segmentaciones Pila el tamaño de la pila se define en un archivo .exe, la pila se direcciona mediante e l registro puntero de pila SP, entonces cuando se ingresan datos solo en WORD es te registro decrementa en dos, es decir la direccion va a direcciones decrecien ts, aqui es donde entra el EBP ya que se utiliza para apuntar a cierta posicion de memoria por asi decirlo para indexar y asi no tengan que desapilar los datos o variables (importante !!!!)

Transcript of Ass Ambler

Page 1: Ass Ambler

7/23/2019 Ass Ambler

http://slidepdf.com/reader/full/ass-ambler 1/2

segementacion nacio de la necesidad de usar el 1mb obtenido para los datos de bus de direcciones es decir para ese procesador se tenia 20 bites para las direcciones y 16 para datos, que evivale 2 a la 20 = 1.048.576 que equivale 1mb, entonces los registros actuales eran de 16 bits por lo que es 2 a la 16 equivale a 65.300 bytes, la pregunta era como acceder al 1mb completo ?

2 a la 20 = 1mb

2 a la 16 = 64 kb

para eso se diseño un sistema llamado segmentación. Esto consistia en obtener grupos e 64 kb

cada grupo contiene un registro de segmento de 16 bits, para el offset se genera con otro registro de 16 bits.

Entonces para alcanzar los 20 bits, se multiplicamos por 16 el valor del registro de segmento mas el desplazamiento.

DIRECCION = SEGMENTO * 16 + OFFSETCS

DS

SSES

Segmento 001001010101----offset ----101101011001direccion 0101101001010101

tenemos el segmento de 16 bits por 16 mas el desplazamiento.

====== Ds =======  ====== Si =====

se puede ver que los dos se solapan, por lo que hay mas formas de acceder a la misma direccion de memoria por ejemplo

3d00h:0300h es equivalente a 3d30h:0000h

direccion = segmento *16+offset

direccion = 3d30h*16+0000h = 3d300h  = 3d00h*16+0300h = 3d300h

direccion accedida por estas segmentaciones

Pila

el tamaño de la pila se define en un archivo .exe, la pila se direcciona mediante el registro puntero de pila SP, entonces cuando se ingresan datos solo en WORD este registro decrementa en dos, es decir la direccion va a direcciones decrecients, aqui es donde entra el EBP ya que se utiliza para apuntar a cierta posicionde memoria por asi decirlo para indexar y asi no tengan que desapilar los datoso variables (importante !!!!)

Page 2: Ass Ambler

7/23/2019 Ass Ambler

http://slidepdf.com/reader/full/ass-ambler 2/2

Assambler

tres secciones e

.data los datos globales

.bss

.text