Pregunta

Estoy tratando de escribir a un sector en el segundo cilindro de una imagen disqueta.Para una prueba, intenté escribir los números 1-9 en el primer sector del segundo cilindro.

La lógica sería que, teniendo 18 sectores en un cilindro, y cada sector es de 512 bytes, este resultado debe aparecer en el byte 9216 / 0x2400 (siguiente byte 8704 / 0x2200, que es el sector número 18 del primer cilindro).De manera extraña, después de verificar los resultados con hexdump, la secuencia reside en el byte 18432 / 0x4800 en su lugar.

Me gustaría entender por qué el 1º y el segundo cilindro del disquete (en perspectiva del programa de ensamblaje) no son contiguos.

El programa de ensamblaje de NASM:

org 7c00h
jmp begin
data db 1,2,3,4,5,6,7,8,9
begin:
mov ax, 0
mov es, ax
mov bx, data
mov al, 1
mov ah, 3
mov dh, 0
mov dl, 0
mov ch, 1
mov cl, 1
int 13h

¿Fue útil?

Solución

Hay, de hecho, 36 sectores en un cilindro, ya que el disquete es de dos cabezas.Los sectores RAW .IMG almacena los lados alternos secuencialmente:

hts 001 002 ... 0018 101 ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top