Попробуй вот этот: ;)
Только откомпиль в com-формате :P
а для этого в том редакторе нужно выставить параметры в опции Compiler...
И зачем ты делаешь - это, обращаясь к BIOS, ДОС делает - это точно также (в смысле обращаясь к биос), но предоставляет более удобную систему адресации сектора...
.8086
.MODEL TINY
.CODE
ORG 100h
START:
mov ax,3 ; Чистим экран
int 10h
lea dx,Msg ; Мессага о вставке первой дискеты
mov ah,9
int 21h
mov ah,0 ;
int 16h ; Ждем клавишу
mov al,0 ; Номер диска (A:)
mov cx,1 ; Читаем 1 сектор
xor dx,dx ; Стартовый сектор (boot)
lea bx,Buf ; DS:BX - буфер для чтения
int 25h ; читаем
jc @ErMes ; при ошибке - выдаем мессагу
lea dx,Msg2 ; сообщение о вставке второй дискеты
mov ah,9
int 21h
mov ah,0
int 16h ; ждем клавишу
mov al,0 ; Номер диска (A:)
mov cx,1 ; Пишем 1 сектор
xor dx,dx ; Номер стартового сектора
lea bx,Buf ; DS:BX - буфер
int 26h ; Пишем
jc @ErMes ; не выходит - мессага
jmp @Exit
@ErMes: lea dx,Msg1
mov ah,9
int 21h
@Exit : mov ax,4C00h
int 21h
Msg db 'Enter disk, then press key...',10,13,'$'
Msg1 db 'IO Error...',10,13,'$'
Msg2 db 'Enter disk #2 then press key...',10,13,'$'
Buf db 512 dup (1)
End start