Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2009, 08:46   #1
Les_55
Пользователь
 
Регистрация: 12.12.2009
Сообщений: 13
По умолчанию Простой вопрос про память

Запустил 2 сессии дос. в каждой отладчик и по .com файлу.
И что же вижу ?! .. обе программы загрузились в сегменты с одинаковым адресом (2695) но это ж невозможно (!) , как они вдвоем занимают одну и ту же память ?? Это не может быть ни абсолютный адрес сегмента , ни относительный... Что то я не догоняю , что вообще означает этот адрес.
Les_55 вне форума Ответить с цитированием
Старый 16.12.2009, 09:06   #2
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Ответ содержится в вопросе.
Цитата:
Запустил 2 сессии дос. в каждой отладчик и по .com файлу.
Если так думать, то можно сказать, что запустить 2 раза дос невозможно, потому что он однозадачный
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 16.12.2009, 09:13   #3
Les_55
Пользователь
 
Регистрация: 12.12.2009
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Goodwin98 Посмотреть сообщение
Ответ содержится в вопросе.

Если так думать, то можно сказать, что запустить 2 раза дос невозможно, потому что он однозадачный
Да хоть три ...и в каждой будет исполняться своя программа :

\system32\cmd.exe
\system32\cmd.exe
\system32\cmd.exe
Les_55 вне форума Ответить с цитированием
Старый 16.12.2009, 09:32   #4
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

А теперь загрузитесь с дискетки или с CD в дос и запустите 3 сессии.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 16.12.2009, 14:31   #5
Les_55
Пользователь
 
Регистрация: 12.12.2009
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Goodwin98 Посмотреть сообщение
А теперь загрузитесь с дискетки или с CD в дос и запустите 3 сессии.
Я знаю, что если на компе установен ОС = ДОС то сессия одна.
А если установлены win95 и дальше .. сессий (эмуляций дос) можно запустить много.
Вопрос был в том, эти разные сессии загружают совершенно разные программы по одному и тому же адресу и , вроде бы, должны конфликтовать. Но никакого конфликта нет...т.е. отладчик показывает не реальный адрес в памяти ...а какой то "виртуальный" , т.е. действительный только для этой сессии. А вот где узнать реальный адрес того что загружено ?
Les_55 вне форума Ответить с цитированием
Старый 16.12.2009, 14:50   #6
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

В том-то и дело, что это только эмуляция.
Цитата:
А вот где узнать реальный адрес того что загружено ?
Попробуйте открыть в каком-нибудь виндовом отладчике (OllyDbg например) дос программу - вы увидите нутро ntvdm - это и есть эмулятор доса в винде. Там же и увидите аддреса.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 16.12.2009, 16:15   #7
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от Les_55 Посмотреть сообщение
Я знаю, что если на компе установен ОС = ДОС то сессия одна.
А если установлены win95 и дальше .. сессий (эмуляций дос) можно запустить много.
Вопрос был в том, эти разные сессии загружают совершенно разные программы по одному и тому же адресу и , вроде бы, должны конфликтовать. Но никакого конфликта нет...т.е. отладчик показывает не реальный адрес в памяти ...а какой то "виртуальный" , т.е. действительный только для этой сессии. А вот где узнать реальный адрес того что загружено ?
1. Эмуляция
2. В архитектуре Win32, каждому приложению выделяется 4 гига памяти
3. Каждый адресс хранится и преобразовывается по необходимости в физический систмой, но не как не программой
4. Каждое приложение может иметь адрес (думать что имеет) равный к примеру 0xf12094. То как этот адрес система преобразует в физический или отобразить на файл подкачки, Вас (да и нас ) не касается, и не должно.

Думаю ясно почему нет конфликтов ?!

Edit:
Цитата:
Да, спасибо, понятно почему нет конфликтов. и еще понятно что от меня скрывают реальные адреса
Да, это и есть защищенный режим процессора. А собственно зачем если не секрет получать реальные физические адреса ? Ну тогда может и под досом загружать дос приложение ?
p.s. ну это уже флуд начался у меня

Последний раз редактировалось BOBAH13; 17.12.2009 в 11:07.
BOBAH13 вне форума Ответить с цитированием
Старый 17.12.2009, 10:39   #8
Les_55
Пользователь
 
Регистрация: 12.12.2009
Сообщений: 13
По умолчанию

Цитата:
Сообщение от BOBAH13 Посмотреть сообщение
Думаю ясно почему нет конфликтов ?!
Да, спасибо, понятно почему нет конфликтов. и еще понятно что от меня скрывают реальные адреса
Les_55 вне форума Ответить с цитированием
Старый 17.12.2009, 11:28   #9
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Что значит скрывают ? О_о
Вы запускаете одну ОС внутри совершенно другой, в которой даже память по другому распределяется.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 17.12.2009, 12:28   #10
Ivan_32
somewhere else
Участник клуба
 
Аватар для Ivan_32
 
Регистрация: 17.07.2008
Сообщений: 1,409
По умолчанию

У ntvdm нет общего адресного пространства так как это не виртуальная машина - это эмулятор. Он просто заменяет(если угодно) вызовы DOS-процедур на соответствующие консольные и не очень WinAPI функции. И кстати то о чем вы говорите в реальном режиме неосуществимо - там может выполнятся только одна задача.
"Тяжело в учении, легко в бою" - А.В. Суворов
Ivan_32 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
простой вопрос Yanata Microsoft Office Excel 2 25.02.2009 08:43
Простой вопрос Molotok Microsoft Office Excel 1 20.09.2008 22:23
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) Albert2008 Общие вопросы Delphi 4 21.08.2008 15:33
У меня вопрос про базы данных,а точнее про таблицы!!! Alexij Общие вопросы Delphi 1 13.04.2008 23:24
Простой вопрос Prowler БД в Delphi 3 26.01.2007 16:46