Leer N bytes desde el HD y mostrarlos
Soy nueva en esto del assembler asi que mucho nose, pero me interesa hacer esto de leer N cantidad de bytes desde el Hard Disk y luego mostrarlos por la pantalla.
Recien acabo de hacer el famoso "Hello World" pero es todo lo que se hacer :(
Asi que si alguien sabe de assembler me podria ayudar con esto?...tengan en cuenta que soy nueva en assembler asi que si pudieran poner el codigo podrian comentarlo?
Por lo que he leido para hacer lo que quiero necesitaria usar un comando que se llama "IN" para leer N bytes desde el Hard Disk y luego tendria que escribir por pantalla a la memoria de video mapeada o algo asi :(
(les dije que soy nueva)
Estoy usando el Tasm en MS-DOS.
Alguien me ayuda?
Bye!
Recien acabo de hacer el famoso "Hello World" pero es todo lo que se hacer :(
Asi que si alguien sabe de assembler me podria ayudar con esto?...tengan en cuenta que soy nueva en assembler asi que si pudieran poner el codigo podrian comentarlo?
Por lo que he leido para hacer lo que quiero necesitaria usar un comando que se llama "IN" para leer N bytes desde el Hard Disk y luego tendria que escribir por pantalla a la memoria de video mapeada o algo asi :(
(les dije que soy nueva)
Estoy usando el Tasm en MS-DOS.
Alguien me ayuda?
Bye!
Hola, una alternativa es la int 13h ( de la BIOS) , que sirve para leer/escribir en disco duro/diskette a bajo nivel.
La funci贸n de lectura es ah=2, y la de escritura es ah=3. En el registro dl se almacena la unidad (0->A, etc).
Esta funci贸n tiene dos inconvenientes:
1.) Mucho ojo con lo que se hace, porque una escritura a bajo nivel es irreversible. Si escribes en el sector de arranque del HD te lo cargas (tendr铆as que, o bien reconstruirlo a partir de otro HD en buen estado o bien formatear el HD).
2.) Esta funci贸n es de bajo nivel, y por lo tanto no entiende de archivos del sistema operativo, sino de pistas y sectores.
Yo, lo que har铆a es probar primero con un diskette vac铆o por si acaso:
ah=2 (leer), dl=0, dh->Cara (0 o 1), ch->Pista (0-80), cl->(sector 1-18), al-> n煤mero de sectores (1-18), es:bx-> direcci贸n del buffer.
Saludos
La funci贸n de lectura es ah=2, y la de escritura es ah=3. En el registro dl se almacena la unidad (0->A, etc).
Esta funci贸n tiene dos inconvenientes:
1.) Mucho ojo con lo que se hace, porque una escritura a bajo nivel es irreversible. Si escribes en el sector de arranque del HD te lo cargas (tendr铆as que, o bien reconstruirlo a partir de otro HD en buen estado o bien formatear el HD).
2.) Esta funci贸n es de bajo nivel, y por lo tanto no entiende de archivos del sistema operativo, sino de pistas y sectores.
Yo, lo que har铆a es probar primero con un diskette vac铆o por si acaso:
ah=2 (leer), dl=0, dh->Cara (0 o 1), ch->Pista (0-80), cl->(sector 1-18), al-> n煤mero de sectores (1-18), es:bx-> direcci贸n del buffer.
Saludos
