Статус
нашего
сайта:
ICQ Secrets Center is Online  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

Таненбаум Э.- Архитектура компьютера. стр.297


Таненбаум Э.- Архитектура компьютера. стр.297

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

А:

10110111 10111100 ПОПОИ 10001011 В (маска):

00000000 11111111 00000000 00000000 А И В:

00000000 10111100 00000000 00000000

Затем результат сдвигается на 16 бит вправо, чтобы нужный символ оказался в правой части слова.

Важным применением команды ИЛИ является помещение битов в слово. Эта операция обратна операции извлечения. Чтобы изменить правые 8 бит 32-раз рядного слова, не повредив при этом остальные 24 бита, сначала нежелательные 8 бит надо заменить нулями, а затем новый символ соединить операцией ИЛИ с полученным результатом:

А:

10110111 10111100 11011011 10001011 В (маска):

11111111 11111111 11111111 00000000 А И В:

10110111 10111100 11011011 00000000

С:

00000000 00000000 00000000 01010111 (А И В) ИЛИ С:

10110111 10111100 11011011 01010111

Операция И удаляет единицы, поэтому в полученном результате никогда не бывает больше единиц, чем в любом из двух операндов. Операция ИЛИ вставляет единицы, поэтому в полученном результате всегда по крайней мере столько же единиц, сколько в операнде с большим количеством единиц. Операция ИСКЛЮЧАЮЩЕЕ ИЛИ, в отличие от них, симметрична в отношении единиц и нулей. Такая симметрия иногда может быть полезной, например при порождении случайных чисел.

Большинство компьютеров сегодня поддерживают команды с плавающей точкой, которые в основном соответствуют арифметическим операциям с целыми числами. Большая часть машин поддерживает по крайней мере 2 варианта таких чисел: более короткие для скорости и более длинные на тот случай, если требуется высокая точность вычислений. Существует множество возможных форматов для чисел с плавающей точкой, но сейчас практически везде применяется единый стандарт IEEE 754. Числа с плавающей точкой и этот стандарт обсуждаются в приложении Б.

Унарные операции

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

Очень полезны команды сдвига и циклического сдвига. Они часто даются в нескольких вариантах. Сдвиги — это операции, при которых биты сдвигаются влево или вправо, при этом биты, которые сдвигаются за пределы слова, утрачиваются. Циклические сдвиги — это сдвиги, при которых биты, вытесненные с одного конца, появляются на другом конце слова. Разницу между обычным сдвигом и циклическим сдвигом иллюстрирует следующий пример:

А:

00000000 00000000 00000000 01110011 Сдвиг А вправо на 2 бита:

00000000 00000000 00000000 00011100 Циклический сдвиг А вправо на 2 бита:

11000000 00000000 00000000 00011100

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

Сдвиги вправо часто выполняются с расширением по знаку. Это значит, что позиции, освободившиеся на левом конце слова, заполняются знаковым битом (О или 1) исходного слова, как будто знаковый бит перетаскивают вправо. Кроме того, это значит, что отрицательное число остается отрицательным. Вот как выглядят сдвиги на 2 бита вправо:


⇐ Предыдущая страница| |Следующая страница ⇒

.