| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [lol.com]блок памяти |
| Автор: wolf_f 26.10.2008, 16:45 |
| У меня дано вот такое задание: Я непрошу его решать, а просто объяснить, что из чего вычесть чтоб получить адреса блоков памяти! Для выполнения данного задания используется компьютер с операционной системой Windows XP (Pro, SP2). Вся работа ведется в единственной запущенной виртуальной машине MS-DOS. Программа LOL.com выдала адрес системной «таблицы таблиц» - List of list location: 00A7:0026H. Указатель на первый блок управления памятью будет содержаться в ячейках: 00A7:0026H. Проследим цепочку блоков управления памятью с помощью программы PEEK.com: ║00A7:0026│ EC 15 A7 00 CE 00 A7 00 5A 00 70 00 24 00 70 00 │ь.з.╬.з.Z.p.$.p.║ ║00A7:0036│ 80 00 00 00 00 00 00 00 2A 04 00 00 20 04 00 00 │А.......*... ...║ ║00A7:0046│ 07 07 00 00 E2 02 04 80 C6 0D CC 0D 4E 55 4C 20 │....т..А╞.╠.NUL ║ Учитывая, что младший байт находиться перед старшим в памяти при работе с процессорами архитектуры Intel x86, получаем адрес первого блока управления памятью: ║0320:0000│ 26 3B 77 02 76 08 03 D6 26 8B 77 02 2B D6 26 8B │&;w.v..╓&Лw.+╓&Л║ ║0320:0010│ 47 02 26 03 47 04 2B C2 2B C6 76 02 03 D0 26 C6 │G.&.G.+┬+╞v..╨&╞║ Для получения последующих блоков памяти надо к адресу начала фрагмента памяти прибавить его величину, хранимую в третьей и четвертой ячейке блока управления памятью, признаком последнего блока в цепочке блоков управления памятью является символ “Z” в первом байте блока. Проследим всю цепочку: |
| Автор: wolf_f 27.10.2008, 20:00 |
| Чет сделал адрес первого блока управления памятью 00A7:0024, а мне пишут что найдено неправильно |