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

[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.18.

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

Указатель стэка обычно входит в состав регистров ЦП микро-ЭВМ.

Стэки применяются, когда требуется оперативное последовательное запоминание данных, используемых при вычислениях в обратном порядке, при работе с под-

Оснодная память

-7 (Проталкивание)

J/казатепь стэка

Редерсидньй счетчик

*1 (ВьтапкиВание)

£1 N*1

Ft Н*1

Стзк

Рис. 2.18. Стэк с указателем

Программами для запоминания адресов возврата в .основную программу и при работе с прерываниями для запоминания состояния основных блоков ЦП.

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

LXI SP (непосредственная загрузка УС). По этой команде ее адресное поле загружается в указатель стэка:

(УС)-(Адресное поле).

PUSH PSW (проталкивание в стэк содержимого аккумулятора и регистров состояния ЦП). Данная команда обеспечивает сохранение в стэке содержимого аккумулятора и всех регистров состояния ЦП (РП, 5,



Z и Р). Информация с регистров состояния записывается в одну об-щую ячейку памяти.

При исполнении этой команды содержимое аккумулятора пересылается в ячейку, адресуемую указателем стэка, уменьшенным на единицу:

[(УС) 1](Л).

Содержимое регистров состояния пересылается в ячейку, адресуемую указателем стэка, уменьшенным на два:

[(УС)-2](РП)(5)(2) (Р),

а содержимое самого указателя стэка уменьшается на два:

(УС ) (УС)-2.

Кроме содержимого аккумулятора в стэке можно хранить и содержимое рабочих регистров ЦП, для чего используются команды типа PUSH г.

Так например, по команде PUSH В осуществляется проталкивание в стэк содержимого регистра В:

[(УС)-1](В), (уС)(УС)-1.

Для выталкивания данных из стэка используются команды типа POP.

POP PSW (выталкивание из стэка содержимого аккумулятора и регистров состояния ЦП). По этой команде происходит восстановление содержимого регистров состояния и аккумулятора, запомненного в ячейках стэка, адресуемых указателем. При этом сначала выталкивается слово, фиксирующее состояние регистров ЦП, затем - содержимое аккумулятора. После выполнения этих операций содержимое указателя стэка увеличивается на два:

(РП) (5) (Z)(P)[(УС)], (Л)[(УС) + 1],

(УС)(УС)+2.

Аналогичный смысл имеют команды типа POP г. Например, по команде POP В происходит восстановление в ЦП информации о состоянии рабочего регистра В:

(5)[(УС)], (УС)-(УС) + 1.



VВопросы применения стэков при работе с подпро-rpaViMaMH и при организации прерываний будут рассмотрен в дальнейшем.

2.5. ВЫПОЛНЕНИЕ КОМАНД

Прежде чем перейти к рассмотрению основных приемов 11рограммирования для микро-ЭВМ, остановимся несколько подробнее на вопросах, связанных с выполнением команд. Важность этих вопросов особенно наглядно проявляется при программировании задач обработки сигналов РТС в реальном масштабе времени, ког-

Пердьш цикл Втврой цикп Третий цикл Четдертыа цикл paSombi ЦП работы ЦП работы ЦП paSombi ЦП

фаза Фаза вытп-выЮрки нения

Фаза Фаза дыпол-выборки нения

Фаза фаза выпол-Ыорка нения

Фаза Фаза Выпол-быборки нения

Iff Такты t; tj tj ts tg t, tg

I 1 I I I I II I I M I I 1 1 I 1 I I I I I 1 I i

Рис. 2.19. Временная диаграмма выполнения команд микро-ЭВМ

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

Любая команда в микро-ЭВМ выполняется за один или более циклов работы процессора, называемых также машинными циклами, или микроциклами. Каждый такой цикл состоит из двух фаз - фазы выборки и фазы выполнения (рис. 2.19).

В течение фазы выборки происходит чтение команды из памяти и ее декодирование. При этом осуществляются следующие действия:

содержимое ячейки памяти, адрес которой задан счетчиком команд, считывается в регистр данных;

к содержимому счетчика команд добавляется еди-ннца;

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

Если выбранная команда выполняется за один цикл, то далее следует фаза выполнения.



[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