Если адреса программы должны помещаться в это 16-разрядное поле, то это будет означать, что программы не могут быть больше 2te, что на сегодняшний день является слишком малым значением. Альтернативой могло бы стать указание регистра, который бы всегда добавлялся к адресу условного перехода, чтобы инструкция делала следующее вычисление:
Также вам может показаться, что такая тема как http://www.taxi-van.ru/taxi_airport_domodedovo.html никак не связана и даже не тематична. Хотя, может быть и связана. В любом случае все-таки зайдите на сайт taxi-van.ru. Тема такси в аэропорт Домодедово там представлена весьма широко. На том сайте можно узнать много интересного на тему такси в аэропорт Домодедово. Что означает вообще тема такси в аэропорт Домодедово, где найти такси в аэропорт Домодедово - про это написано на сайте taxi-van.ru. Это очень важная для многих людей тема - такси в аэропорт Домодедово. Спасибо сайту taxi-van.ru за информацию на тему такси в аэропорт Домодедово.
Эта сумма позволяет программе быть больше и по-прежнему использовать условные переходы, решая, таким образом, проблему размера адреса перехода. Возникает вопрос: какой регистр использовать?
Ответ дает наблюдение за тем, как используется условный переход. Этот переход используется в циклах и в инструкциях if, поэтому он чаще всего осуществляется на какую-нибудь не слишком отдаленную инструкцию. Например, около половины всех условных переходов в контрольных задачах SPEC осуществляются не далее чем на 16 инструкций.
Поскольку счетчик команд содержит адрес текущей инструкции, можно осуществлять переход в пределах 215 слов or текущей инструкции, если PC будет использоваться в качестве регистра, добавляемого к адресу.
Почти все циклы и инструкции it намного меньше, поэтому PC является идеальным выбором.
Эта форма адресации перехода называется относительной адресацией по счетчику команд. Как будет показано в главе 4, оборудованию удобнее увеличить показания PC заблаговременно, чтобы он указывал на следующую инструкцию. Поэтому MIPS-адрес обычно вычисляется относительно адреса следующей инструкции, а не относительно текущей инструкции.
Как и многие самые современные компьютеры, MIPS использует относительную адресацию по счетчику команд для всех условных переходов, поскольку место назначения этих инструкций будет, скорее всего, не далеко от места начала перехода.
Поскольку все MIPS-инструкции имеют длину 4 байта, MIPS удлиняет дистанцию условного перехода за счет того, что относительная адресация по счетчику юманд ссылается на количество слов до следующей инструкции, а не на количество байтов. Таким образом, 16-разрядное поле может задать условный переход в четыре раза дальше, интерпретируя содержимое поля как относительный адрес слова, і не относительный адрес байта. Содержимое 26-разрядного поля в инструкции безусловного перехода также является адресом слова, что означает, что оно представляет 28-разрядный адрес байта.
Уточнение. Так как счетчик имеет размер 32 разряда, то для безусловных переходов 4 разряда должны поступать из какого-нибудь другого места. Инструкция безусловного перехода MIPS заменяет только нижние 28 разрядов счетчика команд, оставляя іерхние 4 разряда этого счетчика без изменений. Загрузчик и компоновщик должны избегать выхода программы за границу адреса 256 Мбайт : в противном случае безусловный переход должен быть заменен тереходом по регистру, перед которым находятся другие инструкции для загрузки а регистр полного 32-разрядного адреса.
Большинство условных переходов нацелены на близлежащие адреса, но иногда условный переход осуществляется очень далеко, дальше, чем это может быть представлено в 16 разрядах инструкции условного перехода. Здесь на выручку приходит ассемблер, который поступает так же, как он зто делает с большими адресами или константами: он вставляет безусловный переход на место назначения условного перехода и инвертирует условие, чтобы условный переход решат, нужно ли пропустить безусловный переход.
Следует заметить, что отдельная операция может использовать более одного режима адресации. Сложение, к примеру, использует как непосредственную, так и регистровую адресацию.
Иногда приходится выполнять обратное преобразование машинного языка для воссоздания исходного кода на языке ассемблера. Один из примеров - просмотр так называемого «дампа памяти».
Ранее показано MlPS-кодирование полег для машинного языка MIPS. Этот процесс помогает при ручном транслировании, проводимом между языком ассемблера и машинным языком.
Опубликовал katy
June 26 2015 07:17:14 ·
0 Комментариев ·
3230 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.