Documente Academic
Documente Profesional
Documente Cultură
Esta interrupcin se
encarga de las
operaciones tpicas de
acceso a los discos duros y
a los disquetes
Tabla
Tablade
deunidades
unidades
En DL
DL = 00h
DL = 01h
DL = 80h
DL = 81h
DL = FFh
Accin
Primera disquetera (Unidad "A:")
Segunda disquetera (Unidad "B:")
Primer disco duro
Segundo disco duro
ltimo disco duro soportado por la
BIOS
Servicios
En AH
AH = 00h
TODOS
AH = 01h
TODOS
AH = 02h
AH = 03h
AH = 04h
TODOS
TODOS
TODOS
Accin
Reiniciar controlador
de disco
Comprobar estado de
la unidad
Leer sectores
Escribir sectores
Verificar sectores
Servicios
En AH
AH = 05h
TODOS
AH = 08h
TODOS
AH = 09h
HD
AH = 0Ah
AH = 0Bh
HD
HD
Accin
Formatear
cilindro
(formateo a bajo nivel)
Leer parmetros de
unidad
Iniciar controlador de
disco
Leer sectores largos
Escribir sectores largos
Servicios
En AH
AH = 0Ch
HD
AH = 0Dh
HD
AH = 0Eh
PS/2
AH = 0Fh
PS/2
AH = 10h
HD
Accin
Mover
cabeza
a
cilindro
Reiniciar unidades
Test de lectura del
controlador
Test de escritura del
controlador
Probar si la unidad
est lista
Servicios
En AH
AH = 11h
AH = 12h
PS/2
AH = 13h
PS/2
AH = 14h
HD
AH = 15h
TODOS
Accin
Recalibrar unidad
Test de la RAM del
controlador
Test de la unidad
Diagnostico del
controlador
Leer tipo de unidad
Servicios
En AH
AH = 16h
AH = 17h
FD
AH = 18h
FD
AH = 41h, BX =
55AAh
AH = 42h
EXT
EXT
Accin
Detectar cambio de medios
Selecionar tipo de medio a
formatear ( Usado por la
versin de DOS <= 3.1 )
Selecionar tipo de medio a
formatear ( Usado por la
versin de DOS >= 3.2 )
Comprobar si la extensiones
estn instaladas
Leer sectores
Servicios
En AH
AH = 43h
AH = 44h
AH = 45h
EXT
AH = 46h
AH = 47h
EXT
EXT
AH = 48h
EXT
Accin
Escribir sectores
Verificar sectores
Bloquear/Desbloquear
unidad
Expulsar unidad
Mover cabeza a sector
Leer parmetros de la
unidad
Servicios
En AH
AH = 49h
EXT
AH = 4Ah
CD-ROM arrancable
AX = 4B00h
CD-ROM arrancable
AX = 4B01h
CD-ROM arrancable
AH = 4Eh
CD-ROM arrancable
AX = 4D00h
CD-ROM arrancable
Accin
Detectar cambio de tipo de
unidad
Iniciar emulacin de disco
Terminar emulacin de
disco
Ver estado
Iniciar emulacin de disco y
bootear
Retornar catalogo de booteo
Retorno
AH
AH = 00h
AH = 01h
AH = 02h
AH = 03h
AH = 04h
Significado
La operacin finaliz sin problemas
Funcin invalida en AH o
parmetro no vlido
Marca de direccin no encontrada
El disco esta protegido contra la
escritura
Sector no encontrado o error de
lectura
Retorno
AH
AH = 05h
AH = 06h
AH = 07h
AH = 08h
AH = 09h
Significado
Los datos no se verificaron
correctamente
Disco cambiado (Disquetera)
Actividad de parmetros de disco
fallada (disco duro)
Desborde de DMA
Error de lmite de datos (Se intent
DMA sobrepasando los 64 KB)
Retorno
AH
AH = 0Ah
AH = 0Bh
AH = 0Ch
AH = 0Dh
AH = 0Eh
Significado
Detectado sector daado
Detectado cilindro daado
Cilindro insoportado o medio
invalido
Nmero invalido de sectores en
formateo (disco duro PS/2)
Control de marca de datos
detectado
Retorno
AH
AH = 0Fh
AH
AH
AH
AH
=
=
=
=
10h
11h
20h
31h
Significado
Nivel de arbitracin de DMA fuera
de rango
Error incorregible de CRC o ECC
Datos ECC coregidos
Error de controlador
No hay medio en unidad
Retorno
AH
Significado
AH = 32h
AH = 40h
Fallo seek
AH = 80h
AH = AAh
Unidad no preparada
AH = B0h
Retorno
AH
AH = B1h
AH = B2h
AH = B3h
AH = B4h
AH = B5h
Significado
Volumen bloqueado en unidad (INT
13h EXT)
Volumen no eliminable (INT 13h
EXT)
Volumen en uso (INT 13h EXT)
Cuenta de bloqueo exedida (INT
13h EXT)
Peticin de expulsin valida fallida
(INT 13h EXT)
Retorno
AH
Significado
AH = B6h
AH = BBh
Error indefinido
AH = CCh
Escritura fallida
AH = E0h
AH = FFh
Ejemplos
Ejemplo:
MOV AH,00h
MOV DL,00h ; Primera disquetera
INT 13h
Ejemplos
INT 13h AH=02h - Leer sectores
Parmetros
:
AH = 02h
AL =??
CH =??
CL =??
DH =??
DL =??
ES:BX
Significado
Leer sectores
Nmero de sectores a leer (tiene que ser mayor que 0)
8 bit bajos del nmero de cilindro
Nmero de sector (bits 0-5), 2 bits altos de nmero de cilindro
(bits 6-7, solo disco duro)
Nmero de cabeza
Nmero de unidad
Buffer de datos
Retorno
CF
Significado
Activada en error, limpia si no hay error
AH =??
Estado
AL =??
Ejemplos
MOV AH,02h
MOV AL,10 ;10 sectores a leer
MOV CH,02 ;Cilindro 2
MOV CL,01 ;Empezamos desde el primer sector
MOV DH,01 ;Cabeza 1
MOV DL,00h ;Primera disquetera
MOV BX,0800h ;ES:BX - 0000:0800
INT 13h
JMP 0000h:0800h ;Saltamos a la direccin que acaba
de leer
Ejemplos
INT 13h AH=04h - Verificar sectores
Parmetros
:
Significado
AH = 41h
AL =??
CH =??
DH =??
DL =??
ES:BX
Verificar sectores
Numero de sectores ha verificar (tiene que ser mayor de 0)
8 bits bajos del nmero del cilindro
Nmero de sector (Bits 0-5), 2 bits altos del nmero del cilindro
(Slo disco duro)
Nmero de cabeza
Nmero de unidad
Buffer de datos
Retorno
Significado
CL =??
CF
AH =??
Estado
AL =??
Ejemplos
MOV AH,04h
MOV AL,18 ;18 sectores ha comprobar
MOV CH,3 ;Cilindro 3
MOV CL,1 ;Sector 1
MOV DH,00 ;Cabeza 0
MOV DL,00 ;Primera disquetera
MOV BX,00 ;Ponemos el buffer en 0000:0800
MOV ES,BX
MOV BX,0800h
INT 13h
JC sector_malo_o_error
;Si viene aqu los sectores estn bien
sector_malo_o_error:
;Si viene aqu hay un sector daado o ha habido otro tipo de error
Ejemplos
INT 13h AH=04h - Verificar sectores
Parmetros
:
AH = 41h
BX = 55AAh
DL =??
Significado
Comprobar extensiones
Comprobar extensiones
Nmero de unidad
Retorno
Significado
CF
AH =??
AL =??
Uso Interno
BX = 55AAh
CX =??
DH =??
Ejemplos
MOV AH,41h
MOV BX,55AAh
MOV DL,80h ;Primer disco duro
INT 13h
JC no_hay_extensiones
;Si viene aqu las extensiones estn instaladas
no_hay_extensiones:
;Si viene aqu las extensiones no estn instaladas