Главная  Микропроцессорные системы 

[0] [1] [2] [3] [4] [5] [6] [ 7 ] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92]

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

1= РА

Адрес ячейки памяти

Фай/1 регистрод


Данные

Шина данных

Аккумулятор

Регистр В

Регистр С

Рис. 2.2. Упрощенная структурная схема микро-ЭВМ в режиме выполнения команд загрузки и хранения

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

Команды выполнения арифметических и логических операций. К этой группе команд относятся команды арифметических операций ADD (СЛОЖЕНИЕ), SUB (ВЫЧИТАНИЕ), а также команды логических операций, такие как ANA (ЛОГИЧЕСКОЕ УМНОЖЕНИЕ), ОКА (ЛОГИЧЕСКОЕ СЛОЖЕНИЕ), XRA (ИСКЛЮЧАЮЩЕЕ ИЛИ), СМР (СРАВНЕНИЕ) и ряд других. Рассмотрим кратко некоторые из команд этой группы.

По команде ADD М выполняется двоичное сложение содержимого аккумулятора и содержимого ячейки памяти с номером М, причем результат остается в аккумуляторе. Если в старшем разряде аккумулятора возникает единица переноса, то изменяется состояние регистра переполнения. Используя введенные выше условные



обозначения, операцию сложения можно записать в следующем виде: (А){А)-\-(М). В табл. 2.5 показано, как изменяется содержимое аккумулятора, регистра переполнения и ячейки памяти при исполнении команды ADD 51.

Таблица 2.5

Состояние

Содержимое

ячейки (5l)io

Исходное

0000 1101

0000 1111

После выполнения команды

0001 1100

0000 1111

Команда SUBM используется для вычитания содержимого ячейки памяти с номером М из содержимого аккумулятора, результат операции остается в аккумуляторе: (Л)-(Л) - (М). Вычитание, как правило, делается в коде с дополнением до двух. В табл. 2.6 приведен пример выполнения команды SUB 51 с теми же исходными данными, что и в табл. 2.5.

Таблица 2.6

Состояние

Содержимое

ячейки (51)io

Исходное

0000 1101 Зр

0000 1111

После выполнения команды

1110 1110

0000 1111

Для хранения знака числа в микро-ЭВМ используется старший разряд разрядной сетки, или знаковый разряд (ЗР). Наличие единицы в этом разряде означает, что хранимое число отрицательно и представлено в дополнительном коде. Преобразование двоичных чисел в дополнительный код и обратное преобразование осуществляются в АЛУ с помощью специальных схем. Команды ANAM, ORAM и XRA М реализуют соответственно логические операции поразрядного умножения (операцию «И»), поразрядного сложения (операцию



«или») и сложения по модулю два (операцию «ИСКЛЮЧАЮЩЕЕ ИЛИ») для содержимого аккумулятора и ячейки памяти с номером М. Выполняемые ими операции можно записать в следующем виде:

ANAM: {А){А)А(М),

ORAM: {А){А)\У{М),

XRAM: (Л)(Л) ф (М).

В табл. 2.7 приведен пример выполнения команд вида ANA 73, ORA 73 и XRA 73.

Таблица 2.7

Состояние

Команда

Содержимое

А

1 ячейки 73

Исходное

1010 1010

1111 0000

После выполнения команды

ANATA

1010 0000

1111 0000

ORA 73

1111 1010-

1111 0000

XRA73

0101 1010

1111 0000

По команде СМР М производится сравнение содержимого аккумулятора с содержимым ячейки памяти с номером М. Содержимое аккумулятора после выполнения этой команды сохраняется, а состояние РП и триггера флага Z зависит от результатов сравнения:

если {А)>{М), то (РП)=0, (Z)=0;

если (А) = {М), то (РП)=0, (2)=1;

если (Л)<(М), то (РП)=1, (2)=0.

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

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



[0] [1] [2] [3] [4] [5] [6] [ 7 ] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92]

0.0009