Статус нашего сайта: |
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 |
Таненбаум Э.- Архитектура компьютера. стр.296Есть две причины, по которым данные могут копироваться из одного места в другое. Одна из них фундаментальна: присваивание переменным значений. Следующая операция присваивания выполняется путем копирования значения, которое находится в ячейке памяти с адресом В, в ячейку А, поскольку программист дал команду это сделать: А = В Вторая причина копирования данных — предоставить возможность быстрого обращения к ним. Как мы уже видели, многие команды могут обращаться к переменным только в том случае, если они находятся в регистре. Поскольку существует два возможных источника данных (память и регистр) и два возможных приемника данных (память и регистр), существует также 4 различных способа копирования. В одних компьютерах для этих четырех случаев поддерживаются 4 команды, в других — единственная команда. Некоторые компьютеры используют команду LOAD для загрузки данных из памяти в регистр, команду STORE для сохранения в памяти данных из регистра, команду MOVE для перемещения данных из одного регистра в другой, но вообще не имеют команд для копирования из одной части памяти в другую. Команды перемещения данных должны как-то указывать, сколько данных нужно переместить. Существуют команды для перемещения разных объемов данных — от одного бита до всей памяти. В машинах с фиксированной длиной слова обычно перемещается ровно одно слово. Любые перемещения других объемов данных (больше или меньше слова) должны выполняться программно с использованием операций сдвига и слияния. Некоторые архитектуры команд дают возможность копировать фрагменты данных размером меньше слова (они обычно измеряются в байтах), а также сразу нескольких слов. Копирование нескольких слов рискованно, особенно если максимальное количество слов достаточно большое, поскольку такая операция может занять много времени и существует вероятность ее прерывания в середине. Некоторые машины с переменной длиной слов содержат команды, которые определяют только адреса источника и приемника, но не объем данных — в этом случае перемещение продолжается до тех пор, пока не встретится специальное поле, идентифицирующее окончание данных. Бинарные операции Бинарные операции — это такие операции, которые получают результат на основе значений двух операндов. Все архитектуры команд содержат команды для сложения и вычитания целых чисел. Кроме того, практически во всех архитектурах имеются команды умножения и деления целых чисел. Вероятно, нет необходимости объяснять, почему компьютеры оснащены арифметическими командами. В следующую группу бинарных операций входят булевы команды. Хотя существует 16 булевых функций от двух переменных, команды для всех 16 поддерживаются в очень немногих машинах. Обычно поддерживаются только операции И, ИЛИ и НЕ; иногда кроме них еще ИСКЛЮЧАЮЩЕЕ ИЛИ, НЕ-ИЛИ и НЕ-И. Важным применением операции И является выделение битов из слов. Рассмотрим машину со словами длиной в 32 бита, в которой на одно слово приходится четыре 8-разрядных символа. Предположим, что нужно отделить второй символ от остальных трех, чтобы его напечатать. Это значит, что нужно создать слово, в котором этот символ займет правые 8 бит, а левые 24 бит должны стать нулевыми (так называемое выравнивание вправо). |