Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций Комп схем и АК 2011.doc
Скачиваний:
705
Добавлен:
10.02.2016
Размер:
13.66 Mб
Скачать

16.7. Форматы данных в кр580вм80

Основной формат данных изображен на рис. 16.6.

Рис.16.6. Основной формат данных

В микропроцессоре байт данных может интерпретироваться следующим образом:

  • Целое число без знака

255(10) = 1111 1111(2) = FF(16) (FFH)

. . . . . . . . . . . . . . . .

0(10) = 0000 0000(2) = 00(16) (00H).

  • Число со знаком в дополнительном коде

+127(10) = 0111 1111(2) = 7F(16)

. . . . . . . . . . . . . . . .

0(10) = 0000 0000(2) = 00(16)

-1(10) = 1111 1111(2) = FF(16)

. . . . . . . . . . . . . . . .

-128(10) = 1000 0000(2) = 80(16).

  • Двухразрядное двоично-десятичное число

99(10) = 1001 1001(2) = 99(16)

. . . . . . . . . . . . . . . .

0(10) = 0000 0000(2) = 00(16).

  • Логический байт данных.

В ряде случаев используется двухбайтовый формат данных:

  • Двухбайтовое число со знаком в дополнительном коде

  • Двухбайтовое число без знака

16.8. Форматы команд в кр580вм80

Для команд используются одно-, двух-, трехбайтовые форматы, причем код операции (КОП) занимает всегда 1 байт. Кроме того, следует помнить, что ША имеет 16 разрядов, т.е. позволяет адресоваться к памяти в 64К однобайтовых ячеек. Следовательно, в этом случае для адреса требуется 2 байта.

В то же время, используя команды INPUT/OUTPUT, программист может адресоваться к 256- регистрам ППУ. Следовательно, в этом случае для адреса требуется только 1 байт, который передается по младшим разрядам ША А7...А0. (Этот же байт дублируется в старших разрядах ША А15...А8, т.е. если адрес регистра F8, то на ША присутствует F8F8).

В общем случае форматы команд МП имеют вид, показанный на рис. 16.7. В первом байте помещается КОП, а во втором однобайтовый операнд или номер регистра ППУ (рис. 16.7, а, б).

Рис.16.7. Форматы команд

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

16.9. Способы адресации

Способы адресации рассмотрим очень коротко, поскольку все типы адресации в общем виде разобраны ранее.

Прямая адресация

В этом случае источником или приемником операнда являются ячейки памяти или регистр ППУ.

Адрес ячейки памяти или регистра ППУ записывается в команде:

  • двухбайтовая команда – адрес регистра ППУ;

  • трехбайтовая команда – адрес ячейки памяти.

Регистровая адресация

В этом случае источником или приемником операнда является РОН. Номер РОН записывается в коде операции. Команды однобайтовые (номер РОН – 3 разряда).

Косвенная адресация

В этом случае источником или приемником операнда является ячейка памяти. Команды однобайтовые. Адрес ячейки памяти находится в регистровой паре, например HL. Есть команды инкремента и декремента (1) содержимого регистровых пар, что позволяет модифицировать адрес.

Стековая адресация

В этом случае источником или приемником операнда является ячейка памяти. Команды однобайтовые.

Адрес вершины стека находится в указателе стека SP. При заполнении стек растет в сторону уменьшения адресов, т.е. формируется стек, который ранее был назван перевернутым. Начальный адрес стека устанавливается в указателе стека (SP) программным путем. Уже отмечалось, что SP имеет 16 разрядов, поэтому, если начальным адресом стека выбрать последний адрес всего адресного пространства, то стек может иметь емкость 64 Кбайт.

Обмен со стеком (т.е. загрузка/выгрузка) производится двухбайтовыми словами. При этом загрузка в стек сводится к следующей последовательности действий со стороны МП:

  • выполняется операция (SP) = (SP) - 1;

  • по новому адресу записывается старший байт вводимого двухбайтового слова;

  • выполняется операция (SP) = (SP) - 1;

  • по новому адресу записывается младший байт (второй) вводимого двухбайтового слова.

Выгрузка стека сводится к следующему:

  • считывается младший байт по адресу (SP);

  • выполняется операция (SP) = (SP) + 1;

  • считывается старший байт по новому адресу;

  • выполняется операция (SP) = (SP) + 1.

Непосредственная адресация

В этом случае операнд находится в самой команде. Операнд может быть одно- и двухбайтовым. В соответствии с этим команды могут быть двухбайтовыми и трехбайтовыми (первый байт всегда занимает КОП).

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