Сложность машины с точки зрения пользователя
Основная память
Регистры
Каналы ввода-вывода
Абсолютная и относительная адресация
Базовый регистр
Индексный регистр
Другие способы адресаций
Типы команд
Команды с фиксированной точкой
Команды десятичной арифметики
Логические команды
Команды передачи управления
Команды арифметики с плавающей точкой
Привилегированные команды и команды управления процессором
Еще один способ классификации команды
Форматы команд машин, память которых организована словами
Набор команд IBM часть 1
Формат команд ЭВМ UNIVAC 1100
Управляющее и арифметическое устройство

Команды с фиксированной точкой

Команды с фиксированной точкой оперируют с адресами, индексными регистрами, счетчиками или ячейками, содержащими числа с фиксированной точкой и выполняют над ними такие операции двоичной арифметики, как сложение, вычитание, умножение, деление, проверка знака, сравнение, сдвиг, засылка в регистр и запоминание. Обычно операнды этих команд содержат 32 бит (одно слово), включая знак. Операнды с фиксированной точкой могут содержать также 16 бит (полуслово); в операциях сдвига, умножения и деления могут использоваться 64, битовые операнды.

Первый бит операнда определяет знак числа, остальные — величину числа (см. рис. 4,6). Все операнды с фиксированной точкой трактуются как целые числа со знаками. Если знаковый бит содержит 0, то представляемое число считается положительным. Отрицательные числа представляются в дополнительном коде. Первый бит их представления равен 1.  

Команды проверки знака сложения, вычитания, сдвига и сравнения вырабатывают код признака. Остальные команды с фиксированной точкой не делают этого. Код признака равен 0, 1 или 2, если результат операции соответственно равен 0 (например, сравниваемые операнды равны), меньше 0 (первый операнд меньше второго) или больше 0 (первый операнд больше второго). Если при выполнении команд возникает переполнение, код признака равен 3.

Операторы условного перехода языков высокого уровня представляются на машинном языке как соответствующие арифметические команды, сопровождаемые проверками кода признака, в зависимости от величин которого управление передается на ту или иную ветвь программы. Например, оператор
IF (A-B<0)GO ТО MINUS

языка КОБОЛ может быть представлен в машинных командах следующим образом. Сначала выполняется команда вычитания А — В. (Если А и В не записаны в одном и том же представлении, а именно в формате с фиксированной точкой, с плавающей точкой или в упакованном формате, то они сначала преобразуются к одному из этиг форматов, скажем к упакованному.) Результат выполнения команды помещается в специальную ячейку, отведенную компилятором. Затем выполняемся команда условного перехода, маска которой равна 0100 и соответствует коду признака, равному 1.

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

Hosted by uCoz