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

[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 \\

£1

(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.001