![]() |
|
![]() ![]() ![]() |
|
iff |
|
|||
![]() Администратор ![]() ![]() Профиль Группа: Участник Сообщений: 949 Регистрация: 23.3.2007 Репутация: 5 Всего: 16 |
Как узнать какой минимальный объём оператианой памяти нужен для выполнения программы под DOS?
Если я включаю её из виндовс, то она бирёт порядка 800 КБ (смотрел так: нажимал контр-альт-дел и в процессах искал NTVDM.exe на против этого процесса была цифра 800КБ), но ведь виндовс запускает программы под дос через симулятор (NTVDM) и скорее всего он как раз и потребляет больше всего памяти. А как узнать сколько минимум должно быть ОЗУ, если запускать непосредственно из-под DOS? Для справки: Программа о которой идёт речь имеет тип .COM, написана для TASM 4.1, и вот фрагмент ее кода:
Может быть при вызове из операционной системы DOS программе будет требоваться 256 байт? (шест. 100h) -------------------- DOS... Синей пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое мастдайное окно, И поставил DOS, и тогда увидел: Это счастье, — вот оно. |
|||
|
||||
111u3 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 80 Регистрация: 31.8.2009 Где: Омск Репутация: нет Всего: нет |
слушай iff без обид, ты себе подпись про себя писал?
и ответ на вопрос - сколько программа требует, столько и нужно + память на саму дос. А org 100h это так 256 байт на стек выделяют ![]() |
|||
|
||||
airyashov |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 284 Регистрация: 1.7.2008 Репутация: 2 Всего: 6 |
если не отрезать память, то твоя программа займет 64Кб Добавлено через 41 секунду не под стек под PSP (префикс) -------------------- icq:3(один)7748666 mail:airyashov( а )inbox.ru |
||||
|
|||||
111u3 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 80 Регистрация: 31.8.2009 Где: Омск Репутация: нет Всего: нет |
airyashovконечно про стек я ляпнул но, во первых psp в com небыло и нету - он только в exe присутствует. А 100h это последствие костыляндии - так как адресация начинается с конца psp то и вынуждены писать эту конструкцию. Во вторых с какого перепуга программа должна занимать 64 кб памяти . она будет занимать ровно её объем + 100h на сервис(мож быть чуть больше). 64 кб это ограничение объема сегмента выше которого com программа не может себе позволить иметь объем(но определенными действиями это можно преодолеть)
|
|||
|
||||
airyashov |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 284 Регистрация: 1.7.2008 Репутация: 2 Всего: 6 |
как это psp нету?
по умолчанию указатель стека установится в конец сегмента. Это сообщение отредактировал(а) airyashov - 26.11.2009, 23:13 -------------------- icq:3(один)7748666 mail:airyashov( а )inbox.ru |
|||
|
||||
111u3 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 80 Регистрация: 31.8.2009 Где: Омск Репутация: нет Всего: нет |
airyashov, так это нету я лично ковырял hex- редактором com и exe, да и по спецификации ms там написанно : так как в com программах отсутсвует psp то необходимо вслед за определением секции указывать org 100h. это префикс нужен только exe там сервисные данные по секциям и т.п.(на сколько я помню) стек же может ставится на конец сегмента(как вы указали), либо если не хватает места то в конец озу(случай когда код и данные занимают весь сегмент)
|
|||
|
||||
airyashov |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 284 Регистрация: 1.7.2008 Репутация: 2 Всего: 6 |
если он не нужен com программе, то куда должна помещаться строка параметров задаваемая при запуске?
-------------------- icq:3(один)7748666 mail:airyashov( а )inbox.ru |
|||
|
||||
111u3 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 80 Регистрация: 31.8.2009 Где: Омск Репутация: нет Всего: нет |
airyashov, вы немного путаете понятия, если судить по вашей логике то: а) почему тогда в exe нету org 100h и б) эта область не модифицируется ни ос ни самим процессом(по крайней мере если это стандартные действия)
|
|||
|
||||
piritus |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 226 Регистрация: 3.1.2007 Где: Сибирь Репутация: 1 Всего: 3 |
а) в exe есть org 100h. в PE нету org 100h.
б) по адресу 80h в psp (не уверен, что этот адрес) пишутся параметры запуска приложения. --------------------
|
|||
|
||||
111u3 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 80 Регистрация: 31.8.2009 Где: Омск Репутация: нет Всего: нет |
piritus, a)в exe этого смещения точно нету там механизм загрузки следующий если dos обнаруживает сигнатуру exe то грузит по определенному смещению от начала озу(непомню по какому), а если не обнаруживает то грузит по смещению + 100h. вот собственно и все.
б) параметры передаются отдельно и не в коем случае не пишутся в загруженный код. + нашел более подробное объяснение Во время загрузки программы в память к ней добавляется префикс программного сегмента (PSP — program segment prefix) размером 256 байт. Сама программа загружается вслед за этим префиксом(в случае exe).Информация из префикса может быть использована для выделения символов из командной строки, определения объема доступной памяти, информации об окружении и т. д. И еще раз повторю в самом файле ничего подобного нету и он не вкоем случае не модифицируется. |
|||
|
||||
Logree |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 22.11.2006 Где: Самара Репутация: 1 Всего: 2 |
111u3 "Ассемблер в задачах защиты информации" стр. 39-40. Вопросы?
-------------------- Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд. |
|||
|
||||
111u3 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 80 Регистрация: 31.8.2009 Где: Омск Репутация: нет Всего: нет |
Logree, не понял правда к чему это. Не смотря что к таким книжкам у меня отношение такое же как и к "творениям" Фленова все же прочитал и там где вы указали тоже. Из-за путаницы в терминологии многие назвывают psp и то что находится в составе exe и ту информацию которую дос присоединяет к загружаемому файлу. + авторы указываемой вами книги напрочь забыли об остальных частях exe типа mz. И еще чтобы не было обидно потом я никогда не говорил что претендую на местно справочника по ассемберу, у меня для этого мало знаний по теории(т.е. чтения тех глупых книжек которыми весь интернет пестрит и заучивания занудных определений от которых толку ноль в квадрате), большинство знаний получено на практике и т.д. и если я никогда это не испытывал то я это не буду советовать.
|
|||
|
||||
airyashov |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 284 Регистрация: 1.7.2008 Репутация: 2 Всего: 6 |
psp для dos программы существует всегда, загрузка программы это отдельный разговор. -------------------- icq:3(один)7748666 mail:airyashov( а )inbox.ru |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Asm: Общие вопросы" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |