Pregunta

Así que estoy intentando crear un pequeño programa ensamblador con capacidad de arranque que permita al usuario eliminar y agregar archivos a una unidad específica.El único problema es que no estoy seguro de cómo acceder a la unidad con el ensamblaje.¿Alguien podría indicarme la dirección donde puedo encontrar esta información, por favor?La información también puede ser para el lenguaje de programación c.

Estaría intentando acceder al disco duro predeterminado de Windows 7 desde algún tipo de código ensamblador de arranque.Que es NTFS.

¿Fue útil?

Solución

Para acceder al disco con algún código de arranque en una PC x86, lo más fácil y natural es usar el Funciones BIOS int 13h.Eso le permitirá leer y escribir sectores de disco individuales.

Los discos duros comúnmente se dividen en particiones y también existe la Registro de arranque principal (MBR) que describe la ubicación, tamaño y tipo de cada partición.El MBR es el primer sector de un HDD.

Dentro de cada partición hay algún sistema de archivos.Necesitará implementar un controlador NTFS para poder leer y escribir archivos en NTFS.

HASTA DONDE SE, NTFS no está abierto, pero existen controladores NTFS basados ​​en ingeniería inversa (p. ej.en Linux).Los controladores NTFS generalmente están escritos en C(++), no en ensamblador, porque NTFS es grande y complejo y C es más práctico en términos de desarrollo, mantenimiento y portabilidad que en ensamblador.No recomendaría escribir código FS en ensamblador.

PDen EFI En los sistemas las cosas son algo diferentes.hay GPT en lugar de MBR y utiliza funciones EFI para acceder a los discos en lugar de BIOS int 13h.

PPSHe hecho lo que quieres en C y un poco de ensamblaje pero con FAT1x/32 en lugar de NTFS.Eso es factible.NTFS es más difícil.Puede resultar imposible para una sola persona, especialmente si no tiene suficientes conocimientos y habilidades.

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