Найти адрес сегмента по заданному физическому и действующему адресу

как найти адрес сегмента по заданным данным?

Физический адрес = 0x119B, эффективный адрес = 0x10AB

какая может быть формула?


person Damsaz Ali    schedule 10.05.2019    source источник
comment
Действующий адрес - это часть смещения сегмента: смещение адреса. Вы ведь знаете, как вычислить линейный адрес из seg: off? (Или погуглите, если нет). Тогда просто решите уравнение.   -  person Peter Cordes    schedule 10.05.2019
comment
Возможный дубликат Расчет сегмента: смещение от абсолютного адреса   -  person lurker    schedule 10.05.2019


Ответы (1)


Эффективный адрес в 16-битном реальном режиме x86 - это просто часть смещения 20-битного < em> сегмент: смещение адрес. Вопрос, который вам задали, заключается в том, чтобы определить значение сегмента, когда в сочетании с эффективным адресом 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.
person Michael Petch    schedule 10.05.2019
comment
Майкл Петч сначала благодарит за помощь, но, дорогой сэр, вы принимаете эффективный адрес в качестве компенсации? означает ли это смещение = эффективный адрес? - person Damsaz Ali; 11.05.2019
comment
@DamsazAli Да, эффективный адрес - это смещение, и в моем первом предложении говорится, что Эффективный адрес в 16-битном реальном режиме x86 - это просто часть смещения 20-битного сегмента: адрес смещения. - person Michael Petch; 11.05.2019