Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
материалы_2_полуг_1.doc
Скачиваний:
4
Добавлен:
08.09.2019
Размер:
138.75 Кб
Скачать

4.2.3. Типы и размеры операндов

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

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

Для задания символов (1 байт = 8 бит) в машинах компании IBM используется код EBCDIC, но в машинах других производителей почти повсеместно применяется кодировка ASCII. Еще до сравнительно недавнего времени каждый производитель процессоров пользовался своим собственным представлением вещественных чисел (чисел с плавающей точкой). Однако за последние несколько лет ситуация изменилась. Большинство поставщиков процессоров в настоящее время для представления вещественных чисел с одинарной и двойной точностью придерживаются стандарта IEEE 754.

В некоторых процессорах используются двоично-кодированные десятичные числа, которые представляются в упакованном и неупакованном форматах. Упакованный формат предполагает, что для кодирования цифр 0–9 используются 4 разряда и что две десятичные цифры упаковываются в каждый байт. В неупакованном формате байт содержит одну десятичную цифру, которая обычно изображается в символьном коде ASCII.

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

5. Многоуровневая схема программирования

5.1. Машинный уровень и микропрограммный уровень

В ЭВМ любая информация представляется и хранится в виде двоичных слов. В соответствии с этим и отдельные команды также представляются в виде двоичных слов. Поскольку команды помещаются в память, то длину слова-команды выбирают в со­ответствии с длиной двоичных слов, хранимых в памяти. Команда может размещаться в нескольких последовательных ячейках памяти, причем число требуемых ячеек памяти может меняться от команды к команде.

Структура, форма и смысл отдельных команд машинного языка обуслов­ливаются имеющимся набором команд и структурой машинных слов. На последовательных ЭВМ программа состоит из следующих друг за другом отдельных команд, выполняемых, как правило, в порядке их сле­дования. Так как эта последовательность команд помещается в линейную (последовательную) память машины, каждая команда получает опреде­ленный адрес. Эти адреса используются в специальных командах (командах перехода), которые предназначены для достижения большей гибкости управления порядком выполнения команд программы. Обычно по завершении выполнения какой-либо команды для исполнения выби­рается следующая по порядку команда. С помощью команды перехода можно прервать этот естественный порядок выполнения команд и ука­зать явно адрес той команды, с которой следует продолжить выполнение программы.

Для формулирования чисто машинной программы важно знать и ее место в памяти (а также и ее отдельных ко­манд), так как знание адресов отдельных команд необходимо для команд перехода. Часто в машинных программах исходят из того, что адресами последовательных команд являются последовательные натуральные числа или натуральные числа с постоянным шагом, если все слова-команды имеют фиксированную длину. Тогда достаточно знать только начальный адрес программы, чтобы установить адрес любой команды.

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

Каждой машинной команде микропроцессора соответствует своя микропрограмма, состоящая из микроопераций. Микропрограммы всех команд содержатся в управляющей памяти устройства управления процессора, которая реализуется на программируемой логической матрице (ПЛМ). Устройство управления дешифрует код машинной команды и выполняет соответствующую ей микропрограмму. Микропрограмма определяет управляющие сигналы, выдаваемые устройством управления. Арифметико-логическое устройство (АЛУ) микропроцессора представляет собой комбинационные схемы, настраиваемые сигналами микроопераций на различные преобразования. Это может быть двоичное или двоично-десятичное сложение, вычитание, логическое умножение и т.д. При написании микропрограмм операций в АЛУ в микрокомандах задаются микрооперации, определяющие выбор источников операндов для АЛУ, настраивающие АЛУ на выполнение различных преобразований и указывающие место занесения результата, сформированного АЛУ.