Форматы команд

https://nnprostitutki.website/ankets/kunnilingus заказать куннилингус

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

1. Используем команду ввод для считывания с клавиатуры первого числа. Но нам еще надо указать ячейку, в которую должно быть записано первое число. Дальше команду ввод повторим, но укажем другой адрес для записи второго числа:

Код операции

Адрес 1

Ввод

А1

Ввод

А2

2. Теперь введем команду сложения +. Складывать будем содержимое ячейки с адресом А1 и ячейки с адресом А2. Результат, полученный в процессоре, необходимо записать в память, например, в ячейку А3:

Код операции

Адрес 1

Адрес 2

Адрес 3

+

А1

А2

А3

3. Далее выведем результат из ячейки А3 командой вывод, указав, например, адрес принтера:

Код операции

Адрес 1

Адрес 2

Адрес 3

Вывод

А3

Принтер

4. Для завершения программы осталось ввести последнюю команду для остановки машины — стоп:

Код операции

Адрес 1

Адрес 2

Адрес 3

стоп

В итоге программа будет иметь вид:

Код операции

Адрес 1

Адрес 2

Адрес 3

Ввод

А1

Ввод

А2

+

А1

А2

А3

Вывод

А3

Принтер

Стоп

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

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

К безадресным командам обычно относятся команды управления машиной, обращения к подпрограмме, команды прерывания, команды изменения слова состояния процессора, условных и безусловных переходов и др.

Команды эти могут иметь различный формат, в том числе и содержать в себе адреса, но к операндам они не обращаются.

,

Одноадресные команды обычно по некоторому правилу модифицируют операнд. Сюда можно отнести команды изменения знака, очистки ячейки, инвертирования, прибавления или вычитания 1 и т.п. Команды имеют следующий формат:

КОП

D

где D является операндом или определяет адрес операнда.

Двухадресные команды обрабатывают два операнда и могут иметь, например, такой формат:

,

КОП

S

D

где S — источник, а D — приемник (порядок следования внутри команды S и D в разных семействах машин различный). Операция производится в следующем порядке:

D <операция> S è D,

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

К двухадресным командам относятся такие команды, как сложение, вычитание, сравнение двух операндов, пересылки числа из одной ячейки в другую, некоторые логические команды.

Красотки http://msk-prostitutki.website/ Москвы знают все об отдыхе

Оставить комментарий

Вы должны авторизоваться для отправки комментария.