Вопрос № 80965: Программа реального режима работает с видеорежимом VESA 103h 800x600x256.
Заполняет экран и ждет нажатия клавиши по INT 16h.
Каждый вызов разных функций INT 10h проверяется на успех, в случае ошибки выдается сообщение.
В ДОС программа раб...Вопрос № 81092: Здравствуйте, уважаемый Эксперты!
Нужно считать введенное в командной строке вещественное число. Не могли бы Вы подсказать каким методом лучше всего это организовать? Желательно самый оптимальный! Слышал, что-то про деление на 65536, но не совсем...
Вопрос № 80.965
Программа реального режима работает с видеорежимом VESA 103h 800x600x256.
Заполняет экран и ждет нажатия клавиши по INT 16h.
Каждый вызов разных функций INT 10h проверяется на успех, в случае ошибки выдается сообщение.
В ДОС программа работает как надо, а в WIN_XP тоже полностью выполняется (нет выхода по ошибке, все проверки на поддержку видеорежима и его инициализацию пройдены успешно),
но проблема с отображением на экран: монитор тухнет и мигает лампочкой. При нажатии клавиши происходит нормальный выход в WIN c восстановлением предыдущего видеорежима.
Отправлен: 04.04.2007, 04:05
Вопрос задал: Alexei_FAQ (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Зенченко Константин Николаевич
1)
Здравствуйте, Alexei_FAQ!
1)
SvgaInfoRec_size = 100h
должно быть 512 байт(200h)
убиваете свой стек
2)
когда проверяете наличие "VESA"
нужно еще проверять номер версии 200h и больше
вдруг нужна будет линейная адресация
3)
add di,0Eh
mov ax,es:[di+2]
mov es,ax;А
mov di,es:[di];Б
строки А и Б поменяйте местами
т.к. es изменилась в di будет совсем не то значение
Надеюсь помог.
Удачи!
--------- И только наступив на грабли мы преобретаем драгоценный опыт!
Здравствуйте, уважаемый Эксперты!
Нужно считать введенное в командной строке вещественное число. Не могли бы Вы подсказать каким методом лучше всего это организовать? Желательно самый оптимальный! Слышал, что-то про деление на 65536, но не совсем понял...
Заранее спасибо!
Отправлен: 04.04.2007, 21:20
Вопрос задал: Nesh (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Зенченко Константин Николаевич
Здравствуйте, Nesh!
Существует две формы записи вещественных чисел.
ххх.ххххх(с плавающей точкой) и х.хххЕ-3 или х.ххх*10^-3(научная).
В приложении программа которая вводит число (до 10^18 -1) с клавиатуры,
преобразовывает его в упакованное 10-е, записывает его в сопроцессор
и делит его на константу взависимости от места где была точка.
Необходимая константа вычисляется во время ввода числа.
После этого число выводится на экран по битно сначала знак и экспонента потом в новой строке мантиса числа.
Если нужно больше информации посмотрите на сайте:
http://ihtik.lib.ru/complit_30nov2006n/
книги В.Юрова "ассемлер:практикум" и В.Кулакова "специальный справочник программрование на аппаратном уровне".
Если нужно, обращайтесь.
Удачи!
Приложение:
--------- И только наступив на грабли мы преобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: 8-ой класс)
Ответ отправлен: 06.04.2007, 16:26 Оценка за ответ: 5 Комментарий оценки: Большое спасибо) Мне очень поможет...