Ensamblador - sobre debug y la tabla de particion

 
Vista:

sobre debug y la tabla de particion

Publicado por chelo (3 intervenciones) el 30/05/2005 04:01:21
quiero acceder a la informacion de la tabla de particion con el debug, mas concretamente me gustaria poder acceder al BPB .
veo que en el offset 1FEh tengo el codigo 0AA55h como debe ser, pero cuando quiero visualizar la tabla de particion que debe encontrarse en el offset 1BEh dentro de los 16bytes encuentro cualquier cosa "presione una tecla......IO". lo que teclee es lo siguiente:
C:\WINDOWS>debug
-l 1 2 0 1
-d 1BE
si hubiese tecleado -l 100 2 0 1 el resultado seria similar, claro que hubiese tenido que teclear luego -d 2BE (tengo que sumar 100 a 1BE).
Estara bien lo que hice, y sino como lo hago?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:sobre debug y la tabla de particion

Publicado por Ge-ergon (46 intervenciones) el 03/06/2005 03:08:29
Hola!

NO! se puede acceder al master boot record desde el debug.
Cuando ejecutas el comando L 0100 2 0 1, estas cargando solamente el boot sector del primer sector lógico de la partición (C:). El problema es que seguramente el debug utiliza el llamado "absolute disk read/write", esto corresponde al uso de las interrupciones 25 y 26 de DOS.
La documentación de estas interrupciones dice que son solamente para acceder sectores lógicos.
(Ver helppc 2.10)
Voy a tomar una parte de la documentación que dice:
"... TRACK 0 STARTING AT THE FIRST TRACK IN THE PARTITION"

Debemos recordar que existen diferencias entre los sectores lógicos y físicos de nuestro disco duro, ciertamente es en el primer sector (MBR) donde se encuentra la tabla de particiones.
Segun pruebas realizadas en mi disco duro, el cual solamente tiene una particion, el boot sector de la partición de Windows empieza en la dirección física:
Cabeza: 1, Pista/Cilindro: 0, Sector: 1
Mientras que el MBR(el primer sector del HD) empieza en:
Cabeza: 0, Pista/Cilindro: 0, Sector: 1
Es por eso que en algunos documentos sobre discos duros es comun ver algunas formulas para realizar converciones físico/lógico, tales como:
-----------------------------------------------------------------
dos_sector = (sector - 1) + (head * sectors_per_track) +
(track * sectors_per_track * num_heads)

physical_sector = 1 + (dos_sector MOD sectors_per_track)
physical_head = (dos_sector / sectors_per_track) MOD num_heads
physical_track = dos_sector / (sectors_per_track * num_heads)
-----------------------------------------------------------------
Se me olvidaba, si quieres acceder el MBR, te recomiendo utilizar la interrupcion del bios 13 subfuncion 2 (Read Disk Sectors).

Att: Ge-ergon
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Lógico/Físico

Publicado por Ge-ergon (46 intervenciones) el 03/06/2005 03:11:04
Hola!
Voy a indicar el funcionamiento básico (sin formulas) de los sectores lógicos y físicos.
Voy a limitarme en el funcionamiento de los disquetes de "1.44 MB", esto tambien es aplicable a discos duros. Los disquetes tienen 18 sectores por pista, 80 pistas, 2 cabezas. (FAT12)
Cuando hablamos de lógico queremos decir que tiene un orden en este caso plano ejemplo: de 1 hasta 34567, pero el HD o Floppy esta dividido en varias secciones (Cabeza,Sector,Pista/Cilindro),
supongamos que nos encontramos en la primera pista(Track) del disco, en este caso en la pista existen 18 sectores, y supongamos que nos encontramos en el PRIMER sector del disco (boot sector), entonces la cabeza(Head) debe estar en cero.
Cabeza: 0, Pista/Cilindro: 0, Sector: 1
Ahora bien, podemos movernos por todos los sectores de 1 hasta 18 (lógicamente).
¿Pero donde inicia el sector 19? Bueno aqui esta el detalle, el sector 19 logicamente, inicia
en la misma pista/cilindro solo que lo que se incrementa es la cabeza.
Es decir que la dirección física del sector lógico 19 es:
Cabeza: 1, Pista/Cilindro: 0, Sector: 1
La manera en que los sectores estan lógicamente continuos es de esta forma, primero se incrementa la cabeza hasta el máximo de cabezas (en este caso 2) luego se mueve a las siguientes pistas. Ahora bien, nos podemos mover en los siguientes 18 sectores (es decir de 1 hasta 37). Pero, ¿como se accede al siguiente sector? Para acceder al sector 38, como no existen mas cabezas, dicho sector se encuentra en la siguiente pista, pero ojo!, la cabeza vuelve hasta su valor mínimo, la dirección física sería:
Cabeza: 0, Pista/Cilindro: 1, Sector: 1

Muchas gracias por su tiempo!

Att: Ge-ergon
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

debug

Publicado por erik (2 intervenciones) el 28/03/2006 23:08:30
quiero sabre sobre autores que hablen sobre el debug
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

debug

Publicado por erik (2 intervenciones) el 28/03/2006 23:09:28
quiero sabre sobre autores que hablen sobre el debug
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar