|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
21.05.2009, 16:50 | #1 |
Пользователь
Регистрация: 09.06.2008
Сообщений: 60
|
32-разрядная адрсация в Паскале
Подскажите,как перейти к 32-разрядной адресации?
|
21.05.2009, 16:53 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
В Паскале по-моему никак.
I'm learning to live...
|
21.05.2009, 18:47 | #3 |
Пользователь
Регистрация: 09.06.2008
Сообщений: 60
|
Паскаль видимо не может работать в защищенном режиме,однако возникает вопрос,можно ли реализовать эту задачу встроенным в него ассемблером - переход в защищенный режим,а затем и в 32 разрядную адресацию?(насколько я знаю, не все команды асма работают в паскале)
Последний раз редактировалось smileman; 21.05.2009 в 22:10. |
21.05.2009, 22:16 | #4 |
Oldschool geek
Форумчанин
Регистрация: 09.03.2009
Сообщений: 611
|
Можно, но в присутствии многозадачной операционной системы будет проблематично заюзать такие фичи.
Хотя, если ограничиться DOSBox, то можно перейти в защищённый режим, настроить fs на начало памяти, без ограничения на 65535 байтов смещения, и вернуться в реальный режим. У каждого сегментного регистра есть теневой регистр, содержащий информацию о начале и протяжённости сегмента. Теневой регистр обновляется только во время присваивания ему нового значения. Если fs настроить в защищённом режиме и больше не трогать его, можно неограниченно долго использовать 32битную адресацию. Не знаю, проканает ли это в DOSBox. |
21.05.2009, 22:33 | #5 |
Пользователь
Регистрация: 09.06.2008
Сообщений: 60
|
да я в досе сижу..(в реальном режиме,не в эмуляции), значит средств встроенного асма думаешь хватит?стоит этим извращением заниматься,или сразу на асме писать?
|
22.05.2009, 00:05 | #6 |
Пользователь
Регистрация: 09.06.2008
Сообщений: 60
|
подсказали, средств достаточно
Код:
|
22.05.2009, 00:22 | #7 |
Oldschool geek
Форумчанин
Регистрация: 09.03.2009
Сообщений: 611
|
Turbo Pascal такое не скомпилирует.
Неподдерживаемые инструкции можно через db писать, а, что касается памяти, то тут какие–нибудь inline функции надо замутить, чтоб считывать байты, слова, двойные слова и т. п. по 32битному адресу. |
22.05.2009, 00:27 | #8 |
Пользователь
Регистрация: 09.06.2008
Сообщений: 60
|
мда,не скомпилил..как можно использовать 32разрядные регистры,не переходя в РМ?
|
22.05.2009, 01:14 | #9 |
Oldschool geek
Форумчанин
Регистрация: 09.03.2009
Сообщений: 611
|
Да запросто. Они есть независимо от режима. Это просто встроенных ассемблер их не понимает, но они всё равно есть.
Код:
Аналогично можно в большинстве случаев кодить другие инструкции. Правда, если присваивать непосредственные значения, нужно разбивать эти значения на части: Код:
Для 32битной адресации аналогично, только db $67 Код:
А вообще, можно уже доставать TASM. TASM нормально генерит код для 32разрядных инструкций в реальном режиме. |
22.05.2009, 13:53 | #10 |
Пользователь
Регистрация: 09.06.2008
Сообщений: 60
|
Благодарствуем ..
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как исправить ошибку типа: 16-разрядная подсистема MS-DOS | Mclaren | Помощь студентам | 10 | 28.04.2009 20:07 |
15 в Паскале | Batonchik | Паскаль, Turbo Pascal, PascalABC.NET | 11 | 08.04.2009 15:20 |
привет всем! помогите пожалуйста решить две задачи на паскале. я в паскале полный ноль. | Пищенок Саша | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 20.01.2009 13:46 |
БД На Паскале | igorjouk | Помощь студентам | 12 | 21.11.2008 13:22 |
На Паскале | Bagsi | Помощь студентам | 13 | 21.11.2007 21:40 |