Действительный адрес в 16-битном реальном режиме x86 - это просто смещение 20-битного сегмента: смещение адрес .Вопрос, который вам задали, состоит в том, чтобы определить значение сегмента в сочетании с эффективным адресом 0x10AB, чтобы получить физический (линейный) адрес 0x119B.
Физический адрес может быть вычислен из сегмента: смещение пара с формулой physaddr=(segment<<4)+offset
или physaddr=(segment*0x10)+offset
.Немного переработав формулу:
physaddr = (segment*0x10)+offset
physaddr-offset = segment*0x10
(physaddr-offset)/0x10 = segment
segment = (physaddr-offset)/0x10
Теперь, когда мы знаем, что формула для сегмента segment = (physaddr-offset)/0x10
, мы можем выполнить вычисление, чтобы найти ответ на ваш вопрос:
segment = (0x119B-0x10AB)/0x10
segment = 0xF0/0x10
segment = 0xF
Мы можем проверить этот результат, подключив его к исходному уравнению для физического адреса и получив:
physaddr = (0xF*0x10)+0x10AB = 0x119B.