|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
22.10.2010, 19:55 | #1 |
Python,C++,ASM,Php
Пользователь
Регистрация: 29.08.2010
Сообщений: 58
|
Переход из реального режима в защищённый
Есть прога:
Код:
Извините за предыдущую тему, браузер барахлит) Хакер - это не ламер с завышенным самомнением, а программист с заниженной зарплатой.
Нелегка и неказиста жизнь простого программиста. Последний раз редактировалось BVOG; 22.10.2010 в 20:10. |
24.10.2010, 15:29 | #2 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
трудно воспользоваться гуглем?
вот здесь всё есть, есть исходники и примеры и всё на TASM. читай на здоровье |
24.10.2010, 17:05 | #3 |
Python,C++,ASM,Php
Пользователь
Регистрация: 29.08.2010
Сообщений: 58
|
Есть маленький ньюанс: файл комовский и не должен содеражать разные сегменты и стэки. Я поэтому и спрашиваю.
Хакер - это не ламер с завышенным самомнением, а программист с заниженной зарплатой.
Нелегка и неказиста жизнь простого программиста. |
24.10.2010, 17:33 | #4 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
вычисляй адрес относительно регистра CS.
я писал COM программу переводящую процессор в защищённый режим на FASM, скинул бы, но он на ноутбуке, а его рядом нет. в общем, примерно так. xor eax, eax mov ax, cs shl eax, 4 add eax, PMODE EAX = абсолютный адрес метки PMODE но нельзя забывать что код после метки PMODE тоже идёт комовский, и все метки в нём тоже будут относительно CS, получается что в коде защищённого режима тоже придётся вычислять адреса меток по правилам реального режима |
24.10.2010, 19:44 | #5 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
для начала вопрос, а вы, ТС, не будете знать по какой базе грузится у вас код?
(я у ся в загрузчике переход был начиная со 0:7e00, и использую org задал базу, и все шикарно, никаких поправок не делал после перехода(правда ядро внешнее и на С, но у него уже своя база? дп и не суть, так как всетаки часть загрузчика учавствовала в защищенном режиме, подготавливая стек и данные)) использовал fasm Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
25.10.2010, 15:48 | #6 |
Python,C++,ASM,Php
Пользователь
Регистрация: 29.08.2010
Сообщений: 58
|
Прога грузиться booter-ом по адресу [01000h:0100h] + в самой проге org 100h. И у меня загрузчик только читает данные в память, переход в защищённый режим находится в самой проге.
Хакер - это не ламер с завышенным самомнением, а программист с заниженной зарплатой.
Нелегка и неказиста жизнь простого программиста. Последний раз редактировалось BVOG; 25.10.2010 в 17:00. |
25.10.2010, 18:05 | #7 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
вам точно нужен столь высокий адрес?
или может сделать чтоб одна часть перешла в PM, потом скопировала по адресу другую часть, а та другая часть уже выравнена как надо... ну, а в данном случае придется делать по принципу смещений, как и предлагали. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
25.10.2010, 18:39 | #8 |
Python,C++,ASM,Php
Пользователь
Регистрация: 29.08.2010
Сообщений: 58
|
Тогда нужно из защищённого режима считать с флопика без прерывания.
Хакер - это не ламер с завышенным самомнением, а программист с заниженной зарплатой.
Нелегка и неказиста жизнь простого программиста. |
25.10.2010, 19:48 | #9 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
я делал что-то в этом духе (FASM)
Код:
в файле PM_CODE.ASM мы пишем код который работает в защищённом режиме и используем в нём метки не заботясь о возможных глюках связанный с COM файлами. После перехода в защищённый режим программа просто переносит код из файла PM_CODE.ASM по адресу USER_PM_CODE_BASE_ADDRESS вот и всё. и вообще я рекомендую использовать FASM при написании подобных программ. |
25.10.2010, 20:44 | #10 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
я тоже самое и имел в виду
да и кстати, чтение с флопика много где описано с сорцами причем (даж у нас на форуме видел, правда на С) Грузин, а что за 70h порт? Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 25.10.2010 в 21:08. |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Защищённый режим процессора | BVOG | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 18 | 21.03.2012 17:42 |
Настроика реального ип | serres | Компьютерное железо | 2 | 24.09.2010 18:34 |
Определение реального класса | megachuhancer | Общие вопросы Delphi | 2 | 24.09.2009 15:35 |
Защищённый процесс | Terran | Win Api | 2 | 08.12.2007 13:31 |