Сегментный регистр, IP-регистр и проблема адресации памяти! - PullRequest
2 голосов
/ 28 марта 2010

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

Ниже приведен фрагмент первого вопроса

Поскольку мы знаем, что если у нас есть одна мегабайтовая память, нам нужно 20 бит для адресации этой памяти. Другое дело, что каждая ячейка памяти имеет физический адрес, который составляет 20 бит в 1 Мб памяти. Регистр IP в IAPX88 имеет 16 бит. Теперь моя точка зрения такова, что мы вообще не можем получить доступ к памяти через регистр IP, потому что для адреса памяти требуется 20-битный адрес, а регистр IP состоит из 16 бит. Если у нас есть память 64 КБ, то IP-регистр может получить доступ к этой памяти, потому что эта память требует 16 бит для адресации. Но если IP-адрес в 1 Мб памяти не может сказать мне, прав я или нет, если нет, то почему? Предположим, физический адрес памяти 11000000000000000101 Теперь, как мы можем получить доступ к этой ячейке памяти на 16 бит.

Ниже приводится подробность следующего вопроса:

Мой следующий вопрос: предположим, что регистр IP указывает на область памяти, а регистр сегмента также указывает на область памяти (начало сегмента), объем памяти составляет 1 МБ, как мы можем получить доступ к области памяти этими двумя 16-битными регистры говорят мне последовательность шагов, как осуществляется доступ к адресуемой 20-битной ячейке памяти. Если вы ответили, мы берем значение сегмента и сдвигаем его влево на 4 бита, а затем добавляем в него значение IP, чтобы получить 20-битный адрес, тогда возникает еще один вопрос - шина адреса (шина адреса должна быть 20 в битах), регистры и регистр сегмента, и регистр IP имеют 16 бит каждый, теперь, если шина адреса имеет ширину 20 бит, это означает, что шина адреса подключена к обоим этим регистрам. Если это не так, то еще одна вещь, которая приходит мне в голову, состоит в том, что оба этих регистра генерируют 20-битный адрес, и был бы регистр, который может хранить 20 битов, и этот регистр был бы связан и с этим регистром, и с шиной адреса. .

1 Ответ

0 голосов
/ 28 марта 2010

Ответ в том, что регистр сегмента всегда используется, всегда создается 20-битный адрес. Если регистр сегмента содержит ноль, то можно получить доступ только к первым 64 КБ, но к нему все еще можно обращаться с помощью 20-битного адреса.

...