Составители:
41
2.2. Кодирование программ и система команд
Все операции в ЭВМ выполняются над электрическими
сигналами, закодированными двоичной цифрой 0 или 1. Поэтому
перед занесением в память данные и команды должны быть вручную
или аппаратно преобразованы в двоичную форму. Однако при
написании программы команды могут быть записаны в любой другой
форме (например, мнемонической, как в табл. 2.1). В общем случае
программа может кодироваться четырьмя способами: в двоичной,
восьмеричной, шестнадцатеричной и символической или
мнемонической форме.
Двоичная форма команды. Эта форма является единственной,
которую понимает машина. Каждой ЭВМ присуща система команд в
двоичном коде, которая понятна ей. Регистр команд, куда
помещается команда из памяти, связан электрическими цепями с
устройством управления ЭВМ, где производится декодирование
команды, и инициируются сигналы по реализации команды. В табл.
2.2 приведено содержимое части памяти ЭВМ, где хранятся
программа и данные для суммирования двух чисел из примера
параграфа 2.1. Левый столбец – это адреса ячеек в двоичной форме.
Правый столбец представляет содержимое ячеек в двоичной форме.
Адрес имеет 11 разрядов (память ЭВМ состоит из 2048 = 2
11
ячеек), а
каждая из ячеек – по 16 разрядов. Для удобства чтения двоичных
чисел и их перевода в шестнадцатеричную систему они разбиты на
тетрады.
Восьмеричное и шестнадцатеричное кодирование. Из
предыдущего примера ясно, что записывать программу в двоичном
коде очень неудобно и утомительно, если учесть, что средняя по
сложности программа состоит из нескольких сотен или тысяч нулей
и единиц. Для сокращения записи целесообразно использовать
систему счисления с основанием 2
3
= 8 или 2
4
= 16 (см. параграф
1.3). Выбор для кодирования команд той или иной системы
счисления в основном связан с форматом команд ЭВМ. В нашем
случае удобнее шестнадцатеричная система, так как большинство
полей в командах базовой ЭВМ (см. рис. 2.2) равно или кратно 4. В
табл. 2.3 приведена та же программа, что и в табл. 2.1 и 2.2, только
закодированная в шестнадцатеричной системе. Для программиста
такое кодирование более удобно, чем двоичное.
Мнемоническое (символическое) кодирование.
Шестнадцатеричное (или восьмеричное) кодирование имеет
очевидное преимущество перед двоичным. Однако для длинных
программ и оно неудобно. Программист должен выучить наизусть
шестнадцатеричные коды всех команд, использующихся в машине (в
Страницы
- « первая
- ‹ предыдущая
- …
- 42
- 43
- 44
- 45
- 46
- …
- следующая ›
- последняя »
