программирование IDE
Добавлено: 16 сен 2005, 00:08
Помогите, пожалуйста 
Не понимаю в чем ошибка:
Я перечитал кучу разных статей по этой теме, переписал килобайты кода, а всё равно ничего не получается. Объясните в чем ошибка

Не понимаю в чем ошибка:
Код: Выделить всё
; Запрещаю прерывания к устройству
mov DX,03F6h
mov AL,00000010b
out DX,AL
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Жду когда устройство освободиться (когда флаг BSY станет 0)
mov DX,01F7h
__test_BSY:
in AL,DX
and AL,10000000b
jnz __test_BSY
; Выбираю устройство (Master) и режим адресации (LBA)
mov DX,01F6h
mov AL,11100000b
out DX,AL
; Жду когда устройство освободится и будет готово к приему команд
mov DX,01F7h
__test_BSY_DRDY:
in AL,DX
and AL,10000000b
jnz __test_BSY_DRDY
and AL,01000000b
jz __test_BSY_DRDY
; Передаю команду (0ECh - идентификация)
mov DX,01F7h
mov AL,0ECh
out DX,AL
; Жду когда будет закончена работа и устройство будет готово к обмену данными
mov DX,01F7h
__wait1:
in AL,DX
and AL,10000000b
jnz __wait1
and AL,00001000b
jz __wait1
; читаю данные в видео память
cld
mov AX,0B800h
mov DI,AX
mov DX,01F0h
rep outsw
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Разрешаю прерывания
mov DX,03F6h
mov AL,00000000b
out DX,AL
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
jmp $
times 512-$ db 00h