самый низкий и самый высокий адрес в памяти, где наименьшая доступная единица составляет 4 байта - PullRequest
0 голосов
/ 26 февраля 2012

Был задан вопрос о том, «какой самый низкий и самый высокий адрес задан 2 ^ 10 байт памяти, в котором 4-байтовое слово является наименьшей адресуемой единицей?»

Самый низкий адрес равен 0 Ключ ответа имеетсамый высокий адрес 2 ^ 10-4 Я думал, что это будет (2 ^ 10-1) / 4, так как каждые 4 байта адресованы?

Ответы [ 3 ]

1 голос
/ 26 февраля 2012

Я думаю, что человек, который задал вопрос, запутался в своем собственном определении. Действительно, если «наименьшая адресуемая единица» - это «4-байтовое слово», то из 2 ^ 10 байтов следует, что 2 ^ 8 разных адресов, что означает, что самый высокий адрес равен 2 ^ 8-1 или 255.

В типичных компьютерных архитектурах это не так. Наименьшая адресуемая единица фактически является байтом (поскольку все адреса представляют количество байтов от «начала»), но действительные адреса - это только те, которые делятся на 4. Таким образом, 0 является действительным адресом, а 4 является действительный адрес, но попытка использовать 3 приведет к исключению. Кстати, это называется «выравнивание», и для разных инструкций может потребоваться различное выравнивание, которое может варьироваться от 1 до 128, а иногда и больше. Обычно это степень 2, потому что с ними легко работать.

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

0 голосов
/ 26 февраля 2012

Вам нужен самый высокий адрес, поэтому ваш адресный ключ правильный.Самый высокий адрес - это место, где у вас будет достаточно места (4 байта) для добавления данных.Вы просто отвечаете, что получаете количество 4-байтовых элементов данных, которые может хранить память.

0 голосов
/ 26 февраля 2012

Итак, у вас есть 2 ^ 10 байтов, что составляет 1024 байта, что составляет 1 МБ.Теперь ваша память выровнена на 4 байта, поэтому первый адрес будет: 0x4, а последний адрес будет 1020/4 = 255, что равно 0xFF в шестнадцатеричном формате.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...