Поиск:

Ответ в темуСоздание новой темы Создание опроса
> оперативная память 
:(
    Опции темы
iff
Дата 25.11.2009, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Администратор
**


Профиль
Группа: Участник
Сообщений: 949
Регистрация: 23.3.2007

Репутация: 5
Всего: 16



Как узнать какой минимальный объём оператианой памяти нужен для выполнения программы под DOS?
Если я включаю её из виндовс, то она бирёт порядка 800 КБ (смотрел так: нажимал контр-альт-дел и в процессах искал NTVDM.exe на против этого процесса была цифра 800КБ), но ведь виндовс запускает программы под дос через симулятор (NTVDM) и скорее всего он как раз и потребляет больше всего памяти. А как узнать сколько минимум должно быть ОЗУ, если запускать непосредственно из-под DOS?

Для справки:
Программа о которой идёт речь имеет тип .COM, написана для TASM 4.1, и вот фрагмент ее кода:
Код

.model tiny
.code
assume cs:@code, ds:@code, ss:@code, es:@code
org 100h
start:
; Основная часть программы
end start


Может быть при вызове из операционной системы DOS программе будет требоваться 256 байт? (шест. 100h)


--------------------
DOS... Синей пеленой экран заполнил чистый DOS 
Мышь... Стала вдруг квадратной, потеряла форму мышь... 
Я разбил окно, девяностопятое мастдайное окно, 
И поставил DOS, и тогда увидел: Это счастье, — вот оно.  
PM MAIL WWW   Вверх
111u3
Дата 26.11.2009, 09:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 31.8.2009
Где: Омск

Репутация: нет
Всего: нет



слушай iff без обид, ты себе подпись про себя писал?
и ответ на вопрос - сколько программа требует, столько и нужно + память на саму дос. 
А org 100h это так 256 байт на стек выделяют smile 
PM MAIL ICQ   Вверх
airyashov
Дата 26.11.2009, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 284
Регистрация: 1.7.2008

Репутация: 2
Всего: 6



Цитата(iff @ 25.11.2009,  22:42)
Как узнать какой минимальный объём оператианой памяти нужен для выполнения программы под DOS?
Если я включаю её из виндовс, то она бирёт порядка 800 КБ (смотрел так: нажимал контр-альт-дел и в процессах искал NTVDM.exe на против этого процесса была цифра 800КБ), но ведь виндовс запускает программы под дос через симулятор (NTVDM) и скорее всего он как раз и потребляет больше всего памяти. А как узнать сколько минимум должно быть ОЗУ, если запускать непосредственно из-под DOS?

Для справки:
Программа о которой идёт речь имеет тип .COM, написана для TASM 4.1, и вот фрагмент ее кода:
Код

.model tiny
.code
assume cs:@code, ds:@code, ss:@code, es:@code
org 100h
start:
; Основная часть программы
end start


Может быть при вызове из операционной системы DOS программе будет требоваться 256 байт? (шест. 100h)

если не отрезать память, то твоя программа займет 64Кб

Добавлено через 41 секунду
Цитата(111u3 @  26.11.2009,  09:28 Найти цитируемый пост)
А org 100h это так 256 байт на стек выделяют smile
 не под стек под PSP (префикс)



--------------------
icq:3(один)7748666
mail:airyashov( а )inbox.ru
PM MAIL   Вверх
111u3
Дата 26.11.2009, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 31.8.2009
Где: Омск

Репутация: нет
Всего: нет



airyashovконечно про стек я ляпнул но, во первых psp в com небыло и нету - он только в exe присутствует. А 100h это последствие костыляндии - так как адресация начинается с конца psp то и вынуждены писать эту конструкцию. Во вторых с какого перепуга программа должна занимать 64 кб памяти . она будет занимать ровно её объем + 100h на сервис(мож быть чуть больше). 64 кб это ограничение объема сегмента выше которого com программа не может себе позволить иметь объем(но определенными действиями это можно преодолеть)
PM MAIL ICQ   Вверх
airyashov
Дата 26.11.2009, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 284
Регистрация: 1.7.2008

Репутация: 2
Всего: 6



как это psp нету?
по умолчанию указатель стека установится в конец сегмента.

Это сообщение отредактировал(а) airyashov - 26.11.2009, 23:13


--------------------
icq:3(один)7748666
mail:airyashov( а )inbox.ru
PM MAIL   Вверх
111u3
Дата 27.11.2009, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 31.8.2009
Где: Омск

Репутация: нет
Всего: нет



airyashov, так это нету я лично ковырял hex- редактором com и exe, да и по спецификации ms там написанно : так как в com программах отсутсвует psp то необходимо вслед за определением секции указывать org 100h. это префикс нужен только exe там сервисные данные по секциям и т.п.(на сколько я помню) стек же может ставится на конец сегмента(как вы указали), либо если не хватает места то в конец озу(случай когда код и данные занимают весь сегмент)
PM MAIL ICQ   Вверх
airyashov
Дата 27.11.2009, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 284
Регистрация: 1.7.2008

Репутация: 2
Всего: 6



если он не нужен com программе, то куда должна помещаться строка параметров задаваемая при запуске?


--------------------
icq:3(один)7748666
mail:airyashov( а )inbox.ru
PM MAIL   Вверх
111u3
Дата 28.11.2009, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 31.8.2009
Где: Омск

Репутация: нет
Всего: нет



airyashov, вы немного путаете понятия, если судить по вашей логике то: а) почему тогда в exe нету org 100h и б) эта область не модифицируется ни ос ни самим процессом(по крайней мере если это стандартные действия)
PM MAIL ICQ   Вверх
piritus
Дата 28.11.2009, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 226
Регистрация: 3.1.2007
Где: Сибирь

