Статус нашего сайта: |
ICQ Information Center |
ICQ SHOP 5-значные 6-значные 7-значные 8-значные 9-значные Rippers List ОПЛАТА СТАТЬИ СЕКРЕТЫ HELP CENTER OWNED LIST РОЗЫСК!New! ICQ РЕЛИЗЫ Протоколы ICQ LOL ;-) Настройка компьютера Аватарки Смайлики СОФТ Mail Checkers Bruteforces ICQTeam Soft 8thWonder Soft Other Progs ICQ Patches Miranda ICQ ФорумАрхив! ВАШ АККАУНТ ICQ LiveJournal
РекламаНаш канал:irc.icqinfo.ru |
Таненбаум Э.- Архитектура компьютера. стр.291Другие режимы адресации тоже имеют смысл. Косвенная регистровая адресация позволяет программе вычислить целевой адрес, поместить его в регистр, а затем перейти по полученному адресу. Такой способ дает максимальную гибкость, поскольку целевой адрес вычисляется во время выполнения программы. Но он также оставляет лазейку для бессчетного числа трудно обнаруживаемых ошибок. Индексная адресация, при которой известно смещение от регистра, также является вполне приемлемой. Этот режим обладает теми же характеристиками, что и косвенная регистровая адресация. Еще один режим — относительная адресация по счетчику команд. В данном случае для получения целевого адреса смещение (со знаком), находящееся в самой команде, прибавляется к счетчику команд. По сути, это индексная адресация, где в качестве регистра используется счетчик команд. Ортогональность кодов операций и режимов адресации С точки зрения программного обеспечения команды и режимы адресации должны иметь регулярную структуру с минимальным числом форматов команд. При такой структуре компилятору гораздо проще порождать нужный код. Все коды операций должны поддерживать любые режимы адресации, если это имеет смысл. Более того, для всех регистровых режимов должны быть доступны все регистры, включая указатель фрейма (ЕР), указатель стека (ЭР) и счетчик команд (РС). Рассмотрим форматы 32-разрядных команд для трехадресной машины (рис. 5.17). Здесь поддерживаются до 256 кодов операций. В варианте 1 формата каждая команда имеет два входных регистра (источника) и один выходной регистр (приемник). Этот формат используется для всех арифметических и логических команд. Рис. 5.17. Форматы команд для трехадресной машины Неиспользованное 8-разрядное поле в конце команды может потребоваться для дальнейшей дифференциации команд. Например, можно иметь один код для всех операций с плавающей точкой, а различаться эти операции будут по дополнительному полю. Кроме того, если установлен бит 23, тогда задействуется вариант 2 формата, а второй операнд уже является не регистром, а 13-разрядной непосредственной константой со знаком. Команды LOAD и STORE тоже могут использовать этот формат для обращения к памяти при индексном способе адресации. Необходимо также иметь небольшое число дополнительных команд (например, команд условных переходов), но они легко подходят под вариант 3 формата. Например, можно приписать один код операции каждому (условному) переходу, вызову процедуры и т. д., тогда останется 24 бита для смещения по счетчику команд. Если предположить, что это смещение считается в словах, диапазон будет составлять 32 Мбайт. Несколько кодов операций можно зарезервировать для команд LOAD и STORE, которым нужны длинные смещения в варианте 3 формата. Теперь рассмотрим структуру двухадресной машины, в которой в качестве любого операнда может использоваться слово из памяти (рис. 5.18). Такая машина умеет складывать слово памяти с регистром, регистр со словом памяти, два регистра и два слова памяти. В настоящее время обращение к памяти связано со значительными издержками, поэтому такая структура не очень распространена, но если с развитием технологий обращаться к памяти станет менее накладно, получится простое и эффективное решение. Машины PDP-11 и VAX, в которых использовались похожие форматы, были очень популярны и доминировали на рынке мини-компьютеров в течение двух десятилетий. |