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

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

ВИЛО, в программах встречается большое число точек разветвления, в которых необходимо принимать решение о дальнейшем направлении вычислений. Выбор этого направления зависит от результатов, полученных в самом процессе вычислений, и обеспечивается командами управления. К типовым командам управления относятся команды типа HLT {HALT - останов), JMP {JUMP - безусловный переход) и ряд команд условного перехода, таких как JC (переход по переполнению), JNC (переход по отсутствию переполнения), JZ (переход по нулю), JP (переход по плюсу), JM (переход по минусу). В конкретных микропроцессорных ЭВМ некоторые из этих команд могут отсутствовать, в других,- набор команд управления может быть богаче, однако в любом случае в их составе должны быть команды HLT, JMP и хотя бы одна команда условного перехода.

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

внутренних регистров ЦП и памяти сохраняется. Типичным примером использования команды HLT является случай, когда пользователь микро-ЭВМ хочет на время остановить машину для проверки результатов, полученных к определенному моменту, и, возможно, внести изменения в ход дальнейших вычислений. По команде безусловного перехода JMPM прекращается выполнение последовательно размещенных в памяти микро-ЭВМ команд, а следующей выполняется команда, расположенная в ячейке с номером М. Условно операцию, осуществляемую в соответствии с этой командой, можно записать как М.

Пример, приведенный в табл. 2.8, иллюстрирует выполнение команды типа JMP.

В таблице представлен фрагмент некоторой программы. До 77-й ячейки продвижение по счетЧИку команд происходит последовательно, т. е. с шагом, равным еди-

Номер ячейки

Содержимое

53->-

ADD 17

Переход

SUB 18 JMP 53



Память

Счетчик команд


Регистр команд t

Рис. 2.3. Выполнение команды перехода

йице. Содержимым 77-й ячейки является команда безусловного перехода SMP 53, по которой происходит возврат программы к команде, расположенной в ячейке 53. После этого все команды снова выполняются последовательно. При исполнении команды перехода +/ счетчик команд загружается содержимым адресной части так называемого регистра команд (РК) (рис. 2.3), служащего для хранения очередной, извлеченной из памяти команды. После ее выполнения счетчик команд отключается от регистра команд и его содержимое увеличивается на единицу, обеспечивая продвижение по последовательно расположенным ячейкам памяти.

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

\. JCM. (переход по переполнению). При исполнении этой команды переход к команде, помещенной в ячейке М, осуществляется только тогда, когда регистр переполнения находится в единичном состоянии. В противном случае выполняется следующая по порядку команда. Кратко эта операция записывается так:

(РП)=1:фМ,

(РП)=0:ф/+1.

Последнее выражение можно представить в следующей эквивалентной форме:

если (РП)=0, то (СК)(СК) + 1.

При этой записи учитывается тот факт, что содержимое счетчика команд определяет номер исполняемой команды.

2. JNCM (переход по отсутствию переполнения). Команда аналогична предыдущей с той лишь разницей, что переход осуществляется при нулевом состоянии ре-28



гистра переполнения. Ее содержание определяется следующим выражением:

(РП)=ОгфМ,

(РП)-1

3. ]ZM (переход по нулю). В этом случае переход к команде, помещенной в ячейке М, осуществляется при равенстве нулю результата текущей операции. В противном случае исполняется очередная команда. Таким образом:

(2)=.1гфЛГ, (2)=0:ф/+1.

4. }РМ (переход по плюсу). По этой команде осуществляется проверка, является ли содержимое аккумулятора положительным числом. Если да, т. е. (S)=0, то происходит переход к команде, расположенной в ячейке памяти с номером М, в противном случае выполняется следующая команда. Использование этой команды, как и любой другой команды условного перехода, не влечет за собой изменения содержимого аккумулятора, регистра переполнения или какой-либо ячейки памяти, включая рабочие регистры ЦП. В краткой форме данную команду можно записать следующим образом:

(5)==0:Af, (S) = l =»/+!.

5. IM.M (переход по минусу). Эта команда полностью аналогична предыдущей, за исключением условия, при выполнении которого осуществляется переход. Команда JMM записывается так:

(S) = l гфМ,

(S)=0

В различных микропроцессорах могут осуществляться и другие условия, по которым происходит переход, например проверка на четность результата, хранящегося в аккумуляторе. В ряде микро-ЭВМ используются так называемые команды пропуска по условию, или команды типа SKJP [8]. Однако эти команды выполняют, по существу, те же функции принятия решения и



[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