Репутация: 1
Всего: 3



а) в exe есть org 100h. в PE нету org 100h.
б) по адресу 80h в psp (не уверен, что этот адрес) пишутся параметры запуска приложения.

--------------------
PM MAIL ICQ   Вверх
111u3
Дата 28.11.2009, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 31.8.2009
Где: Омск

Репутация: нет
Всего: нет



piritus, a)в exe этого смещения точно нету там механизм загрузки следующий если dos обнаруживает сигнатуру exe то грузит по определенному смещению от начала озу(непомню по какому), а если не обнаруживает то грузит по смещению + 100h. вот собственно и все.
б) параметры передаются отдельно и не в коем случае не пишутся в загруженный код.
+ нашел более подробное объяснение 
Во время загрузки программы в память к ней добавляется префикс программного сегмента (PSP — program segment prefix) размером 256 байт. Сама программа загружается вслед за этим префиксом(в случае exe).Информация из префикса может быть использована для выделения символов из командной строки, определения объема доступной памяти, информации об окружении и т. д.  
И еще раз повторю в самом файле ничего подобного нету и он не вкоем случае не модифицируется.
PM MAIL ICQ   Вверх
Logree
Дата 29.11.2009, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 22.11.2006
Где: Самара

Репутация: 1
Всего: 2



111u3 "Ассемблер в задачах защиты информации" стр. 39-40.  Вопросы?


--------------------
Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд.
PM MAIL ICQ   Вверх
111u3
Дата 29.11.2009, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 31.8.2009
Где: Омск

Репутация: нет
Всего: нет



Logree, не понял правда к чему это. Не смотря что к таким книжкам у меня отношение такое же как и к "творениям" Фленова все же прочитал и там где вы указали тоже. Из-за путаницы в терминологии многие назвывают psp и то что находится в составе exe и ту информацию которую дос присоединяет к загружаемому файлу. + авторы указываемой вами книги напрочь забыли об остальных частях exe типа mz. И еще чтобы не было обидно потом я никогда не говорил что претендую на местно справочника по ассемберу, у меня для этого мало знаний по теории(т.е. чтения тех глупых книжек которыми весь интернет пестрит и заучивания занудных определений от которых толку ноль в квадрате), большинство знаний получено на практике и т.д. и если я никогда это не испытывал то я это не буду советовать.
PM MAIL ICQ   Вверх
airyashov
Дата 30.11.2009, 08:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 284
Регистрация: 1.7.2008

Репутация: 2
Всего: 6



Цитата(111u3 @ 28.11.2009,  13:20)
piritus, a)в exe этого смещения точно нету там механизм загрузки следующий если dos обнаруживает сигнатуру exe то грузит по определенному смещению от начала озу(непомню по какому), а если не обнаруживает то грузит по смещению + 100h. вот собственно и все.
б) параметры передаются отдельно и не в коем случае не пишутся в загруженный код.
+ нашел более подробное объяснение 
Во время загрузки программы в память к ней добавляется префикс программного сегмента (PSP — program segment prefix) размером 256 байт. Сама программа загружается вслед за этим префиксом(в случае exe).Информация из префикса может быть использована для выделения символов из командной строки, определения объема доступной памяти, информации об окружении и т. д.  
И еще раз повторю в самом файле ничего подобного нету и он не вкоем случае не модифицируется.

psp для dos программы существует всегда, загрузка программы это отдельный разговор.


--------------------
icq:3(один)7748666
mail:airyashov( а )inbox.ru
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0742 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.