Сейчас на форуме: _MBK_, ManHunter, Magister Yoda, rtsgreg1989 (+9 невидимых) |
![]() |
eXeL@B —› Основной форум —› физическая структура пямяти, ее представление |
Посл.ответ | Сообщение |
|
Создано: 03 июля 2005 22:11 · Личное сообщение · #1 Привет! У меня незадача с пониманием логического и физического смысла оперативной памяти. 1. Я запускаю DEBUG и пишу: -d 00:00 - что это такое я смотрю? 2. Можно ли определить где физически заседает сама программа DEBUG? 3. Как программно распределяются мои 128МБ оперативной памяти? Поясните, пожалуйста. ![]() |
|
Создано: 04 июля 2005 09:15 · Поправил: Bitfry · Личное сообщение · #2 "Такие" вопросы лучше задавать на wasm'e в разделе для новичков (да простит меня wasm). Я как раз сейчас пишу Чтиву 0 вот мои заметки: Oblako пишет: 1. Я запускаю DEBUG и пишу: -d 00:00 - что это такое я смотрю? Логическое устройство памяти формируется средствами _процессора_. Поэтому оно зависит от режима процессора. Допустим, мы говорим только о _реальном режиме_ (простые ДОС-программы). В реальном режиме адресное пространство разбито на _сегменты_ каждый 64kb. Адрес формируется двумя байтами сегмента и двумя байтами _смещения в сегменте_. По этому такую адресацию называют 16-битной. Сегмент кода программы указывается в соответствующем регистре – CS и т.д. Oblako пишет: 2. Можно ли определить где физически заседает сама программа DEBUG? Можно ![]() Сведенья о физическом адресе (как я понимаю) программистам ничего не дают. Ну, сформируешь ты физический адрес: Значение сегмента (допустим, в который загрузился код отладчика) нужно сдвинуть на 4 бита влево (то есть получить 20 бит адреса сегмента) + смещение внутри сегмента. Так ты узнаешь физический адрес конкретного байта в памяти. Но всё это делает уже процессор и нам оно не нужно. Мы в программах на Асме пишем, например "jmp CS:100". И такой адрес, пожалуй, самый низкоуровневый для программистов (хотя я новичок и может чего не понял). Oblako пишет: 3. Как программно распределяются мои 128МБ оперативной памяти? А вот если мы говорим о _защищённом режиме процессора_ (PM) то здесь чаще всего используется _сплошная модель памяти_. То есть в Win32 память для программ сплошная. А ДОС-программы из форточек запускаются в виртуальной сессии ДОС, то есть здесь debug ещё дальше от физического адреса (того который подаётся на шину процессора). В PM я и сам ни фига не понимаю, как преобразуются адреса и как рулит Винда, если найдёшь простой и понятный ответ - кинь здесь ссылку. Нет, я, конечно, прочёл кое-что о дескрипторах, flat model и т.д. Но переварить это пока не могу ![]() Короче тебе нужно читать о x86 процах: Архитектура IA-32, модели памяти и т.д. Начни с топика ebook: http://exelab.ru/f/action=vthread&forum=2&topic=2387 Первая же ссылка твоя. Далее, на странице Пирагова есть учебник Юрова "Assembler". У него язык тяжелый, зато ляпов значительно меньше чем у других. В этом учебнике коротко всё изложено и в списке литературы тоже посмотри. Дока на IA-32 (архитектура Интел 32). Номера для поиска на intel.com: 253665?? - том 1-й, 253666?? и 253667?? - том 2-й 253668?? - том 3-й. Ну и самое интересное wasm.ru – вдоль и поперёк, все ссылки там есть и многое по теме лежит у них же. Да прибудет с нами Великая Сила. ----- Всем привет, я вернулся ![]() |
|
Создано: 04 июля 2005 18:41 · Личное сообщение · #3 |
|
Создано: 04 июля 2005 22:19 · Личное сообщение · #4 |
![]() |
eXeL@B —› Основной форум —› физическая структура пямяти, ее представление |