Правило формирования физического адреса в памяти ЭВМ для 16-битового микропроцессора. Какие регистры используются при этом?

Автор: Тагир 0 1147

Изучаемый микропроцессор имеет 1 Мбайт памяти ОЗУ. Следовательно, для указания адреса информации в команде микропроцессора должен был иметь 20 разрядов.

Помощь в написании работы

Однако такое количество разрядов микропроцессора не может обработать за 1 операцию 16-битового процессора. Чтобы разрешить это противоречие, было решено формировать физический адрес из 2-х 16-битовых слагаемых: базы (содержимое регистра сегмента) и смещения по правилу:

Физический Адрес = смещение (IP) +16*(регистр сегмента –CS).

В действительности длинная операция умножения при вычислении физического адреса не выполняется по той причине, что микропроцессор использует содержимое 16-битового регистра так, как если бы оно имело 4 дополнительных нулевых бита 0010->0100(*2)->1000(*4)->10000(*8)->100000(*16).

Например, пусть смещение будет 10Н (в шестнадцатеричной системе счисления), а номер блока (содержимое регистра сегмента) равно 2000Н. Тогда, 0000 0000 0001 0000 (смещение)

+ 0010 0000 0000 0000 0000 (номер блока)

0010 0000 0000 0001 0000 (физический адрес)

Помимо удобства обработки, описанный метод адресации обусловлен тем, что команды программы и обрабатываемые ею данные располагаются в разных частях памяти или в разных сегментах. Если процессору потребуются данные, то процессор использует адрес, с которого начинается сегмент данных, и смещение искомой переменной в этом сегменте.