ы на новые кодовые сегменты производятся командами межсегментных передач управления.
Преобразование адреса сегментированной памяти в адрес линейной (плоской) памяти производится процедурой трансляции сегмента: сложением базового адреса сегмента с адресом операнда в сегменте.
Но сегментные регистры - 16-битные, а базовые адреса должны быть 20- битными. Поэтому при использовании сегментных регистров их содержимое умножается на 16 добавлением четырех нулей после младшего разряда
Таким образом, адрес в сегменте математической памяти МП IA-16 задается тремя компонентами: B (база), X (индекс) и disp (смещение).
Для вычисления адреса обращения к физической памяти (при сегментированной структуре математической памяти) требуются, по крайней мере, две процедуры:
вычисление прямого адреса в сегменте по компонентам (В), (Х) и disp,
преобразование адреса в сегменте сегментированной памяти в адрес линейной физической памяти.
Результатом первого преобразования адреса является получение одной компоненты логического адреса – смещения в сегменте, результатом второго преобразования – получение смещения в линейной памяти.
Для уменьшения неопределенности при использовании вышеописанных смещений используют термины:
disp – для обозначения смещения в кадре сегмента,
offset – для обозначения смещения в сегменте,
линейный адрес – для обозначения адреса (смещения) в линейной (не сегментированной) памяти.
Схема вычисления смещения в сегменте (offset) по компонентам адреса, включая смещение в кадре сегмента (disp) и трансляцию сегмента (вычисление линейного адреса в несегментированной памяти) представлена на рис. 3. 4.
Трансляция сегментов связана с проблемой 20-й адресной шины оперативной памяти. Эта проблема заключается в следующем.
Страницы: << < 6 | 7 | 8 | 9 | 10 > >>