![]() |
Главная Микропроцессорные системы [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 120, а затем к содержимому аккумулятора будет прибавлено число 3 1, хранящееся в О 1 20 ячейке. Регистровая косвенная адресация. Данный способ является частным случаем косвенной адресации, когда в адресном поле командного слова указывается номер одного из регистров ЦП, в котором хранится адрес операнда (исполнительный адрес). Такая организация ад- Счетяик команд Регистры ЦП Регистр команд Адрес команды Указатель регистра
регистр даннЬ1х Данные Рис. 2.14. Метод регистроврй косвенной адресации ресации позволяет обращаться к любой ячейке памяти, используя команду длиной в одно слово. Процедура регистровой адресации схематически показана на рис. 2.14. Примерами команд с регистровой косвенной адресацией являются команды хранения STAX и загрузки LDAX, используемые в микропроцессорах серии К580. Так, но команде STAX В содержимое аккумулятора пересылается в ячейку памяти, адрес которой предварительно записан в регистровую пару ВС ЦП, т. е. [(В)(С)](Л), где квадратные скобки используются для условного обозначения содержимого ячейки памяти по адресу, указанному заключенным в них символом. Команда LDAXB используется для загрузки аккумулятора содержимым ячейки памяти, адрес которой записан в паре регистров ЦП В и С: (Л)[(5)(С)]. Рассмотренные команды являются типовыми командами этой группы. Адресация относительно счетчика команд. При этом способе адресации слово, записанное в адресном поле команды, воспринимается как двоичное число со знаком, который хранится в старшем разряде этого слова (рис. 2.15). Исполнительный адрес получается путем алгебраического сложения содержимого счетчика команд с указанным числом. Пусть, например, адресное поле команды имеет 8 разрядов, причем старший разряд - знаковый. Тогда данный способ позволяет адресовать ячейки памяти в диапазоне от (СК)-128 до (СК) + 127. Если счетчик команд получит единичное приращение, то исполнительный адрес формируется с учетом номера следующей команды, подлежащей выполнению. Диапазон адресуе- Счетчик комйнЯ Регистр команд Адрес команды
Регистр данных Данные Исполнительный адрес Рис. 2.15. Метод адресации относительно счетчика команд мых в этом случае ячеек тоже сместится на единицу и будет находиться между ячейками с номерами (СК)- - 127 и (СК) + 128. Адресация относительно счетчика команд представляет собой довольно экономичный метод, поскольку здесь не требуется наличие дополнительных команд, как это имеет место, например, в случае использования постранично-относительного способа адресации. Кроме того, при этом существенно упрощается перемещение программы в памяти микро-ЭВМ. Индексная адресация. В соответствии с этим методом адресации исполнительный адрес получается как сумма содержимого специального индексного регистра и адресного поля команды (рис. 2.16). Всякий раз, когда выполняется индексная команда, содержимое индексного регистра увеличивается или уменьшается на величину приращения. Используя индексную адресацию, можно значительно упростить программирование циклов и алгоритмов обработки массивов данных, таких как списки, матрицы и т. п. Частным случаем этого метода адресации является автоиндексирование с положительными и отрицательны- Адрес команды
Индексный регистр Регистр данных Исполнительный адрес Данные Рис. 2.16. Метод индексной адресации МИ приращениями. В этом случае адрес операнда берется только из индексного регистра, к содержимому которого добавляется или вычитается приращение для получения адреса следующего операнда. 2.4. ОРГАНИЗАЦИЯ МАГАЗИННОЙ ПАМЯТИ (СТЭКА) Стэк представляет собой динамический последовательный список данных, доступ к которому возможен с одного конца. Стэк называют еще магазинной памятью {по аналогии с магазином винтовки), или списком типа Пустой I \\
(f) (f) Рис. 2.17. Операции проталкивания и выталкивания и,з стэк а «вошедший последним выходит первым». Запоминание в стэке называют проталкиванием и обозначают символом (I). Выборку из стэка называют выталкиванием и обозначают символом (f). Эти операции иллюстрируются на рис. 2.17 для трех проталкиваний в стэк последовательности чисел F2, £7 и 33 и двух последовательных выталкиваний из стэка. Такое представление стэка яепосредственно реализуется на основе двунаправленных регистров сдвига. Однако на практике значительно чаще используют не перемещение информации по всем ячейкам стэка, а перемещение некоторого указателя, [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.0807 |