|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июн 18, 2004 13:23:12 Вот хочу написать бут сектор.Который считывает фаил с дискетки и передоет ему управление.В реальном режиме. Но не как не получается прочитать тот или иной сектор. Даже простой пример не хочет работать:
start:
cli
mov ax, cs
mov ds, ax
mov es, ax
mov ss, ax
mov sp, start
sti
mov ax,0b800h
mov es,ax
mov ch,0
mov cl,1
mov dl,0
mov ax,0201h
int 13h
Вопрос первый, почему нельзя считывать в адрес где es>1000. Вопрос второй. Почему-то не получается считать дальше первого сектора.
mov ax,60h
mov es,ax
mov ch,1
mov cl,1
mov dl,0
mov ax,0201h
int 13h
_533107552__ |
|
|
Дата: Июн 18, 2004 18:46:03 · Поправил: Uri 0b800h - это видеосегмент. А вот тебе работающий пример: fasm: org 100h mov ax,0201h ;Read Sectors (sector count) mov ch,00h ; track number (0-n) mov cl,01h ; sector number (1-n) mov dl,00h ; drive (0-3=diskette) mov dh,00h ; head number (0-n) push cs pop es mov bx,buffer int 13h mov ax,4C00h ;Exit int 21h buffer rb 100h В общем ты забыл dh :) |
|
|
Дата: Июн 19, 2004 13:10:24 Uri С первым вопросом я разобрался. Спасибо. А вот почему прочитать дальше первого трека невыходит. Я не понимаю.В AH возвращается код ошибки E7.Самое удевительное в досе все нармально работает ,а как загоняю в бут сектор так выдает ошибку. |
|
|
Дата: Июн 19, 2004 15:05:17 Все разобрался.Оказывается спутал сектора и дорожки. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.040 |