IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

> Адресация,что-ли?
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 57
Пол: Мужской
Реальное имя: Левон

Репутация: -  -4  +


Помогите пожалуста сообразить...Почитал про VESA 1.2 в статье С.А.Андрианова.Понравилось.
http://www.osp.ru/pcworld/1998/07/159374/

Но у меня есть проблеммммма.
Прямо с нулевой функции,которая возвращает инфу о наличии весы.
Как организовать эти 256 байт для буфера и записать его адрес в регистры es:di ?

Цитата

Функция 0 возвращает информацию о версии VESA и производителе видеоплаты. Перед ее вызовом необходимо выделить в нижней памяти буфер длиной 256 байт. В версии 2.0 функция позволяет получить некоторую дополнительную информацию, если в первые четыре байта выделенного буфера предварительно записать 4-байтную сигнатуру "VBE2". При этом размер буфера должен составлять 512 байт.

На входе:
AX = 4F00h;
ES:DI - указатель на буфер,
в который надо поместить информацию,
в формате сегмент:смещение
(обратите внимание: именно сегмент
реального режима, а не селектор защищенного).
На выходе:
AX - статус завершения.

Пишу в компиляторе паскаля,не 32.


--------------------
"Непросто тем,кто полагается на истину авторитета,вместо того,чтобы полагаться на авторитет истины"
Джэрольд Мэсси
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Тебе обязательно это делать именно во встроенном ассемблере? Почему не хочешь перейти на TASM, например?

А вообще, насколько я помню, это делалось так:

function IsInstalled(var Buffer: TBuffer): Boolean; assembler;
asm
mov ax, 4F00h
les di, Buffer
int 10h
end;
где Buffer - это и есть область памяти размером в 256 байт...
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 17.05.2024 13:31
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name