Вопрос № 21857: Здравствуйте, эксперты!
В приложении прога создающая бинарник (?) для загрузочного сектора. Участок написанный на асме не совсем верен. Что надо исправить?
Спасибо....
Вопрос № 21.857
Здравствуйте, эксперты!
В приложении прога создающая бинарник (?) для загрузочного сектора. Участок написанный на асме не совсем верен. Что надо исправить?
Спасибо.
Приложение:
Отправлен: 06.06.2005, 21:10
Вопрос задал: 3BEPEK (статус: 3-ий класс)
Всего ответов отправлено: 4
Отвечает: DSota
Здравствуйте, 3BEPEK!
Команда "lea bx,buffer" тут не подходит, так как в прерывании используеться регистр ES вместо DS. И его придется устанавливать вручную...
И еще подводный камень - если программа рабочая - то с дискеты она может и не работать - адрес запуска другой.
Приложение:
--------- Открыть глаза навстречу солнцу.
Ответ отправил: DSota (статус: Практикант)
Отправлен: 07.06.2005, 08:33
Отвечает: sir henry
Здравствуйте, 3BEPEK!
Не сильно разбираюсь в ассемблере, но в регистр BX Вы заносите смещение, а база должна находиться в регистре ES. Его не нужно явно задавать?
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 07.06.2005, 10:14
Отвечает: Ayl
Здравствуйте, 3BEPEK!
Адрес буфера должен задаваться с помощью регистров ES:BX. При работе с Паскалем значение регистра ES не устанавливается на сегмент данных. Туда указывает только регистр DS. Поэтому перед вызовом 13-го прерывания нужно выполнить установку регистра ES:
push ds
pop es
Старое значение регистра ES можно сохранить перед изменением, а после вызова int 13h восстановить.
--------- Трудное - то, что можно сделать немедленно. Невозможное - то, для выполнения чего требуется немного больше времени
Ответ отправил: Ayl (статус: Профессор)
Отправлен: 07.06.2005, 11:29
Отвечает: Котиев Зураб
Здравствуйте, 3BEPEK!
в es не загружен сегмент buffer .под pascal давно не программил попробуй вместо
lea bx,buffer использовать les bx,buffer
и еще прога для загруз. сектора должна сама настраивать сегменты данных и стека и груз-ся по адресу 7C00h такчто обычный com не подойдет
Ответ отправил: Котиев Зураб (статус: 5-ый класс)
Отправлен: 07.06.2005, 12:01