Yo solo se hacerlo, utilizando directamente los puertos de entrada y salida del disco duro. Es algo complejo, ya que no se limita a hacer una llamada a una funcion. Se tiene que mandar un codigo de funcion al puerto de control del HD. Mas tarde se debe de leer el buffer de datos del HD, hasta que este esta vacio. Todo esto controlando una serie de bits de un puerto que te dicen si el HD esta preparado para recibir/mandar datos.
Puedes buscar informacion por internet sobre el interface IDE asi como con los dispositivos ATAPI, comandos ATA y ATAPI.
Yo encontre toda esta informacion de esta manera, pero ahora me es imposible darte mas informacion.
Es posible que con la interrupcion 13h, tambien se pueda hacer esto, pero no lo he probado y desconozco el numero de funcion necesario.