Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 15.04.2012
Сообщений: 20

Сегментная организация памяти

21.04.2012, 01:33. Показов 2554. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всех приветствую!
Интересует источник(сайт,книга), в котором на ваш взгляд лучше описывается данный механизм, т.к. на этот вопрос нормального ответа в книгах (авт. Юров, Финогенов, Пирогов...) не нашел.

Просто вопросы базового типа крутятся в голове, сам не могу построить логическое объяснение: как работает сегмент и смещение (осознал), как строится физический адрес .... и так далее.
Прошу помощи!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.04.2012, 01:33
Ответы с готовыми решениями:

Организация памяти IBM PC с отличием
Вопрос: К примеру у нас IBM совместимая машина, но у нее на борту 1МБайт памяти типа EPROM с записанным BIOS-ом. По архитектуре памяти...

Страничная организация памяти,обращение к страницам
;---(3)---------- Установка CR3=Page directory pointer ---------------------- ; mov eax,PAGING_TABLES ; mov es,ax ; ES used for...

Сегментная организация памяти
Прошу прощения, если не туда написал. Но, нужна помощь с решением следующей задачи. Помогите пожалуйста, буду благодарен.

9
 Аватар для _lucius_
391 / 179 / 2
Регистрация: 14.03.2012
Сообщений: 443
21.04.2012, 06:04
Go.D-bq, попробуйте Ирвин "Язык ассемблера процессоров intel" 4 издание. На мой взгляд неплохо описано.

Цитата Сообщение от Go.D-bq Посмотреть сообщение
нормального ответа в книгах (авт. Юров, Финогенов, Пирогов...)
У Юрова "Assembler. Учебник для ВУЗов" тоже вполне хорошо изложено.

Цитата Сообщение от Go.D-bq Посмотреть сообщение
как строится физический адрес
При вычеслении линейного адреса умножается сегментная часть на 10h и прибавляется смещение. Умножаем на 10h, т.к. адрес каждого сегмента всегда кратен 16 байтам. По данной формуле казалось бы можно обратится к такому диапазону 0000h-10FFEFh. Но т.к. в процессорах 8086/8088 всего 20 младших разрядов шины адреса, поэтому реально доступен только 1 мегабайт, диапазон адресов 0000h-FFFFFh.

Например есть адрес 0123h:0100h. Тогда линейный адрес будет 1330h.
1
116 / 136 / 0
Регистрация: 15.04.2012
Сообщений: 1,031
21.04.2012, 06:08
Мне кажется, что здесь

Цитата Сообщение от _lucius_ Посмотреть сообщение
При вычеслении линейного адреса умножается сегментная часть на 10h и прибавляется смещение
ошибка, а как система в линейном адресе различит, скажем 0123h:0100h и 0122h:0110h?]:
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
21.04.2012, 06:25
programmisto, в real mode 0123h:0100h и 0122h:0110h и 0133h:0000h один и тот же адрес
0
116 / 136 / 0
Регистрация: 15.04.2012
Сообщений: 1,031
21.04.2012, 06:28
Это ещё почему? Ведь они в real mode будут находиться в разных сегментах.
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
21.04.2012, 06:30
programmisto, учебник стоит читать
0
116 / 136 / 0
Регистрация: 15.04.2012
Сообщений: 1,031
21.04.2012, 06:41
Да,Mikl___, ты прав, открыл я отладчик и посмотрел, что по этим адресам одно и то же. А почему так? Подскажите, пожалуйста, где найти материал об этом.
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
21.04.2012, 06:53
Лучший сборник книг в электронном виде по Ассемблеру
1
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
21.04.2012, 11:11
Цитата Сообщение от programmisto Посмотреть сообщение
Ведь они в real mode будут находиться в разных сегментах.
Вы похоже называете "сегментом" содержимое сегментного регистра. Это не совсем верно. Сегмент это просто участок памяти фиксированного размера, а содержимое сегментного регистра скорее следует называть "параграфом", хотя я сам не люблю эти споры о терминологии.
Все эти странности с сегментной адресацией связаны с тем, что в 86 процах были 16 разрядные регистры и 16 разрядная шина данных, но 20 разрядная шина адреса. То есть адресоваться можно было к мегабайту памяти(2^20), но в 16 разрядные регистры невозможно было использовать для адресации более чем 64 килобайт памяти. Чтобы победить это разработчики добавили сегментные регистры. Сегментный регистр содержит старшие 16 бит адреса. Для получения полного(линейного) адреса к сегментному адресу прибавляется смещение. Таким образом на один и тот же адрес памяти указывает 4096 сочетаний сегмент/смещение. Введение защищенного режима решило эту проблему(ни слова про 286)
0
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
21.04.2012, 12:06
Цитата Сообщение от vital792
Введение защищенного режима решило эту проблему
Зато усугубило разброд и шатание в неокрепших умах начинающих прогеров. Почему-то сразу вспоминается loadall(0Fh 05h) и unreal mode...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.04.2012, 12:06
Помогаю со студенческими работами здесь

Используется сегментная адресация реального 16-битного режима
Используется сегментная адресация реального 16-битного режима. Какие значения необходимо записать в регистры es и si для обращения к ячейке...

Сегментная адресация памяти
Здравствуйте, читаю небольшой материал про процессор 8086 и появившийся в нем режим сегментации памяти. Хотел бы задать несколько...

Организация памяти.
Здравствуйте. Объясните, пожалуйста, вот что: Допустим есть класс, с определенным количеством полей и определенным набором методов. При...

Страничная организация памяти
Добрый день! Если не трудно, объясните в кратце страничную организацию памяти, или киньте ссылку, где можно почитать простое объяснение. ...

Организация памяти, объясните
Всем привет. Скажите почему при страничной организации вирт. памяти номер кадра стыкуется со смещением, а при сегментной база суммируется...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru