![]() |
Главная Микропроцессорные системы [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
Команда SUBM используется для вычитания содержимого ячейки памяти с номером М из содержимого аккумулятора, результат операции остается в аккумуляторе: (Л)-(Л) - (М). Вычитание, как правило, делается в коде с дополнением до двух. В табл. 2.6 приведен пример выполнения команды SUB 51 с теми же исходными данными, что и в табл. 2.5. Таблица 2.6
Для хранения знака числа в микро-ЭВМ используется старший разряд разрядной сетки, или знаковый разряд (ЗР). Наличие единицы в этом разряде означает, что хранимое число отрицательно и представлено в дополнительном коде. Преобразование двоичных чисел в дополнительный код и обратное преобразование осуществляются в АЛУ с помощью специальных схем. Команды ANAM, ORAM и XRA М реализуют соответственно логические операции поразрядного умножения (операцию «И»), поразрядного сложения (операцию «или») и сложения по модулю два (операцию «ИСКЛЮЧАЮЩЕЕ ИЛИ») для содержимого аккумулятора и ячейки памяти с номером М. Выполняемые ими операции можно записать в следующем виде: ANAM: {А){А)А(М), ORAM: {А){А)\У{М), XRAM: (Л)(Л) ф (М). В табл. 2.7 приведен пример выполнения команд вида ANA 73, ORA 73 и XRA 73. Таблица 2.7
По команде СМР М производится сравнение содержимого аккумулятора с содержимым ячейки памяти с номером М. Содержимое аккумулятора после выполнения этой команды сохраняется, а состояние РП и триггера флага 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.0011 |