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

> Прочтите прежде чем задавать вопрос!

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

 
 Ответить  Открыть новую тему 
> Загружен ли Паскаль?, определить загружен ли Паскаль
сообщение
Сообщение #1


Новичок
*

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

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


Вопрос: Как определить из программы загружен Турбо Паскаль в память или нет? Знаю, что он грузится в младшие адреса памяти и, по-моему сюда DSeg:0000.
Но как вычислить там он или нет - увы?
Thnki


--------------------
__________________________
Мой диплом ПГС
http://nashidiplomy.googlepages.com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Shults99, другими словами, ты хочешь выяснить, запущена ли твоя программа из IDE Турбо Паскаля или без него?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

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

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


Да. Програ запущена как exe-шник уже скомпилированный или из среды Turbo Pascal


--------------------
__________________________
Мой диплом ПГС
http://nashidiplomy.googlepages.com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Тогда ты этого сделать скорее всего не сможешь. Только разве что по объему доступной кучи: MemAvail (IDE забирает часть кучи под свои нужды)...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

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

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


Цитата
Верхняя граница памяти DOS
              HeapEnd  -->-----------------------------
                          ¦                            ¦
                          ¦  свободная память        ¦
                          ¦                            ¦
              HeapPtr  -->¦............................¦
                          ¦ динамически распределяемая ¦
                          ¦      область памяти        ¦
                          ¦      (растет вверх) ^      ¦
              HeapOrg  -->+----------------------------+<--  OvrHeapEnd
                          ¦      оверлейный буфер      ¦
                          +----------------------------+<--  OvrHeapOrg
                          ¦    стек (растет вниз) v  ¦
              SSeg:SPtr -->¦............................¦
                          ¦      свободный стек      ¦
              SSeg:0000 -->+----------------------------+
                          ¦  глобальные переменные    ¦
                          ¦............................¦<-------
                          ¦  типизированные константы ¦        ¦
              DSeg:0000 -->+----------------------------+        ¦
                          ¦  кодовый сегмент          ¦        ¦
                          ¦    модуля System          ¦        ¦
                          ¦............................¦        ¦
                          ¦  кодовый сегмент          ¦        ¦
                          ¦    первого модуля          ¦        ¦
                          ¦............................¦        ¦
                          L-----------------------------    содержимое
                          .  кодовый сегмент          .      образа
                          .  других  модулей        .    файла .EXE
                          -----------------------------        ¦
                          ¦............................¦        ¦
                          ¦  кодовый сегмент          ¦        ¦
                          ¦ последнего  модуля        ¦        ¦
                          +----------------------------+        ¦
                          ¦  кодовый сегмент          ¦        ¦
                          ¦  главной программы        ¦        ¦
                          +----------------------------+<--------
                          ¦ префикс сегмента программы ¦
                          ¦        (PSP)              ¦
              PrefixSeg -->L-----------------------------


--------------------
__________________________
Мой диплом ПГС
http://nashidiplomy.googlepages.com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

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

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


на рисунке отсюда (сорри, не копируется нормально )здесь
показан же внизу PrefixSeg...?
"содержимое файла .EXE" - это и есть скомпилированный exe файл? Проверить там что-то есть или нет - и фсё huh.gif


--------------------
__________________________
Мой диплом ПГС
http://nashidiplomy.googlepages.com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Цитата(Shults99 @ 27.06.05 20:08)
"содержимое файла .EXE" - это и есть скомпилированный exe файл? Проверить там что-то есть или нет - и фсё huh.gif

Но это ТВОЙ EXE-файл, то есть твоя программа !!! Какое отношение она имеет к IDE Турбо Паскаля? Она запускается и ей передается управление...

Все, что касается "сегментов кода" и "сегментов данных" и к чему ты имеешь доступ через CSeg/DSeg имеются в виду именно сегменты твоей программы. О существовании IDE она даже не догадывается...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Хотя есть одна идея:
begin
writeln(paramstr(0));
readln
end.

Запусти эту программу из IDE и без нее. Чувствуешь разницу? ;)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Я запускаю с вставкой
Код
begin
 writeln(paramstr(0));
 readln
end.

и без неё и получаю разные ответы.
Такое же я получаю и без этой вставки, когда запускаю из среды ТР и просто exe файлом. Можь я что-то не понимаюю..
smile.gif Вообще-то здесь не надо мудрить и искать сложные ответы. Прога из заданий контрольной работы техникума )))
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Так напиши сюда, что ты получаешь с этой "вставкой" из IDE, и что - при самостоятельном запуске EXE файла... И попробуй догадаться в чем разница...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гость






ok
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Новичок
*

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

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


:D :D
Кажется, проблема решена... Ну, что же.. препады сами узнают новый подход..

Но всё-таки если говорить о чистоте экперимента, то я не "удовлетворил" препадов.
Вот текст задачи: (сначала предлагается запустить прогу из IDE и экзешником и увидеть различия, а потом - ) "допишите оператор, определяющий наличие Турбо Паскаля в оперативной памяти и выдающий соответствующее выражение на экран: "Турбо Паскаль загружен" или "Турбо Паскаль не загружен""
4 тоже хорошая оценка.
В учебнике дается таблица, где показано заполнение памяти и ссответствующие идентификаторы.
Системные программы======== Указатели
Ещё не распределенная память== HeapEnd
Динамически распределяемая=== HeapPtr
Оверлейный буфер ========= HeapOrg
-/- -/-
Сегмент данных основной===== Sseg:SPtr
программы
-/- -/- ===========сегменты модуля (команд на них не написано)
Турбо Паскаль Системные программы =====младшие адреса памяти

Сообщение отредактировано: Shults99 -


--------------------
__________________________
Мой диплом ПГС
http://nashidiplomy.googlepages.com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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