Читайте данную работу прямо на сайте или скачайте

Скачайте в формате документа WORD


Вычислительные машины и системы

ПЕРВЫЙ СЕМЕСТР

ЛЕКЦИЯ N 1

 ОСНОВЫ МАШИННОЙ АРИФМЕТИКИ

 Системы счисления и способы перевода чисел

 2из одной системы в другую.

Системой счисления называют систему приемов и правил, позво-

ляющих станавливать взаимно-однозначное соответствие между любым

числом и его представлением в виде совокупности конечного числа

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

ния, называют цифрами.

В зависимости от способа изображения чисела са помощьюа цифр

системы счисления делятся на  1позиционные 0 и  1непозиционные 0.

В  1непозиционных 0 системах любое число определяется кака неко-

торая функция от численных значений совокупности цифр, представ-

ляющих это число. Цифры в непозиционных системах счисления соот-

ветствуют некоторыма фиксированныма числам. Пример непозиционной

системы - римская система счисления. В вычислительной технике не-

позиционные системы не применяются.

Систему счисления называют  1позиционной 0, если одна и т же

цифра можета принимать различные численные значения в зависимости

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

заданное число. Пример такой системы - арабская десятичная систе-

ма счисления.

В позиционной системе счисления любое число записывается в

виде последовательности цифр:

A =  7+ 0 a 4m-1 0 a 4m-2 0... a 4k 0... a 40 0 , a 4-1 0... a 4-l 0 (I)

Позиции, пронумерованные индексами k (-l < k < m-1) называ-

ются разрядами числа. Сумма m+l соответствует количеству разрядов

числа (m - число разрядов целой части числа, l - дробной части).

Каждая цифра a 4k 0 в записываемой последовательности может при-

нимать одно из N возможных значений. Количество различныха цифр

(N), используемыха для изображения чисел в позиционной системе

счисления, называется основанием системы счисления. Основание N

указывает, во сколько раз единица k+1 -го разряда больше единицы

k -го разряда, цифра a 4k 0 соответствует количеству единиц k -го

разряда, содержащихся в числе.

Таким образом, число может быть представлено в виде суммы:

(A) 4N 0 =  7+ 0(a 4m-1 0N 5m-1 0 + a 4m-2 0N 5m-2 0 +...+ a 40 0 + a 4-1 0N 5-1 0 +...+ a 4-l 0N 5-l 0) (II)

Основание позиционной системы счисления определяет ее назва-

ние. В вычислительной технике применяются двоичная, восьмеричная,

десятичная и шестнадцатеричная системы. В дальнейшем, чтобы явно

указать используемуюа систему счисления, будем заключать число в

скобки и в индексе казывать основание системы счисления.


- 2 -

В двоичной системе счисления используются только две цифры:

0 и 1. Любое двоичное число может быть представлено ва следующей

форме:

(A) 42 0 =  7+ 0(a 4m-1 02 5m-1 0 + a 4m-2 02 5m-2 0 +... + a 40 0 + a 4-1 02 5-1 0 +... + a 4-l 02 5-l 0)

Например, двоичное число

(10101,101) 42 0 = 1*2 54 0+0*2 53 0+1*2 52 0+0*2+1+1*2 5-1 0+0*2 5-2 0+1*2 5-3 0 = (21,625) 410

В восьмеричной системе счисления для записи чисел использу-

ется восемь цифр (0,1,2,3,4,5,6,7), в шестнадцатеричной - шест-

надцать (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F).

Таблица для перевода чисел из одной системы счисления в другую.

──────────────┬──────────────────┬──────────────┬────────────────

Двоичные а Восьмеричные Десятичныеа Шестнадцате-

числ │ числ │ числ ричные числа

──────────────┼──────────────────┼──────────────┼────────────────

0,1а │ 0,04 │ а0,0625а │ 0,1

0,001 │ 0,1 │ 0,125 │ 0,2

0,01 │ 0,2 │ 0,25 │ 0,4

0,1 │ 0,4 │ 0,5 │ 0.8

1 │ 1 │ 1 │ а1

10 │ 2 │ 2 │ 2

11 │ 3 │ 3 │ 3

100 │ 4 │ 4 │ 4

101 │ 5 │ 5 │ 5

110 │ 6 │ 6 │ 6

│ 7 │ 7 │ 7

1 │ 10 │ 8 │ 8

1001 │ 11 │ 9 │ 9

1010 │ 12 │ 10 │ A

1011 │ 13 │ 11 │ B

1100 │ 14 │ 12 │ C

1101 │ 15 │ 13 │ D

0 │ 16 │ 14 │ E

│ 17 │ 15 │ F

1 │ 20 │ 16 │ 10

──────────────┴──────────────────┴──────────────┴────────────────

Для хранения и обработки данных в ЭВМ используется двоичная

система, так как она требует наименьшего количества аппаратуры по

сравнению с другими системами. Все остальныеа системы счисления

применяются только для добства пользователей.

В двоичной системе очень просто выполняются арифметические и

логические операции над числами.


- 3 -

Таблица сложения:

0 + 0 =а 0

0 + 1 =а 1

1 + 0 =а 1

1 + 1 = 10

Таблица умножения:

0 * 0 = 0

0 * 1 = 0

1 * 0 = 0

1 * 1 = 1

Многоразрядные числа складываются, вычитаются, умножаются и

делятся по тем же правилам, что и в десятичной системе счисления.

Перевод числа из одной системы в другую выполняется по уни-

версальному алгоритму, заключающемуся в последовательном  2делении

 1целой 0 части числа и образующихся  1целых частных 0 на 2 основание 0 новой

системы счисления, записанное  2в исходной  0системе 2  0счисления, и в

последующем  2умножении 0  1дробной 0 части и  1дробных частей 0 получающихся

 1произведений 0 на то же основание, записанноеа  2в 0  2 исходной  0системе

счисления.

При переводе  1целой 0 части получающиеся в процессе последова-

тельного деления остатки представляют цифры целой части числ в

новой системеа счисления, записанные цифрамиа исходной системы

счисления. Последний остаток является  2старшей 0 цифрой переведенно-

го числа.

При переводе  1дробной 0 части числа  2целые 0 части чисел, получаю-

щихся при множении, не частвуют в последующих множениях. Они

представляют собой цифры дробной части исходного числ ва новой

системе счисления, изображенные числами старой системы. Значение

первой целой части является  2первой 0 цифрой после запятой переве-

денного числа.

.

- 4 -

Пример перевода числа 30,6 из десятичной системы в двоичную:

 Перевод целой части Перевод дробной части

Последовательное Остатки Целые части - Последовательное

деление разряды пере- множение

веденной дроби

0, 6

X

2

30 / 2 0 ──────┐ ───────────────────

15 / 2 1 ─────┐│ ┌──── 1, 2

7 / 2 1 ────┐││ │ X

3 / 2 1 ───┐│││ │ 2

1 / 2 1 ──┐││││ │ ───────────────────

0 │││││ │┌─── 0, 4

│││││ ││ X

│││││ ││ 2

│││││ ││ ───────────────────

│││││ ││┌── 0, 8

│││││ │││ X

│││││ │││ 2

│││││ ││а ───────────────────

│││││ │││┌─ 1, 6

│││││ ││││

Результат: 0,1001

Если при переводеа дробной части получается периодическая

дробь, то производята округление, руководствуясь заданнойа точ-

ностью вычислений.

Пример перевода числа 0,01 из двоичной системы в десятичную.

 Перевод целой части Перевод дробной части

0, 0100

X

1010

_0| _1010 . ───────────────────

 _1010  . |110 ────────┐а ┌───── 10, 1

1011 │ X

 _1010 . │ 1010

10 ────────────┼┐ │ ───────────────────

││ │┌─── 101,

││ ││

Результат: 62,25


- 5 -

Примечание 1:а 1010 - основание десятичной системы счисления

в двоичной записи.

Примечание 2: десятичные эквиваленты разрядов искомого числа

находим по таблице.

При переводе чисел из любой системы счисления ва десятичную

удобнее пользоваться непосредственно формулой (II):

(775) 48 0 = 7*8 52 0 + 7*8 + 5 = (509) 410

Для осуществления автоматического перевода десятичных чисел

в двоичную систему счисления необходимо вначале каким-то образом

ввести их в машину, Для этой цели обычно используется двоично-де-

сятичная запись чисел или представление этих чисел в кодах ASCII.

При двоично-десятичной записи каждая цифра десятичного числа

заменяется четырехзначным двоичным числом (тетрадой):

(983,65) 410 0 = (1001 1 0011, 0110 0101) 42-10

При записи чисел в кодах ASCII цифрама от 0 до 9а поставлены

в соответствиеа восьмиразрядные двоичные коды ота 0011а до

00001.

ЭВМ, предназначенные для обработки экономической информации,

например IBM AT, позволяют производить арифметические операции в

десятичной системе счисления над числами, представленными в дво-

ично-десятичных кодах и кодах ASCII.

Шестнадцатеричная и восьмеричная системы счисления использу-

ются только программистами и операторами ЭВМ, так как представле-

ние чисел в этих системах более компактное, чем в двоичной, и пе-

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

то (основания этих систем представляют собой целую степень числа

2).

Для перевода восьмеричного числа в двоичное достаточно каж-

дый восьмеричный разряд представить тремя двоичными (триадой), а

для перевода шестнадцатиричного числа - четырьмя (тетрадой):

(376,51) 48 0 = (011 110, 101 001) 42

(1AF8) 416 0 = (1 1010 1) 42


ПЕРВЫЙ СЕМЕСТР

ЛЕКЦИЯ N 2

 ОСНОВЫ МАШИННОЙ АРИФМЕТИКИ

 Формы представления чисел в ЭВМ.

Разряд двоичного числа представляется в ЭВМ некоторым техни-

ческим стройством, например, триггером, двум различным состояни-

ям которого приписываются значения 0 и 1. Группа таких устройств,

предназначенная для представления в машине многоразрядного числа,

называется регистром.

Структур двоичного регистра, представляющего в амашине

n-разрядное слово:

┌───┬───┬───┬───┬───┐

│n-1│n-2│...│ 1 │ 0 │

└───┴───┴───┴───┴───┘

Отдельные запоминающие элементы пронумерованы от 0а до n-1.

Количество разрядова регистра аопределяета точность представления

чисел. Путем соответствующего величения числа разрядова регистра

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

жено с величением количества аппаратуры (в лучшем случае зависи-

мость линейная, в худшем - квадратичная).

В ЭМа применяются две основные формы представления чисел:

полулогарифмическая с плавающей запятой и естественная с фиксиро-

ванным положением запятой.

При представлении чисел са фиксированной запятойа положение

запятой закрепляется ва определенном месте относительно разрядов

числа и сохраняется неизменным для всеха чисел, изображаемыха в

данной разрядной сетке. Обычно запятая фиксируется перед старшим

разрядом или после младшего. В первом случае ва разряднойа сетке

могут быть представлены только числа, которые по модулю меньше 1,

во втором - только целые числа.

Для кодирования знак числ используется старший ("знако-

вый") разряд.

При выполнении арифметических действий над правильными дро-

бями могут получаться двоичные числа, по абсолютной величине

больше или равные единице, что называется 1 переполнением разрядной

 1сетки. 0 Для исключения возможности переполнения приходится масшта-

бировать величины, частвующие в вычислениях.

Диапазон представления правильных двоичных дробей:

2 5-(n-1) 0  7, 0 │(A)│ 7, 0 1 - 2 5-(n-1) 0.

.

- 2 -

Числа, которые по абсолютной величине меньше единицы младше-

го разряда разрядной сетки, называются  2машинным нулем 0.

Диапазон представления целыха двоичныха чисела со знакома в

n-разрядной сетке:

0  7, 0 │(A)│ 7, 0 2 5n-1 0 - 1.

Использование представления чисела c фиксированной запятой

позволяет простить схемы машины, повысить ее быстродействие, но

представляет определенные трудности при программировании. В нас-

тоящее время представление чисел с фиксированной запятой исполь-

зуется как основное только в микроконтроллерах.

В универсальных ЭВМ основным является представление чисела с

плавающей запятой. Представление числа с плавающей запятой в об-

щем случае имеет вид:

A =  7+ 0m * N 5+p 0,

где N - основание системы счисления,

p - целое число, называемое порядком числа A,

m - мантисса числа A (│m│<1).

Так как в ЭВМ применяется двоичная система счисления, то

A =  7+ 0m * 2 5+p 0,.

причем порядок и мантисса представлены в двоичной форме.

Двоичное число называется нормализованным, если его мантисса

удовлетворяет неравенству

1/2  7, 0 │ m │ 7  0< 1.

Неравенство показывает, что двоичное число является нормали-

зованным, если в старшем разряде мантиссы стоита единица. Напри-

мер, число 0,110100*10 5100 0 - нормализованное, а 0,001101*10 5110 0 -

ненормализованное.

Ситуация, когда в процессе вычислений получено число с │m│ 7. 01

называется переполнением разрядной сетки.

Нормализованное представлениеа чисела позволяета сохранить в

разрядной сетке большее количество значащих цифр и, следователь-

но, повышает точность вычислений. Однако современные ЭВМ позволя-

ют, при необходимости, выполнять операции также и над ненормали-

зованными числами.

.

- 3 -

Диапазон представления нормализованных двоичных чисел, взя-

тых по абсолютному значению, довлетворяет неравенству:

2 5-1  0* 5  02 5-(2k-1) 7, 0 │(A)│  7, 0 (1 5  0- 5  02 5-l 0) 5  0* 5  02 52k-1 0,

где l - число разрядов мантиссы;

k - число разрядов порядка;

2 5-1 0 - наименьшее значение нормализованной мантиссы;

1-2 5-l 0 - наибольшее значение нормализованной мантиссы.

Широкий диапазон представления чисела c плавающей запятой

удобен для научных и инженерных расчетов. Для повышения точности

вычислений во многих ЭВМ предусмотрена возможность использования

формата двойной длины, однако при этом происходит увеличение зат-

рат памяти на хранение данных и замедляются вычисления.

 Представление отрицательных чисел в ЭВМ.

Для кодирования знак двоичного числа используется старший

("знаковый") разряд (ноль соответствует плюсу, единица - минусу).

Такая форм представления числ называется  2прямым кодом 0.

Формула для образования прямого кода правильной дроби имеет вид:

 7(

 72 0 A, если A 7. 00,

[A] 4пр 0 = 7 *

 72 0 1-A, если A<0.

 79

Примеры:

A =а 0,110а -->а [A] 4пр 0 = 0,110

A = -0,110а -->а [A] 4пр 0 = 1 - (-0,110) = 1,110

Прямой код целого числа получается по формуле:

 7(

 72 0  5а  0 A, если A 7. 00,

[A] 4пр 0 = 7 *

 72 010 5n-1  0- 5  0A, если A<0.

 79

где 10 - число 2 в двоичной системе счисления,

n -а количество позиций в разрядной сетке.

Например, при n=8

A =а 110а -->а [A] 4пр 0 = 00110

A = -110а -->а [A] 4пр 0 = 1 - (-110) = 10110

В ЭМа прямой код применяется только для представления поло-

жительных двоичных чисел. Для представления отрицательных чисел.

применяется либо дополнительный, либо обратный код, так как над


- 4 -

отрицательными числами в прямом коде неудобно выполнять арифмети-

ческие операции.

Формула для образования дополнительного кода 4  0дроби:

[A] 4доп 0 = 10 + A.

Формула для образования обратного кода 4  0дроби:

[A] 4обр 0 = 10 - 10 5-(n-1) 0 + A.

Например, при n = 8, для A = -0,111

[A] 4доп 0 = 10 + (-0,111) = 1,00

[A] 4обр 0 = 10-10 5-7 0+(-0,111) = 1,-0,111 = 1,000.

Формула для образования дополнительного кода 4  0целого числа:

[A] 4доп 0 = 10 5n 0 + A.

Формула для образования обратного кода 4  0целого числа:

[A] 4обр 0 = 10 5n 0 - 1 + A.

Например, при n = 8, для A = -111

[A] 4доп 0 = 1 + (-111) = 100

[A] 4обр 0 = 1-1+(-111) = -111 = 1000.

Таким образом, правила для образования дополнительного и об-

ратного кода состоят в следующем:

- для образования дополнительного кода отрицательного числа

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

разряды инвертировать (заменить 1 на 0, 0 - на 1), после чего

прибавить 1 к младшему разряду;

- для образования обратного кода отрицательного числ необ-

ходимо в знаковом разряде поставить единицу, все цифровые раз-

ряды инвертировать.

Примечание: при данных преобразованиях нужно учитывать раз-

мер разрядной сетки.

Прямой кода можно получить из дополнительного и обратного по

тем же правилам, которые служат для нахождения дополнительного и

обратного кодов.

Замена вычитания двоичных чисел A 41  0- 4  0A 42 0 сложением с дополне-

ниями [A 41 0] 4пр  0+ 4  0[-A 42 0] 4доп 0а или [A 41 0] 4пр  0+ 4  0[-A 42 0] 4обр 0 позволяет опериро-

вать со знаковыми разрядами так же, как и с цифровыми. При этом

перенос из старшего знакового разряда, если он возникает, учиты-

вается по разному для обратного и дополнительного кодов:

- при использовании дополнительного кода единица переноса из


- 5 -

знакового разряда отбрасывается;

- при использовании обратного кода единица переноса из зна-

кового разряда прибавляется к младшему разряду суммы (осуществля-

ется так называемый циклический перенос).

Пример: складываем числа A 41 0=0,10011 и A 42 0=-0,01100110

При использовании обратного кода получим:

[A 41 0] 4пр  0 =а 0,10011

+

[A 42 0] 4обр 0 =а 1,10011001

а───────────

10,00101010

└─────── +1

───────────

Результат: 0,00101011

При использовании дополнительного кода получим:

[A 41 0] 4пр  0 =а 0,10011

+

[A 42 0] 4доп 0 =а 1,10011010

а───────────

Результат: 0,00101011

Если знаковый разряд результата равен нулю, то ва получено

положительное число, которое представлено в прямом коде. Если в

знаковом разряде единица, то результат отрицательный и представ-

лен в обратном или дополнительном коде.

Для того, чтобы избежать ошибок при выполнении бинарных опе-

раций, перед переводом чисел в обратные и дополнительные коды не-

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

При сложении чисел, меньших единицы, в машине быть получены

числа, по абсолютной величине большие единицы. Для обнаружения

переполнения разряднойа сетки в ЭВМ применяются 2 модифицированные

прямой, обратный и дополнительный коды. В этих кодах знак кодиру-

ется двумя разрядами, причем знаку "плюс" соответствует комбина-

ция 00, знаку "минус" - комбинация 11.

Правила сложения для модифицированных кодов те же, что и для

обычных. Единица переноса из старшего знакового разряда в модифи-

цированном дополнительном коде отбрасывается, в модифицирован-

ном обратном коде передается в младший цифровой разряд.

Признаком переполнения служита появление в знаковом разряде

суммы комбинации 01 при сложении положительных чисел (положитель-

ное переполнение)а или 10 при сложении отрицательных чисел (отри-

цательное переполнение). Старший знаковый разряд в этиха случаях


- 6 -

содержит истинное значение знака суммы, младший является стар-

шей значащей цифрой числа. Для коррекции переполнения число нужно

сдвинуть в разрядной сетке на один разряд вправо, в освободив-

шийся старший знаковый разряд поместить цифру, равную новому зна-

чению младшего знакового разряда. После корректировки переполне-

ния мантиссы результата необходимо величить н единицу апорядок

результата.


ПЕРВЫЙ СЕМЕСТР

ЛЕКЦИЯ N 3

 ОСНОВЫ МАШИННОЙ АРИФМЕТИКИ

 Формы представления чисел в ЭВМ 0

 2(продолжение)

Система вещественных чисел, применяемая при ручных вычисле-

ниях, предполагается бесконечной и непрерывной, т.е. не существу-

ет никакиха ограничений на диапазон используемых чисел и точность

их представления.

Однако ва компьютерах реализация такой системы на аппаратном

уровне была бы нецелесообразной, хотя программно может быть реа-

лизована любая точность вычислений. Нецелесообразность аппаратной

реализации вычислений с произвольной точностью вызван тем, что

такие вычисления требуюта неоправданно большого расхода основных

машинных ресурсов: памяти и процессорного времени.

Во всеха компьютерах размеры регистров и ячеек памяти фикси-

рованы, что ограничивает систему представления чисел. Ограничения

касаются как диапазона, так и точности представления чисел, т.е.

система машинных чисел оказывается конечной и дискретной.

В любой ниверсальнойа ЭМа существуета несколько различных

форматов представления как для чисел с фиксированной, так и для

чисел с плавающей запятой. На некоторые из форматов имеются меж-

дународные стандарты, и поэтому такие форматы являются общими для

ЭВМ, построенных различными фирмами на различной элементной базе.

Следует отметить, что нестандартные форматы обычно являются неяв-

но специализированными для определенных областей применения, при-

чем разработчики аппаратуры могут не казать в документации, для

чего был предназначен тот или иной формат.

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

обрабатываются аппаратными средствами данной ЭВМ, какие - толь-

ко программными средствами. Операции над данными любого формата,

который не поддерживается аппаратурой, выполняются очень медлен-

но. Любой формат данных, который превышает размер регистров про-

цессора, не пригоден для быстрых вычислений.

Для представления  2целых чисел 0а в ЭВМ обычно применяются 8-,

16-, 32- и 64-битовый стандартные форматы, причема интерпретация

чисел как знаковых или беззнаковых обычно возлагается на програм-

миста или на компиллятор с языка высокого ровня.

.

- 2 -

Для представления 2 чисел с плавающей запятой 0 также существует

несколько стандартныха форматов, различающихся по точности, но

имеющих одинаковую структуру следующего вида:

n-1 n-2 0

┌───╥───┬───┬─────┬───╥───┬───┬─────┬───┐

а ║ а │... ║ а │... │

└───╨───┴───┴─────┴───╨───┴───┴─────┴───┘

│ └────────╥────────┘└────────╥───────┘

│ смещенный модуль

знак порядок мантиссы

мантиссы

Порядок pа задается в так называемой смещенной форме:а если

для задания порядка выделено k разрядов, то к истинному значению

порядка прибавляюта смещение, равное (2 5k-1 0 - 1). Использование

смещенной формы позволяет производить операции над порядками, как

над беззнаковыми числами, что прощает операции сравнения, сложе-

ния и вычитания порядков. Кроме того, использование смещенного

порядка прощаета операцию сравнения нормализованных чисел с пла-

вающей запятой, сводя ее к операции сравнения целых чисел.

Следует отметить, что вещественный формат с m-разрядной ман-

тиссой позволяета абсолютно точно представлять m-разрядные целые

числа, т.е. любое двоичное целое число, содержащее неа более m

разрядов, можета быть без искажений преобразовано в вещественный

формат.

 Форматы представления чисел в ПЭВМ IBM AT

Рассмотрим стандартные и нестандартные форматы, используемые

для представления чисел в ПЭВМ IBM AT.

В дальнейшема будема использовать н диаграммаха следующие

обозначения:

S - знаковый разряд;

E - поле порядка;

M - поле мантиссы;

X - неиспользуемая область;

D - цифра пакованного десятичного целого числа, представ-

ленная в двоично-десятичном коде.

Примечание: основной процессор эффективен только при опера-

циях с целыми числами, разрядность которых не превышаета разряд-

ности его внутренних регистров;а в остальных случаях более эффек-

тивен математический сопроцессор.

.

- 3 -

 Форматы представления 0  1двоичных целых чисел

1) 8-разрядное целое число без знака (поддерживается всеми

процессорами серии 80x86)

7 0

┌───────────────┐

│ │

└───────────────┘

2) 7-разрядное целое число со знаком (поддерживается всеми

процессорами серии 80x86)

7 6 0

┌─┬─────────────┐

│S│ │

└─┴─────────────┘

3) 16-разрядное целое число без знака (поддерживается всеми

процессорами серии 80x86)

15 0

┌───────────────────────────────┐

│ │

└───────────────┴───────────────┘

4) Wordа Integer (целое слово) - 15-разрядное целое число со

знаком (поддерживается всеми процессорами серии 80x86 и математи-

ческим сопроцессором)

15 0

┌─┬─────────────────────────────┐

│S│ │

└─┴─────────────┴───────────────┘

5) 32-разрядное целое число без знака (поддерживается всеми

процессорами серии 80x86, но операции с этим форматом выполняются

эффективно только 32-разрядными микропроцессорами, т.е. начиная с

i386SX)

31 0

┌───────────────────────────────────────────────────────────────┐

│ │

└───────────────┴───────────────┴───────────────┴───────────────┘

6) Short Integer (короткое целое) - 31-разрядное целое число

со знаком (поддерживается всеми процессорами серии 80x86 и мате-

матическим сопроцессором, но операции с этим форматом выполняются

эффективно только 32-разрядными микропроцессорами)

.

- 4 -

31 0

┌─┬─────────────────────────────────────────────────────────────┐

│S│ │

└─┴─────────────┴───────────────┴───────────────┴───────────────┘

7) 64-разрядное целое число без знака (частично поддержива-

ется 32-разрядными микропроцессорами)

64 0

┌───────────────────────────────────────────────────────────────┐

│ │

└───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘

8) Long Integer (длинное целое) - 63-разрядноеа целое число

со знаком (поддерживается математическим сопроцессором и частично

поддерживается 32-разрядными микропроцессорами)

64 0

┌─┬─────────────────────────────────────────────────────────────┐

│S│ │

└─┴─────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘

 Форматы представления 0  1десятичных целых чисел

1) Неупакованное 1-разрядное десятичное целое число без зна-

ка ва двоично-десятичнома коде (поддерживается всеми процессорами

серии 80x86)

7 4 3 0

┌───────┬───────┐

│0 0 0 0а D │

└───────┴───────┘

2) 1-разрядное десятичное целое число без знака в коде ASCII

(поддерживается всеми процессорами серии 80x86)

7 4 3 0

┌───────┬───────┐

│0 0 1 1а D │

└───────┴───────┘

3) Packed Decimal - пакованное 2-разрядное десятичное целое

без знака (поддерживается всеми процессорами серии 80x86)

7 4 3 0

┌───────┬───────┐

а D 41 0а а D 40 0а │

└───────┴───────┘

4) Packed Binary Coded Decimalа -а пакованноеа 18-разрядное

десятичноеа целое число со знаком (поддерживается математическим

сопроцессором)


- 5 -

79 0

┌─┬────┬─────────────────────────────────────────────────────┐

│S X │D 417 0D 416 0... D 41 0 D 40 0│

└─┴────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘

 Форматы представления вещественных чисел

1) Single Format (обычный формат)  1  0или  1  0Short Real (короткое

вещественное)а -а короткое вещественное нормализованное число со

знаком, 8-разрядным смещенным порядкома иа 24-разрядной мантиссой

(так как старший бит мантиссы нормализованного числа всегда равен

1, то он не хранится в памяти, и размера поля, выделенного для

хранения мантиссы, составляет только 23 разряда).

31 30 23 22 0

┌─┬───────────────┬─────────────────────────────────────────────┐

│S│ E │ M │

└─┴─────────────┴─┴─────────────┴───────────────┴───────────────┘

2) Doubleа Format(двойной формат) или Long Real (длинное ве-

щественное) -а длинное вещественное нормализованное число со

знаком, 11-разрядным смещенным порядкома иа 53-разрядной мантиссой

(так как старший бит мантиссы нормализованного числа всегда равен

1, то он не хранится в памяти, и размера поля, выделенного для

хранения мантиссы, составляет только 52 разряда).

63 62 52 51 0

┌─┬─────────┬───────────────────────────────────────────────────┐

│S│ E │ M │

└─┴─────┴───┴───┴───────┴───────┴───────┴───────┴───────┴───────┘

3) Extended Format (расширенный формат) или  1  0Single Extended

(обычный расширенныйа формат)а - вещественное число в расширенном

формате со знаком, 15-разрядным смещенным порядком и 64-разрядной

мантиссой. Этот формат позволяет хранить ненормализованные числа

и соответствует стандарту I 754.

79 78 64 63 0

┌─┬─────────┬───────────────────────────────────────────────┐

│S│ E │ M │

└─┴───┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘


ПЕРВЫЙ СЕМЕСТР

ЛЕКЦИЯ N 4

 ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ПОСТРОЕНИЯ ЗЛОВ ЭВМ

 Физические формы представления информации

Вся информация в ЭВМ кодируется совокупностью цифр. Ва свою

очередь цифры отображаются квантованными по двум ровням сигнала-

ми.

Следует отметить, что в цифровых стройствах сигналы изменя-

ются не непрерывно, а в дискретные моменты времени, обозначаемые

целыми числами (t = 0, 1,... n). Временной интервал между сосед-

ними моментами дискретного времени называется 2 тактом 0. Эти интер-

валы являются одинаковыми для синхронных стройств и неодинаковы-

ми для асинхронных стройств.

На физическома ровне сигналы могут быть представлены одним

из трех основных способов:а потенциальным, импульсным или динами-

ческим.

При  2потенциальном 0 способеа 0а соответствуета низкийа уровень

напряжения, 1 - высокий. Потенциальный сигнал характеризуется

мплитудами низкого (U 40 0) и высокого (U 41 0)а ровней напряжения, а

также временами нарастания и спада сигнала, которые именуются пе-

редним (t 4п 0) и задним (t 4з 0) фронтами соответственно.

При  2импульсном 0а способе 0 и 1 соответствуют импульсы различ-

ной полярности, либо 0 соответствует отсутствие, а 1 -а наличие

импульса. Импульсныйа сигнала характеризуется амплитудой импульса

U 4m 0, шириной (продолжительностью импульса по основанию) t 4и 0, и пе-

редним t 4п 0а и задним t 4з 0 фронтами импульса. В идеальном случае им-

пульсные сигналы должны появляться в тактовые моменты. В действи-

тельности имеета место запаздывание импульсного сигнала относи-

тельно тактового момента на время 7 t 0.

При 2 динамическом 0а способе представления информации двум воз-

можным значениям переменной соответствует наличие либо отсутствие

серии импульсов.

В электронных схемах и стройствах, входящих в состава ЭВМ,

применяется потенциальный способ представления информации, для

передачи информации между ЭВМ, также при работе c магнитными

носителямиа информации применяются импульсный и динамический спо-

собы.

 Математические модели схем ЭВМ

Наиболее общей моделью любой схемы, зла или стройства ЭВМ

является многополюсный черный ящик с  2l 0 входами и  2m 0а выходами. На

входы модели поступают, а на выходах появляются сигналы, кванто-

ванные по двум ровням.

.

- 2 -

┌──────────┐

x 41 0 ─────┤ ├───── y 41

x 42 0 ─────┤ ├───── y 42

. Черныйа а.

. ящик а.

. │.

x 4l 0 ─────┤ ├───── y 4m

└──────────┘

где x 4i 0 (i = 1, 2,..., l) - входные сигналы,

y 4j 0 (j = 1, 2,..., m) - выходные сигналы.

Множество значений, которые может принимать переменная x 4i 0,

называют 2 алфавитом 0 переменной x 4i 0. В современных ЭВМ алфавит вход-

ных и выходных сигналов состоит из двух букв: 0 и 1.

На входы модели поступают в каждый тактовый момент упорядо-

ченные наборы букв, называемые 2 словами 0. Множество всех допустимых

наборов слов называется  2входным алфавитом 0 X данной схемы. Анало-

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

сигналами, называется  2выходным алфавитом 0 Y.

Математические модели отражают зависимость между входнымиа и

выходными переменными схемы посредством системы уравнений:

y 4j 0(t) = f{x 41 0(t),x 42 0(t)...,x 4l 0(t), q 41 0(t),q 42 0(t),,...,q 4s 0(t)} (I)

где j = 1,2,...,m, а переменные q 41 0,q 42 0,...,q 4s 0 отражают внутренние

состояния схемы.

Если переменные y 4i 0 не зависят от внутреннего состояния схе-

мы, то одинаковым наборам входных переменных соответствует один и

тот же набор выходных переменных. Такие схемы называются  2комбина-

 2ционными 0.

При этом система равнений может быть записана в виде:

y 4j 0(t) = f{x 41 0(t),x 42 0(t)...,x 4l 0(t)}, где j = 1,2,...,m. (II)

Функции такого вида могут принимать только конечноеа число

значений, и зависята от аргументов, также принимающих конечное

число значений. Такие функции называются 2 переключательными 0.

В дальнейшема мы будем рассматривать переключательные функ-

ции, которые могут принимать только два значения - 0 и 1, и аргу-

менты которых также могут принимать только одно из этих двух зна-

чений. Такие переключательные функции получили название 2а булевых

 2функций 0.

Если выходные переменные y 4i 0(t) зависят не только от входных

переменных, но и от внутреннего состояния схемы, то для полного

ее описания необходимо казать еще одну систему равнений:


- 3 -

q 4n 0(t+1) =  7f 0{x 41 0(t),x 42 0(t)...,x 4l 0(t), q 41 0(t),q 42 0(t),,...,q 4s 0(t)}, ()

где n = 1,2,...,s.

Эта система отражает зависимость внутреннего состояния схемы

в (t+1) такте от ее состояния и входных сигналов в такте t.

Схемы, описываемые равнениями I и, получилиа название

 2цифровых автоматов 0.

Для задания цифрового автомата должны быть казаны:

1) входной алфавит слов X;

2) выходной алфавит слов Y;

3) алфавит внутренних состояний Q;

4) начальное состояние автомата q 40 0;

5) функция переходов A(q,x);

6) функция выходов B(q,x).

 Функция переходов 0а определяет зависимость состояния автомата

q(t+1) в момент времени t+1 от состояния автомата q(t) и входного

сигнала x(t) в момент t.

 Функция выходов 0а определяета зависимость выходного сигнала

y(t) от состояния автомата q(t) и входного сигнала x(t).

Автомат, описываемый системой равнений

 7(

 72 0 q(t+1) = A{q(t),x(t)},

 7*

 72 0 y(t) = B{q(t),x(t)}

 79

называется  2автоматом Мили 0.

Автомат, выходной сигнал которого y(t) в тактовый момент t

зависит только от состояния автомата q(t) и не зависит от входно-

го сигнала, называется 2 автоматом Мура 0 и описывается системой:

 7(

 72 0 q(t+1) = A{q(t),x(t)},

 7*

 72 0 y(t) = B{q(t)}.

 79


ПЕРВЫЙ СЕМЕСТР

ЛЕКЦИЯ N 5

 ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ПОСТРОЕНИЯ ЗЛОВ ЭВМ

Если для двух любых состояний q 4i 0 и q 4j 0 автомата имеется вход-

ной сигнал, переводящий автомат из состояния q 4i 0 в q 4j 0, то такой

втомат называется автоматом с  2полной системой переходов 0. Автомат

Мура имеет  2полную систему выходов 0, если выходные сигналы различны

для всех его состояний.

При построении схем ЭВМ в качестве элементов памятиа исполь-

зуются элементарные автоматы.  Элементарный автомат 0 - это автомат

Мура с двумя внутренними состояниями, двумя различными выходными

сигналами и несколькими входами, обладающий полными системами пе-

реходов и выходов.

 ТЕОРИЯ БУЛЕВЫХ ФУНКЦИЙ

Булевыми функциями называют переключательные функции, кото-

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

0 и 1.

Булевы функции могут быть заданы в виде формула или таблиц.

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

чем таблицы, так как таблица для функции ота nа аргументов будет

содержать 2 5n 0а строк (или столбцов, ав зависимости от формы табли-

цы). С другой стороны, таблицы дают наглядное представлениеа для

простых функций.

Приведем ва качестве пример наиболее часто встречающиеся

функции от одной и двух переменных:

1) Переменная x:

f(x) = x

2) Инверсия переменной x (функция НЕ):

 4_

f(x) = x

3) Константа нуля:

f(x) = 0

4) Константа единицы:

f(x) = 1

.

- 2 -

5) Дизъюнкция (функция ИЛИ):

f(x 41 0,x 42 0) = x 41 0 V x 42

Может встречаться другое обозначение: f(x 41 0,x 42 0) = x 41 0 | x 42 0.

Таблица истинности (соответствия) для этой функции имеет вид:

┌─────┬─────┬─────────┐

x 41 0 x 42 0 │ x 41 0 V x 42 0 │

├─────┼─────┼─────────┤

0а 0а │ 0 │

0а 1а │ 1 │

1а 0а │ 1 │

1а 1а │ 1 │

└─────┴─────┴─────────┘

6) Конъюнкция (функция И):

f(x 41 0,x 42 0) = x 41 0  5. 0 x 42

Может встречаться другое обозначение: f(x 41 0,x 42 0) = x 41 0 & x 42 0.

Таблица истинности для этой функции имеет вид:

┌─────┬─────┬─────────┐

x 41 0 x 42 0 │ x 41 0  5. 0 x 42 0 │

├─────┼─────┼─────────┤

0а 0а │ 0 │

0а 1а │ 0 │

1а 0а │ 0 │

1а 1а │ 1 │

└─────┴─────┴─────────┘

7) Функция ИЛИ-НЕ:

 4

f(x 41 0,x 42 0) = x 41 0 V x 42

Таблица истинности для этой функции имеет вид:

┌─────┬─────┬─────────┐

x 41 0 x 42 0 │ x 41 0 V x 42 0 │

├─────┼─────┼─────────┤

0а 0а │ 1 │

0а 1а │ 0 │

1а 0а │ 0 │

1а 1а │ 0 │

└─────┴─────┴─────────┘

.

- 3 -

8) Функция И-НЕ:

 4

f(x 41 0,x 42 0) = x 41 0  5. 0 x 42

Таблица истинности для этой функции имеет вид:

┌─────┬─────┬─────────┐

x 41 0 x 42 0 │ x 41 0 V x 42 0 │

├─────┼─────┼─────────┤

0а 0а │ 0 │

0а 1а │ 1 │

1а 0а │ 1 │

1а 1а │ 1 │

└─────┴─────┴─────────┘

9) Функция ИСКЛЮЧАЮЩЕЕ ИЛИ (сумма по модулю 2):

f(x 41 0,x 42 0) = mod2(x 41 0,x 42 0)

Таблица истинности для этой функции имеет вид:

┌─────┬─────┬─────────────┐

x 41 0 x 42 0 │ mod2(x1,x2) │

├─────┼─────┼─────────────┤

0а 0а │ 0 │

0а 1а │ 1 │

1а 0а │ 1 │

1а 1а │ 0 │

└─────┴─────┴─────────────┘

 Аксиомы алгебры логики

В алгебре логики определено отношение эквивалентности (=) и

три операции: дизъюнкция, конъюнкция и отрицание.

Отношение эквивалентности довлетворяет следующим свойствам:

x=x - рефлексивность; если x=y, то y=x - симметричность; если x=y

и y=z, то x=z - транзитивность. Из отношения эквивалентности сле-

дует 2 принцип подстановки 0:а если x=y, то в любой формуле, содержа-

щей x, вместо x можно подставить y, и будет получена эквивалент-

ная формула.

Алгебра логики определяется следующей системой аксиом:

x = 0, если x  7- 0 1 7 )

 78 0а (1)

x = 1, если x  7- 0 0 7 0

1 V 1 = 1 7 )

 78 0 (2)

0 5 . 0 0 = 0 7 0


- 4 -

0 V 0 = 0 7 )

 78 0 (3)

1  5. 0 1 = 1 7 0

0 V 1 = 1 V 0 = 1 7 )

 78 0 (4)

0 5 . 0 1 = 1 5.  00 = 0 7 0

 4_

0 = 1 7 )

 4_ 0  78 0 (5)

1 = 0 7 0

Аксиома (1) утверждает, что в алгебре логики рассматриваются

только двоичныеа переменные, аксиомы (2)-(4) определяют операции

конъюнкции и дизъюнкции, аксиома 5 - операцию отрицания.

Если в аксиомах (2)-(5), заданных парами тверждений, произ-

вести взаимную замену операций дизъюнкции и конъюнкции, также

элементов 0а и 1, то из одного тверждения пары будет получено

другое. Это свойство называется принципом двойственности.

 Теоремы алгебры логики

С помощью аксиом алгебры логики можно доказать целый ряд те-

орем и тождеств. Одним из эффективных методов доказательства тео-

рем является 2 метод перебора 0 всех значений переменных: если теоре-

ма истинна, то при подстановке любых значений переменных в обе

части выражения, формулирующего тверждение теоремы, должно полу-

читься тождество.

Методом перебора можно бедиться в справедливостиа следующих

теорем:

идемпотентные законы

x V x = x 7 )

 78

x  5. 0 x = x 7 0

коммутативные законы

x V y = y V x 7 )

 78

x  5. 0 y = y  5. 0 x 7 0

ссоциативные законы

(x V y) V z = x V (y V z) 7 )

а 78

(x  5. 0 y)  5. 0 z = x  5. 0 (y  5. 0 z) 7 0

.

- 5 -

дистрибутивные законы

x  5. 0 (y V z) = x  5. 0 y V x  5. 0 z 7 )

 78

x V y  5. 0 z = (x V y) 5. 0(x V z) 7 0

законы отрицания 4 _

x V x = 1 7 )

 4_ 0  78

x  5. 0 x = 0 7 0

0 V x = x 7 )

 78

1  5. 0 x = x 7 0

1 V x = 1 7 )

 78

0  5. 0 x = 0 7 0

законы двойственности (теоремы де Моргана)

 4 _ _

x V y = x  5.  0y 7 )

 4 0  4_ 0  4_ 0  78

x  5. 0 y = x V y 7 0

закон двойного отрицания 4  0а  4

 7( 0  4_ 7 )

 72 0 x 7 2 0 = x

 79 0

законы поглощения

x V x  5. 0 y = x 7 )

 78

x 5. 0(x V y) = x 7 0

операции склеивания 4 _

x  5. 0 y V x  5. 0 y = x 7  0  7)

 4_ 0  78

(x V y) 5. 0(x V y) = 7  0x  70

операции обобщенного склеивания

 4_ _

x 5. 0y V x 5. 0z V y 5. 0z = x 5. 0y V x 5. 0z  5  7)

 4_ 0  5а  4_ 5  0  78

(x V y) 5. 0(x V z) 5. 0(y V z) = 7  0(x V y) 5. 0(x V z)  70

 4_

x V x  5. 0 y = x V y 7 )

 4_ 0  78

x 5. 0(x V y) = x 7  5. 0 y  70


ПЕРВЫЙ СЕМЕСТР

ЛЕКЦИЯ N 6

 МЕТОДЫ ПРОЩЕНИЯ (МИНИМИЗАЦИИ) БУЛЕВЫХ ФУНКЦИЙ

Сложные булевы функции могут быть построены иза более прос-

тых.

 Элементарными функциями 0 называются функции, образованные пу-

тем использования однотипных логических операций: только операции

И, только операции ИЛИ и т.д.

Для представления сложных логических функций можно использо-

вать не все элементарные функции, только ту или иную часть их,

называемую системой. Система элементарных функций f 41 0,..., f 4k 0 на-

зывается функционально полной, если любую сложную булеву функцию

можно записать в виде формулы через функции f 41 0,..., f 4k 0.

Так, любую функцию можно представить с помощью одниха только

операций И-НЕ или только операций ИЛИ-НЕ.

В цифровых устройствах часто применяется в качествеа базовой

система из трех функций: И, ИЛИ и НЕ.

Используя законы алгебры логики, можно прощать сложные ло-

гические выражения. прощение заключается в меньшении количества

букв и количества отрицаний в выражении, что позволяет простить

схему стройств са жесткой логикойа или программу стройства с

программируемой логикой. Такое прощение позволяет меньшить се-

бестоимость и величить быстродействие стройства.

Рассмотрим функцию

 4

 7(  4_ 7а ) 4 _

f(a,b.c) = a 5. 72 0b V a 5. 0c 72 0 V a 5. 0b

 79 0

Используя законы алгебры логики, можно привести эту функцию

к виду:

 4_а  0  5а  0  4_  0  4 _  0а  4_ __ _  0а  4_ _

f(a,b.c)а =а a 5. 0(b 5. 0(a 5  0V 5  0c)) V a 5. 0bа =а ab V abc V abа =а ab V ab

 4применяем  0  4  0  4 применяем

 4законы де Морган  0  4 закон поглощения

Одной и тойа же логической функции может быть поставлено в

соответствие неограниченное количество различныха эквивалентных

формул. Наиболее добными для практического использования являют-

ся так называемые  2нормальные формы 0 представления сложных логичес-

ких функций.

 Элементарной конъюнкцией 0 Q называется логическое произведе-

ние переменныха и их отрицаний, причем каждая переменная должна

встречаться в произведении только один раз.

.

- 2 -

 4_ _

Пример элементарной конъюнкции:а Q = x 41 0x 42 0x 43 0x 44 0x 46 0.

Аналогично  2элементарной дизъюнкцией 0 В называется логическая

сумма переменных и их отрицаний, причем каждая переменная должна

встречаться в сумме только один раз.

 4_

Пример элементарной дизъюнкции:а D = x 41 0 V x 43 0 V x 44 0.

Формула, эквивалентная заданной и представляющая собой логи-

ческую суммуа элементарныха конъюнкций, называется  2дизъюнктивной

 2нормальной формой 0 (ДНФ) заданной формулы. Дизъюнктивная нормаль-

ная форма существует для любой логической функции.

Аналогично считается, что логическая функция задан своей

 2конъюнктивной 0  2нормальной формой 0 (КНФ), если она выражена посредс-

твом логического произведения элементарных дизъюнкций. КНФ также

существует для любой логической функции.

Например, для функции  4

 7(  4_ 7а ) 4 _

f(a,b.c) = a 5. 72 0b V a 5. 0c 72 0 V a 5. 0b

 79 0

ДНФ будет иметь вид

 4_ _

f(a,b.c) = ab V ab,

КНФ будет иметь вид

 4_ _

f(a,b.c) = (a V b)(b V c).

Одна и та же функция путем эквивалентных преобразований мо-

жет быть представлена различными КНФ и ДНФ. Из всей совокупности

нормальных форм, представляющих данную функцию, выделяют одну КНФ

и одну ДНФ, именуемые совершенными.

 Минтермом 0 (m)а n аргументов называется логическое произведе-

ние этих аргументов, причем каждый аргумент может входить в про-

изведение в прямой или инверсной форме.

Минтермы могут быть пронумерованы, причем номер минтерма оп-

ределяется как десятичный эквивалент двоичного числа, образован-

ного из значений переменных, входящих в данный набор: если пере-

менная входит в прямой форме, то ей соответствует единица, если в

инверсной - ноль.

 Макстермом 0 (M) n аргументов называется логическая сумма этих

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

или инверсной форме. Номер макстерма задается аналогично номеру

минтерма.

.

- 3 -

Рассмотрим в качестве примера случай двух аргументов:

┌─────┬─────┬─────────────┬──────────────┐

aа bа минтерм амакстерм │

├─────┼─────┼─────────────┼──────────────┤

│ │ │  4_ 0  4_ 0 │  4_ 0  4_ 0а │

0а 0а m 40 0 = a 5. 0b M 40 0 = a V bа │

│ │ │  4_ 0 │  4_ 0 │

0а 1а m 41 0 = a 5. 0b M 41 0 = a V bа │

│ │ │  4_ 0 │  4_ 0а │

1а 0а m 42 0 = a 5. 0b M 42 0 = a V bа │

│ │ │  4  0 │ │

1а 1а m 43 0 = a 5. 0b M 43 0 = a V bа │

└─────┴─────┴─────────────┴──────────────┘

Минтермы и макстермы можно геометрически представить на кар-

тах (диаграммах) Вейча. Так, для двух переменных карта Вейча бу-

дет представлять собой квадрат, причем левая половина квадрата

определяется переменной a, верхняя половина квадрата - перемен-

ной b. Это означает, что левая 4_ 0 половина квадрата соответствует

значению переменной a, правая - a, верхняя половина соответствует

 4_

b, нижняя b.

Карта Вейча для двух переменных:

 4_

 2a a

┌─────┬─────┐

│ │  4_ 0 │

 2b  0│ a 5. 0b │ a 5. 0b │

│ │ │

├─────┼─────┤

 4_ 0 а  4_ 0 │  4_ 0  4_ 0 │

 2b  0│ a 5. 0b │ a 5. 0b │

│ │

└─────┴─────┘

.

- 4 -

Карта Вейча для 5  0трех переменных:

 4_

 2a a

 5┌──────┴──────┐ ┌──────┴──────┐

┌───────┬───────┬───────┬───────┐

│  4_ 0 │ │  4_ 0 │  4_ 0  4_ 0 │

 2b  0│ a 5. 0b 5. 0c │ a 5. 0b 5. 0c │ a 5. 0b 5. 0c │ a 5. 0b 5. 0c │

│ а│ │ │ │

├───────┼───────┼───────┼───────┤

 4_ 0 а  4_ 0  4_ 0 а  4_ 0 │  4_ 0  4_ 0 │  4_ 0  4_ 0  4_ 0 │

 2b  0│ a 5. 0b 5. 0c │ a 5. 0b 5. 0c │ a 5. 0b 5. 0c │ a 5. 0b 5. 0c │

│ │ │ │ │

└───────┴───────┴───────┴───────┘

 4_ 0  5└──────┬──────┘ 4 _

 2c 0  2c c

 Свойства минтермов и макстермов:

1) Минтерм является инверсией некоторого макстерма иа наобо-

рот: 4 _

m 4i 0 = M

2 5n 0-1-i

 4_

M 4i 0 = m

2 5n 0-1-i

 4_

Пример: m 41 0 = 4  0M 42 0 (заштрихованная площадь соответствуета макс-

терму, незаштрихованная - минтерму).

 1┌┬┬┬ 0┬ 1── 0─┐

 1├┼┼┼┤ │

 1├┼┼┼ 0└ 1┬┬┬ 0┤

 1├┼┼┼┼┼┼┼┤

 1└┴┴┴┴┴┴┴┘

2) Логическая сумма всех минтермов для любого заданного чис-

ла переменных равна 1.

2 5n 0-1

V m 4i 0 = 1.

i=0

3) Логическое произведение всех макстермов для любого задан-

ного числа переменных равно 0.

2 5n 0-1

 7L 0 M 4i 0 = 0.

i=0


- 5 -

4) Два неодинаковых минтерма или макстерма имеют хотя бы од-

ну переменную, входящую в один из них в прямой, в другой - в

инверсной форме, следовательно

m 4i 5. 0m 4j 0 = 0, если i  7- 0 j;

M 4i 0 V M 4j 0 = 1, если i  7- 0 j.

 Основная теорем алгебры логики 0:а любую булеву функцию от n

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

называется 2 совершенной нормальной дизъюнктивной формой 0, или логи-

ческим произведением макстермов, которое называется 2а совершенной

 2нормальной конъюнктивной формой 0.

Логические функции отражают не только принцип работы некото-

рых частей ЭВМ, но и их состав, если каждой элементарной функции

соответствует реальный физический элемент. Любая сложная логичес-

кая функция может быть реализована некоторой частью ЭВМ, если эта

часть построена с помощью такого набора элементов, который реали-

зует все функции одной из функционально полных систем. Такой на-

бор называется функционально полным набором логических элементов

Поскольку каждая функция может быть представлена в виде раз-

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

на при помощи различныха логическиха схем. Очевидно, что более

простому логическому равнению соответствует более простая схема.

Упрощение (минимизация) функции сводится к получению ее минималь-

ной дизъюнктивной или конъюнктивной нормальной формы, т.е. такой

формы, при которой функция содержит наименьшее число переменных и

знаков логических операций.

Существует несколько методов минимизации. Ва дальнейшема мы

рассмотрим метод непосредственных преобразований и метод диаграмм

Вейча.


ПЕРВЫЙ СЕМЕСТР

ЛЕКЦИЯ N 7

 МЕТОДЫ МИНИМИЗАЦИИ БУЛЕВЫХ ФУНКЦИЙ

 Метод непосредственных преобразований

Суть данного метода заключается в том, что минимизация ис-

ходной логической функции производится путем применения к отдель-

ным членам или группам членов формулы, выражающей данную логичес-

кую функцию, основныха законова алгебры логики с целью получения

минимальной формы функции, т.е. такой, которая не содержит лишних

переменных или членов.

Лишними переменными или членами являются те, которые не вли-

яют на значение преобразуемой формулы.

Пример:

 4_  5  4_

x 41 5. 0x 42 5. 0x 43 0 V x 41 5. 0x 42 5. 0x 43 0 = x 42 5. 0x 43 5. 0(x 41 5  0V 5  0x 41 0) = x 42 5. 0x 43 5. 01 = x 42 5. 0x 43

т.е. в исходной формуле лишней являлась двоичная переменная x 41 0.

Примечание: произведенная операция называется "склеиванием"

членов формулы.

Действия, отвечающие методу непосредственных преобразований,

обычно проводятся в следующем порядке:

1) Выявляются группы двоичных переменных исходной формулы, к

которым можно применить операцию склеивания или другие законы ал-

гебры логики, приводящие выражение к более простой форме.

2) Упрощение исходной формулы путем применения к выявленным

группам соответствующих законов.

3) Преобразование промежуточной логической формулы с целью

образования таких групп переменных, к которым можно применить п-

рощающие законы алгебры логики. Здесь могут проводиться:

- группирование членов;

- действия по раскрытию скобок и выносу за скобки;

- добавление фиктивных членов, т.е. таких, совокупность ко-

торых тождественно равна нулю;

- логическое умножение одного или нескольких членов на логи-

ческую сумму переменной и ее отрицания.

4) прощение преобразованной промежуточной логической форму-

лы са получением формы, близкой к минимальной, в виде некоторой

ДНФ.

5) Выявление и даление из полученной предварительной формы

лишних членов, что дает минимальную форму исходнойа логической

функции.

В качестве примера рассмотрим минимизацию следующей функции:

 4_ _ _ _

f(a,b,c) = ab V bc V bc V ab =


- 2 -

(используем метода умножения всех членов формулы на сумму тех пе-

ременных и их отрицаний, которые отсутствуют в данном члене;)

 4_ _ _ _ _ _ _ _

= ab(cVc) V bc(aVa) V bc(aVa) V ab(cVc) =

(в результате, отбросив повторяющиеся члены, получаем СДНФ функ-

ции;)

 4_ 0  4 __  0  4_ 0а  4 _ _ 0  4 _ 0  4 __ 0  4 _ 0  4 _ _

= abc V abc V abc V abc V abc V abc V abc V abc =

└─┘ ╚═╝ └─┘ ╚═╝

 4_ __ _ _ _ __ _

= abc V abc V abc V abc V abc V abc =

(перегруппировываем члены с целью их прощения)

 4_  9  4а _ _ _ _ _

= b 9c 0(aVa) V ab(cVc) V ac(bVb) =

(окончательно получим)

 4_ _ _

= bc V ab V ac.

Однако группирование членов после множения можно провести и

несколько иначе:

 4_ _ _ _ _ _ _ _ _

f(a,b,c) = ab(cVc) V bc(aVa) V ac(bVb) = ab V bc V ac.

Следовательно, данная функция имеет две минимальные формы.

Недостаткома метод непосредственной минимизацииа является

трудность получения всех минимальныха форм, если иха несколько.

Кроме того, метод в целом весьма трудоемок, результат минимизации

в сильной степени зависит от квалификации иа интуиции человека,

проводящего минимизацию. Поэтому данный метод применяется лишь

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

 Метод минимизации с помощью карт Вейча

Данный метод наиболее применим в инженерной практикеа благо-

даря своей простоте и легкости использования. Однако метод добен

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

(до 8). Преимущество этого метода состоит в том, что нет необхо-

димости приводить функцию к СДНФ.

Рассмотрим изображение на карте Вейча функции

 4__ _ _ _ __ _ __ _

f(a,b,c,d) = cd V abd V abc V abcd V abcd V bcd


- 3 -

При нанесении заданной функции н карту никакиха предвари-

тельных преобразованийа не проводится. Каждый дизъюнктивный член

рассматривается в отдельности, и в соответствующие ему квадратики

вписывается 1а (т.е. дизъюнктивный член развертывается до минтер-

мов).

Например, нанесение на карту вейча заданной функции выполня-

ется в следующей последовательности:

a

┌───┴───┐

┌┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐

││  _1 . а │  _1 . │ │  _1 . │  _1 . │ 1 │ │ 1 │ 1 а │  _1 . │

b ┤├───┼───┼───┼───┤┐ ├───┼───┼───┼───┤ ├───┼───┼───┼───┤

│а а а │а а │ а │ а а │  _1 . │

└├───┼───┼───┼───┤├ d ├───┼───┼───┼───┤ ├───┼───┼───┼───┤

а а │а а а а │ а а │

├───┼───┼───┼───┤┘ ├───┼───┼───┼───┤ ├───┼───┼───┼───┤

│  _1 . а │  _1 . │ 1 а │ 1 │ │ 1 а │ 1 │

└───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘

└───┬───┘

 4__ 0 c 4  0  4 __ _ __ _ _ _

cd cd V abd cd V abd V abc

┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐

│ 1 │ 1 │ 1 │ │ 1 │ 1 а │ 1 │ │ 1 │ 1 │ 1 │

├───┼───┼───┼───┤ ├───┼───┼───┼───┤ ├───┼───┼───┼───┤

а а │ 1 │ а а │ 1 │ а а │ 1 │

├───┼───┼───┼───┤ ├───┼───┼───┼───┤ ├───┼───┼───┼───┤

а а │ │  _1 . а а │ │ 1 │  _1 . │  _1 . │

├───┼───┼───┼───┤ ├───┼───┼───┼───┤ ├───┼───┼───┼───┤

│ 1 а │  _1 . │ 1 │ │ 1 │ 1 │ 1 │ │ 1 │ 1 │ 1 │

└───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘

 4__ _ _ _ __ _ _ _ __ _ _ _

cd V abd V abc V cd V abd V abc V cd V abd V abc V

 4__ _ __ _ __ __ _ __

V abcd V abcd V abcd V abcd V abcd V bcd

Следующий шаг заключается в нахождении на карте простых имп-

ликант, т.е. в склеивании минтермов. Нахождение простых импликант

является результатом последовательного применения теоремы:

 4_

x 41 0x 42 0x 43 0...x 4n 0 V x 41 0x 42 0x 43 0...x 4n 0 = x 42 0x 43 0...x 4n

Нахождение простыха импликанта производится на картах путем

группировки минтермов, отмеченных единицей.

Рассмотрим правила группировки на диаграмме для четыреха пе-

ременных, учитывая, что иха легко обобщить на случай для любого


- 4 -

числа переменных. Группирование выполняется в следующем порядке:

а) группа из восьми членов может быть представлена одной пе-

ременной, если две смежные строки, либо два смежных столбца, либо

две крайниеа строки, либо два крайних столбца, соответствующих

этой переменной, заполнены единицами;

б) группа из четырех членов может быть представлена посредс-

твом двух переменных всякий раз, когда единицами заполнены:

- строка диаграммы,

- столбец диаграммы,

- квадрат из двух строк и двух столбцов,

- концы двух смежных строк,

- концы двух смежных столбцов,

- четыре гла диаграммы;

в) группа из двух членов может быть представлена посредством

трех переменных всякий раз, когда единицами заполнены:

- два смежных квадратика,

- два противоположных конца одной строки,

- два противоположных конца одного столбца.

При группировке единиц н диаграмме необходимо попытаться

сначала образовать члены, содержащие одну переменную, затем чле-

ны, содержащие две переменные, и, наконец, члены, содержащие три

переменные. Одина и тот же минтерм может входить 2 несколько раз 0 в

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

группу единица можно несколько раз включать в различные комбина-

ции. В нашем случае минимизированная функция будет иметь вид:

 4__ _ _ _  0  4_ _ 0

f(a,b,c,d) = cd V abd V abc V abd V bcd V abd.


ПЕРВЫЙ СЕМЕСТР

ЛЕКЦИЯ N 8

 МЕТОДЫ МИНИМИЗАЦИИ БУЛЕВЫХ ФУНКЦИЙ

(окончание)

Обычно для проверки правильности результата, полученного с

помощью одного из методов минимизации, либо используют другой ме-

тод (хотя при наличии у функции нескольких минимальных форм могут

быть получены несовпадающие результаты), либо проверяют н тож-

дественность исходную и минимальную формы методом перебора всех

возможных комбинаций значений переменных (однако же для 20 пере-

менных число возможных комбинаций превышает миллион).

В качестве пример проведема минимизациюа рассматривавшейся

ранее функции

 4_ _ _ _

f(a,b,c) = ab V bc V bc V ab

с помощью карты Вейча. Как видно из диаграммы, возможны две мини-

мальные дизъюнктивные формы:

a

┌───┴───┐

┌───┬───┬───┬───┐

b │ 1 │  _1 . │  _1 . │

├───┼───┼───┼───┤

│ 1 │  21 0 │  21 0 │

└───┴───┴───┴───┘

└───┬───┘

c

 4_ _  0  4_

f(a,b,c) = ac V ab V bc

a

┌───┴───┐

┌───┬───┬───┬───┐

b │  _1 . а │  21 0 │  _1 . │

├───┼───┼───┼───┤

│ 1 │ 1 │  21 0 │

└───┴───┴───┴───┘

└───┬───┘

c

 4_ _  0а  4_

f(a,b,c) = bc V ac V ab

.

- 2 -

 ЭЛЕМЕНТЫ И ЗЛЫ ЭВМ

═══════════════════

 ЛОГИЧЕСКИЕ ЭЛЕМЕНТЫ

Системой элементов ЭВМ называется функционально полный набор

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

ния информации и одинаковый тип межэлементных связей.

Система элементов чаще всего избыточн по своемуа составу,

что позволяета строить схемы с более простой топологией межэле-

ментных связей и более экономные по количеству используемыха эле-

ментов.

Классификация логических элементов:

1) По способу представления информации и типу межэлементных

связей различают элементы импульсного, потенциального, импуль-

сно-потенциального и динамического типа.

Примечание: в современных ЭМа применяются потенциальныеа и

динамические элементы.

2) По функциональному назначению элементы принято разделять

на  2типовые и элементы специального назначения 0. К  2типовым 0 относят-

ся логические, запоминающие и формирующиеа элементы. Логические

элементы предназначены для преобразования информации, запоминаю-

щие - для ее хранения, а формирующие элементы - для восстановле-

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

изменяющихся во время прохождения сигналов по электрическима це-

пям. К элементам 2 специального назначения 0 относятся силители сла-

бых сигналов, генераторы токов и напряжений специальной формы и

другие элементы, не изменяющие информационного содержания сигна-

лов.

3) В зависимости от используемых физических явлений логичес-

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

водниковые, электромагнитные и др.

 Основные характеристики логических элементов

Общие технические характеристики:

- температурный диапазон,

- надежность,

- стоимость.

Специфические характеристики:

- функциональные возможности элемента,

- нагрузочная способность,

- быстродействие,


- 3 -

- помехоустойчивость,

- потребляемая мощность.

Функциональные возможности логического элемента характеризу-

ются выполняемой им операцией иа коэффициентами разветвления и

объединения, т.е. факторами, влияющими на структуры более сложных

схем, построенных с применением данного элемента.

При этома пода  2коэффициентома разветвления 0а  2n 0 понимают число

входов последующих ячеек, которые могута правляться ота выхода

данной ячейки, а под  2коэффициентом объединения 0  2m 0 - число входов,

которое может иметь ячейка. Величины m и n ограничиваются услови-

ями сохранения нормального электрического режима ячейки.

 Нагрузочная способность 0 в общем случае определяется током,

который можета быть отдан ячейкой во внешние цепи (нагрузку). В

случае однородных нагрузок, создаваемых входами идентичных ячеек,

нагрузочная способность оценивается коэффициентом разветвления n.

а Быстродействие 0 логического элемента определяется скоростями

его перехода из состояния "0" в состояние "1" и обратно. Переход-

ные процессы изменения состояния элемента состоят из двух этапов:

задержки иа формирования фронта или спада сигнала. Длительность

задержек и фронтов зависит ота динамическиха свойства логического

элемента.

Однако для оценки быстродействия часто используют обобщенную

характеристику - 2а среднее время задержки 0. В этом случае моментом

поступления сигнала на ячейку считают момента достижения входным

сигналом некоторого определенного ровня (например, 0,5 от ста-

новившегося значения). Моментом появления сигнала на выходе также

считают момент достижения выходным сигналом этого ровня.

Так как длительности переходных процессова при включении и

выключении транзистора в общем случае не равны, то проводят обоб-

щение и говорят о среднем времени задержки сигнала на ячейку.

Время задержки при формировании спада

t 4сп

t 5' 4з 5  0= t 4з.сп  0+ 4  0───,

2

время задержки при формировании фронта

t 4фр

t 5" 4з 5  0= t 4з.фр  0+ 4  0───.

2

Среднее время задержки на один каскад схемы

t 5' 4з 0 + t 5" 4з

t 4з.ср 0 = ───────── 5.

2


- 4 -

Одна иза важнейших характеристик элемента - его  2помехоустой-

 2чивость 0. Различают статическую и динамическую помехоустойчивость.

При определенииа статической помехоустойчивости помеха рассматри-

вается как длительно действующий ровень потенциала, при опре-

делении динамическойа помехоустойчивости - как импульс определен-

ной длительности. Устойчивость элемента к воздействию длительной

помехи меньше, чем к воздействию кратковременной помехи при оди-

наковых амплитудах. стойчивость к воздействию динамической поме-

хи тем ниже, чем выше быстродействие элемента.

С увеличениема степени интеграции элементов ЭВМ все большую

роль начинает играть такой параметр, как 2 рассеиваемая мощность 0.

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

вень рассеивания мощности (P 4з 0), открытому - другой (P 4о 0). Обычно

предполагают, что схем половину времениа находится в открытом

состоянии, половину - в закрытом, и определяют среднюю рассеи-

ваемую мощность следующим образом:

P 4з 0 + P 4о

P 4ср 0 = ───────.

2

Рассеиваемая мощность может зависеть как от нагрузки, так и

от схем, включенных на входе.

 Классификация логических элементов по типу радиокомпонентов,

 1на которых реализуются логические функции 2.

Можно выделить следующие наиболееа часто потребляемые на

данный момент типы логических элементов:

- транзисторно-транзисторная логика с диодами Шотки (ТТЛШ);

- КМОП-логика (логика на базе комплементарных полевыха тран-

зисторов со структурой металл-окисел-полупроводник);

- КМДП-логика (логика на базе комплементарных полевыха тран-

зисторов со структурой металл-диэлектрик-полупроводник);

- интегральная инжекционная логика (ИИЛ, И 52 Л, I 52 0L).

Следует отметить также некоторые типы элементов, которые в

данный момент же не применяются в новыха разработкаха вследствие

низкого быстродействия или большой рассеиваемой мощности.

- резисторно-транзисторная логика (РТЛ, RTL);

- резисторно - конденсаторная транзисторная логик (РКТЛ,

RCTL);

- диодно-транзисторная логика (ДТЛ, DTL);

- транзисторно-транзисторная логика (ТТЛ, TTL);

- транзисторная логика с эмиттерными связями (ЭСЛ, TECL).

- транзисторная логика с непосредственными связями (DCTL).

- МОП-логика;

- МДП-логика (MDS).


ПЕРВЫЙ СЕМЕСТР

ЛЕКЦИЯ N 9

 ЭЛЕМЕНТЫ И ЗЛЫ ЭВМ

═══════════════════

 ЛОГИЧЕСКИЕ ЭЛЕМЕНТЫ

Электронную схему, выполняющую какие либо операции над одним

машинным словом, называют  2узлом 0 ЭВМ. Многие злы ЭВМ строятся на

базе логических элементов.

Общие требования к проектируемому стройству:

- стройство должно полностью соответствовать своему функци-

ональному назначению, т.е. выполнять заданные в ТЗ функции;

- быстродействие, энергопотребление, надежность, устойчи-

вость к вредному воздействию окружающей среды (температура, влаж-

ность, давление, вибрация, дары, статическое электричество,

внешние магнитные поля, электромагнитные помехи и пр.) должны со-

ответствовать заданным в ТЗ параметрам;

- стройство должно быть максимально простым, чтобы обеспе-

чить высокое быстродействие и надежность, также низкую себесто-

имость.

Если устройство проектируется на базе нескольких различных

наборов логических элементов, особенно в случае различной техно-

логии изготовления (ТТЛ и ТТЛШ, ТТЛ и КМОП, ТТЛ и ЭСЛ и т.п.),

необходимо тщательно проверить эти наборы н совместимость во

всем рабочема диапазоне температура и на отсутствие состязаний в

спроектированной схеме.

Требуется проверить:

- соответствие по номинальному напряжению питания;

- соответствие по входным и выходным характеристикам логи-

ческих элементов, особенно по ровням 0 и 1;

- соответствие элементов по быстродействию;

- соответствие по переходным процессам.

 Основные характеристики логических элементов

 Амплитудная передаточная характеристика 0 U 4вых  0= 4  0f(U 4вх 0)а опре-

деляет формирующиеа свойства логического элемента, его помехоус-

тойчивость, амплитуду и ровни стандартного сигнала. Вид характе-

ристики зависит от типа логического элемента (ЭСЛ, ТТЛ и т.д.) и

может изменяться в определенных пределах в зависимости от разбро-

са параметров схем, изменений напряжения питания, нагрузки и тем-

пературы окружающей среды.

 Входная характеристика 0 I 4вх 0 = f(U 4вх 0) и  2выходная характеристи-

 2ка 0 U 4вых 0 = f(I 4вых 0) позволяюта определить нагрузочную способность

элемента, режим его работы и способ согласования переходных про-


- 2 -

цессов в линиях связи.

 Импульсная (динамическая)а помехоустойчивость 0а - это зависи-

мость допустимой амплитуды импульсной помехи ота ееа длительности

U 4пом 0 = f(t 4пом 0).

 ТРИГГЕРЫ

Практически все стройства ЭВМ совмещают функции переработки

и хранения информации. Неотъемлемая часть таких стройств - эле-

мент памяти. В арифметических и логических стройствах для хране-

ния информации чаще всего используют элемент с двумя стойчивыми

состояниями -  2триггер 0.

Структуру триггера можно представить ва виде запоминающей

ячейки и схему правления:

┌─ ── ── ── ── ── ── ── ── ┐

┌───────┐а  4S 0а ┌────────┐

E 41 0 ───┴─┤ Схема ├─────┤ Запоми-├─┴─── Q

Cа ─────┤ управ-  4R 0а │ нающая  4 _

E 42 0 ───┬─┤ ления ├─────┤ ячейка ├─┬─── Q

└───────┘ └────────┘

└─ ── ── ── ── ── ── ── ── ┘

 4_ 0а  Запоминающая ячейка 0 - это схема, которая имеет два выхода Q

и Q 4, 0а сигналы на которых всегда противоположны (если на однома 0,

то н другома 1), и дв входа - вход становки S (set) и вход

сброса R (reset).

 Переключающий 0 сигнала по входу S станавливает запоминающую

ячейку в состояние "1", по входу R - в состояние "0". В зависи-

мости от типа элементов, из которых построена запоминающая ячей-

ка, переключающим сигналом может являться либо "0", либо "1". За-

поминающую ячейку называют также 2 асинхронным RS-триггером 0.

 Схема управления 0 преобразует информацию, поступающую на вхо-

ды E 41 0 и E 42 0 в сигналы, которые подаются на становочные входы за-

поминающей ячейки. В некоторых схемах выходные сигналы триггерра

поступают н входа схемы правления - на рисунке эти соединения

показаны пунктиром.

Как правило, триггеры, применяемые в потенциальной системе

элементов, имеют еще один вход - вход для синхронизирующих сигна-

лов C. Импульсы, поступающие на вход C, не несут логической ин-

формации, но определяют момент приема триггером входной информа-

ции.

.

- 3 -

 Классификация триггеров

В основу классификации триггерных стройств положены два ос-

новных признака:а функциональный признак и способ записи информа-

ции в триггер.

Функциональная классификация - это классификация триггеров

по типама схем управления. По функциональному признаку различают

RS, S, R, E, T, D, TV, DV, RST и JK триггеры.

Классификация по способуа записи информации характеризует

временную диаграмму работы триггера, т.е. определяет ход процесса

записи информации в триггер:

┌────────────────────────┐

│ Потенциальные триггеры │

└────────────┬───────────┘

┌───────────────┴──────────────┐

┌──────┴──────┐ ┌─────┴──────┐

│ Асинхронные │ │ Синхронные │

└──────┬──────┘ └─────┬──────┘

│ │

┌──────┴──────┐ ┌──────┴──────┐

┌──────┴─────┐ ┌─────┴─────┐ ┌──────┴─────┐ ┌─────┴─────┐

│С внутренней│ │Управляемыеа │С внутренней│ │Управляемые│

│ задержкой │ │уровнем а │ задержкой │ │уровнем │

└────────────┘ │входного а └────────────┘ │синхроим-а │

│сигнал │ │пульс │

└───────────┘ └─────┬─────┘

┌────┴────┐

┌───┴───┐ ┌───┴───┐

│ Одно- │ │Много- │

│тактные│ │тактные│

└───────┘ └───────┘

 Временная диаграмма 0 - это диаграмма, отображающая зависи-

мость внутреннего состояния стройства, сигналов на его выходах и

протекающих в нем переходных процессов от времени иа сигналов на

входах этого стройства.

Отличительной особенностьюа  2асинхронных 0а триггерова является

то, что запись информации в них осуществляется непосредственно в

момент поступления информационного сигнала на вход триггера.

Запись информации в 2 синхронные тактируемые 0 триггеры осущест-

вляется только при подаче разрешающего импульс ( 2синхроимпульса 0)

на синхронный вход C. Синхронные триггеры подразделяются на две

категории:а триггеры, срабатывающие по переднему фронту синхроим-

пульса (" 2по 0  2уровню 0"), и триггеры, срабатывающие по заднему фронту


- 4 -

синхроимпульса (" 2по спаду 0").

Синхронные триггеры могут быть однотактными и многотактными.

Многотактные триггеры характеризуются тем, что формирование ново-

го состояния триггер завершается с поступлением n-го синхроим-

пульса. Наибольшее распространение получили двухтактные синхрон-

ные триггеры.

Законы функционирования триггеров задаются таблицами перехо-

дов или составленными в соответствии с этими таблицами логически-

ми равнениями.

Входы триггеров обозначаются следующим образом:

C - вход синхронизации;

S (set) - вход установки триггера в 1;

R (reset) - вход сброса триггера в 0;

D (delay) - "задержка";

T (trigger) - "защелка";

J - вход становки JK-триггера в 1;

K - вход установки JK-триггера в 0;

V - управляющий вход DV-триггера.

 4_

Выходы триггеров: Q - прямой выход, Q - инверсный выход.

 _Асинхронные триггеры

Асинхронные триггеры редко непосредственно используются в

цифровых схемах, однако на базе асинхронныха триггерова строятся

все триггерные схемы.

 Асинхронный RS-триггер

RS-триггер имеет два информационных входа R и S. При поступ-

лении на эти входы сигналов S=1 и R=0 триггер принимает состояние

Q=1, при S=0 и R=1 состояние Q=0, при S=0 и R=0 триггер сохра-

няет то состояние, в котором он находился до поступления на его

входы нулевых сигналов. Подача единичных сигналов на оба входа R

и S запрещена.

.

- 5 -

Полная таблица переходов RS-триггера:

┌────────┬────────┬────────┬──────────┐

Q(t)а R(t)а S(t)а Q(t+1)а │

├────────┼────────┼────────┼──────────┤

│ 0 │ 0 │ 0 │ 0 │

│ 0 │ 0 │ 1 │ 1 │

│ 0 │ 1 │ 0 │ 0 │

│ 0 │ 1 1 │ X │

│ 1 │ 0 │ 0 │ 1 │

│ 1 │ 0 │ 1 │ 1 │

│ 1 │ 1 │ 0 │ 1 │

│ 1 │ 1 │ 1 │ X │

└────────┴────────┴────────┴──────────┘

Минимизированная таблица переходов RS-триггера:

┌────────┬────────┬──────────┐

R(t)а S(t)а Q(t+1)а │

├────────┼────────┼──────────┤

│ 0 │ 0 Q(t) │

│ 0 │ 1 │ 1 │

│ 1 │ 0 │ 0 │

│ 1 │ 1 │ X │

└────────┴────────┴──────────┘

Логические равнения RS-триггера имеют вид:

 7( 4

 72 0 Q(t+1) = S(t) V R(t) 5. 0Q(t)

 7*

 72 0 R(t) 5. 0S(t) = 0

 79

Асинхронный RS-триггер на элементах ИЛИ-НЕ:

┌───┐

R ─────┤1а │

а  7@ 0───┬── Q

┌──┤ а │

└───┘ │

└─────────┐│

┌─────────┼┘

┌───┐а │

└──┤1а │ 4 _

а  7@ 0──┴─── Q

S ─────┤ │

└───┘

.

- 6 -

словное графическое изображение такого триггера:

┌─┬───┐

──┤S│Tа ├──

│ а │

──┤Rа  7@ 0──

└─┴───┘

Асинхронный RS-триггер на элементах И-НЕ:

 4_ 0 ┌───┐

S ─────┤&а │

а  7@ 0───┬── Q

┌──┤ а │

└───┘ │

└─────────┐│

┌─────────┼┘

┌───┐а │

└──┤&а │ 4 _

 4_ 0 а  7@ 0──┴─── Q

R ─────┤ │

└───┘

словное графическое изображение такого триггера:

┌─┬───┐

── 7@ 0S│Tа ├──

│ а │

── 7@ 0Rа  7@ 0──

└─┴───┘

или

┌─┬───┐

│ 4_ 0│  7а  0│

──┤S│ 7T 0а ├──

│ а │

│ 4_ 0а │

──┤Rа  7@ 0──

│ │

└─┴───┘


ПЕРВЫЙ СЕМЕСТР

ЛЕКЦИЯ N 10

 ТРИГГЕРЫ

 Синхронный однотактный RS-триггер

Синхронные RS-триггеры имеет на каждом входе дополнительные

схемы совпадения:

 4_

┌───┐ S ┌───┐

S ──────┤&а  7@ 0──────┤&а │

а │ а  7@ 0───┬── Q

┌──┤ а ┌──┤ а │

└───┘ └───┘ │

│ └─────────┐│

C ───┤ ││

│ ┌─────────┼┘

┌───┐ ┌───┐а │

└──┤&а │  4_ 0 └──┤&а │ 4  0  4_

а │ R а  7@ 0──┴─── Q

R ──────┤  7@ 0──────┤ │

└───┘ └───┘

Если на входе C "ноль", то на выходах схемы совпадения также

будут нулевые значения при любых сигналах на входах Rа иа S. При

поступлении синхроимпульса на вход схемы совпадения информация с

входов R и S инвертируется и передается н входы асинхронного

триггера.

Графическое обозначение синхронного однотактного RS-триггера:

┌─┬───┐

──┤S│Tа ├── Q

──┤Cа │ 4 _

──┤Rа  7@ 0── Q

└─┴───┘

.

- 2 -

Синхронный триггер можета иметь дополнительные асинхронные

входы R 4а 0 и S 4а 0:

 4_

S 4а 0 ──────────────┐

 4_ 0 ┌───┐

┌───┐ S └──┤&а │

Sа ──────┤&а  7@ 0──────┤  7@ 0───┬── Q

а ┌──┤ а │

┌──┤ а └───┘ │

└───┘ └─────────┐│

Cа ───┤ ││

┌───┐ ┌─────────┼┘

└──┤&а │  4_ 0 ┌───┐а │

а │ R └──┤&а │ 4 _

Rа ──────┤  7@ 0──────┤  7@ 0──┴──── Q

└───┘ ┌──┤ │

 4_ 0 └───┘

R 4а 0 ──────────────┘

Графическое обозначение синхронного однотактного RS-триггера

с асинхронными входами:

 4_ 0 ┌─┬───┐

S 4а 0 ── 7@ 0S│Tа ├── Q

├─┤ │

──┤Sа │

──┤Cа │

──┤Rа │

 4_ 0 ├─┤ │ 4 _

R 4а 0 ── 7@ 0Rа  7@ 0── Q

└─┴───┘

 Синхронные 0  1двухтактные триггеры

Синхронные двухступенчатые (двухтактные) триггеры построены

по принципуа "master-slave"а (ведущий-ведомый). Триггерная схема

состоит из двух частей-триггеров, одновременный прием информации

в которыеа запрещен. Для построения первой и второй ступеней ис-

пользуют однотактные синхронные триггеры. Информация передается

во вторую ступень только после ее приема в первую ступень и окон-

чания синхроимпульса, разрешающего запись информации ва первую

ступень. Такая последовательность приема информации достигается

включением инвертора в цепь синхронизации для второй ступени.

.

- 3 -

Все двухтактные триггеры имеют следующую общую структуру:

┌─ ── ── ── ── ── ── ── ── ─┐

┌──┬────┐ ┌─┬────┐

E 41 0 ───┴────┤E 41 0│T ├─────┤S│T ├─┴─── Q

Cа ──────┬─┤C │ ┌──┤C│ │ 4 _

E 42 0 ───┬──┼─┤E 42 0│ ├──┼──┤R│ ├─┬─── Q

│ └──┴────┘а └─┴────┘

└─ ┼─ ── ── ── ─┼ ── ── ── ─┘

│ ┌──┐ │

└────┤ 51 0  7@ 0────┘

└──┘

Наиболее широкое применение ва устройстваха вычислительной

техники находят двухтактные триггеры типов RS, T, D и JK.

Рассмотрим в качестве приера схему двухтактного RS-триггера:

┌───┐ ┌───┐ Q' ┌───┐ ┌───┐

S ──────┤&а  7@ 0─────┤&а  7@ 0──┬──────┤&а  7@ 0─────┤&а  7@ 0──┬─── Q

┌──┤а  41 0 ┌──┤а  44 0 а ┌──┤а  46 0 ┌──┤а  48 0 │

└───┘а └───┘а а └───┘а └───┘а │

│ └────────┐а │ └────────┐│

C ───┤ │а │ ││

│ ┌────────┼┘ │ ┌────────┼┘

┌───┐а ┌───┐ │  4_ 0а ┌───┐а ┌───┐ │

├──┤&а └──┤&а │ │ 4  0Q' ├──┤&а └──┤&а │ │ 4 _

R ───┼──┤а  42 7@ 0─────┤а  45 7@ 0─┴────┼──┤а  47 7@ 0─────┤а  49 7@ 0─┴──── 4  0Q

└───┘ └───┘  4_ 0а └───┘ └───┘

│ ┌───┐ Cа │

└─────┬─┤&а  7@ 0───────────┘

└─┤а  43 0│

└───┘

Рассмотрим идеализированную временную диаграмму работы двух-

тактного RS-триггера (предполагаем форрму импульсов прямоугольной

и не учитываем разброс времени задержки элементов схемы):

.

- 4 -

C

│ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐

├─────┘ а└─────┘ └─────┘ └─────┘ └─────

└─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼────── t

S

│ ┌───────────┐

├──────────────┘ └──────────────────────────

└─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼────── t

R

│ ┌──────────────

├──────────────────────────────────────┘

└─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼────── t

1

├──────────────────┐ ┌────────────────────────────

│ └─────┘

└─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼────── t

2

├──────────────────────────────────────────┐ ┌────

│ └─────┘

└─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼────── t

Q'

 4│ ┌────────────────────── 0──┐

├───── 4──────────────┘  0  4  0└ 4──── 0────

└─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼────── t

 4_

Q'

├───── 4────── 0── 4───────┐  0 ┌─ 4───── 0───

 4│  0  4 └────────────────────── 0┘

└─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼────── t

 4_

C

├──────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌────

│ └─────┘ └─────┘ └─────┘ └─────┘

└─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼────── t

6

├─────────────────────────┐ ┌─────┐ ┌─────────

│ └─────┘ └─────┘

└─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼────── t

7

│ ┌─────┐ ┌───────────────────────┐

├───────┘ └─────┘ └─────────

└─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼────── t

Q

 4│  0  4┌────────────────── 0┐

а├───── 4──────── 0────────── 4───┘  0 └ 4─── 0────

└─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼────── t


ПЕРВЫЙ СЕМЕСТР

ЛЕКЦИЯ N 11

 ТРИГГЕРЫ

 1T-триггеры

T-триггер (триггер со счетным входом) изменяет своеа состоя-

ние на противоположное каждый раз при подаче на вход T единичного

сигнала.

Таблица переходов асинхронного T-триггера:

┌────────┬──────────┐

Т(t)а Q(t+1)а │

├────────┼──────────┤

│ │ │

│ 0 а Q(t) │

│  4_ 0 │

│ 1 а Q(t) │

└────────┴──────────┘

Схема асинхронного T-триггера:

┌─────────────────────────┐

┌─┬────┐ ┌─┬────┐а │

└──┤S│T ├─────┤S│T ├─┬┼── Q

T ──┬────┤C│ ┌──┤C│ │ 4  0││ 4 _

│ ┌──┤R│  7@ 0──┼──┤R│  7@ 0─┼┴── Q

│ └─┴────┘а └─┴────┘ │

│ └────────────┼───────────┘

│ а┌──┐ │

└───────┤ 51 0  7@ 0───┘

└──┘

Графическое изображение асинхронного T-триггера:

┌─┬────┐

│ │TTа ├──

──┤T│ │

│ │  7@ 0──

└─┴────┘

.

- 2 -

Схема синхронного T-триггера:

┌─────────────────────────────────┐

┌───┐ │

└──┤&а │ ┌───┐ ┌───┐а ┌───┐

┌────┤  7@ 0─────┤&а  7@ 0──┬──────┤&а  7@ 0──┼──┤&а  7@ 0──┬─── Q

│ ┌──┤а  41 0 ┌──┤а  44 0 а ┌──┤а  46 0 ├──┤а  48 0 │

│ └───┘а └───┘а а └───┘а └───┘а │

│ │ └────────┐а │ └────────┐│

T ──┼─┤ │а │ ││

│ │ ┌────────┼┘ │ ┌────────┼┘

│ ┌───┐а ┌───┐ │ ┌───┐а ┌───┐ │

│ └──┤&а └──┤& а│ │ 4  0 ├──┤&а ├──┤&а │ │ 4 _

├────┤  7@ 0─────┤а  45 7@ 0─┴────┼──┤а  47 7@ 0──┼──┤а  49 7@ 0─┴──── 4  0Q

│ ┌──┤а  42 0│ └───┘ └───┘а └───┘

│ └───┘ │ │

│ └───────────────────────┼─────────┘

│ ┌───┐ │

C ──┴───────┬─┤&а  7@ 0───────────┘

└─┤а  43 0│

└───┘

Графическое изображение синхронного T-триггера:

┌─┬────┐

│ │TTа ├──

──┤T│ │

──┤C│ │

│ │  7@ 0──

└─┴────┘

Синхронный T-триггер с цепями сброса и становки:

┌─┬────┐

── 7@ 0S│TTа ├──

├─┤ │

──┤T│ │

──┤C│ │

├─┤ │

── 7@ 0R│  7@ 0──

└─┴────┘

.

- 3 -

 1D-триггеры

Триггер D-типа - это триггер задержки. Он описывается логи-

ческим равнением Q(t+1)=D(t), т.е. состояние D-триггера в момент

времени t+1 совпадает с кодом входного сигнала, действовавшего в

момент времени t.

Схема D-триггера:

┌───┐ ┌───┐ ┌───┐ ┌───┐

D ───────┤&а  7@ 0──┬────┤&а  7@ 0──┬──────┤&а  7@ 0─────┤&а  7@ 0──┬─── Q

┌───┤а  41 0 │ ┌──┤а  44 0 а ┌──┤а  46 0 ┌──┤а  48 0 │

а └───┘а │ └───┘а а └───┘а └───┘а │

│ │ └────────┐а │ └────────┐│

C ───┤ ┌────────┘ │а │ ││

│ │ ┌────────┼┘ │ ┌────────┼┘

│ │ ┌───┐ ┌───┐ │ ┌───┐а ┌───┐ │

│ └─┤&а │ └──┤&а │ │ 4  0 ├──┤&а └──┤&а │ │ 4 _

├───┤а  42 7@ 0───────┤а  45 7@ 0─┴────┼──┤а  47 7@ 0─────┤а  49 7@ 0─┴──── 4  0Q

а └───┘ └───┘ └───┘ └───┘

│ ┌───┐ │

└───────┬─┤&а  7@ 0────────────┘

└─┤а  43 0│

└───┘

Временная диаграмма работы D-триггера:

T

C ├───────────────┤

│ ┌───────┐ ┌───────┐ ┌───────┐

├───────┘ └───────┘ └───────┘ └─────

└───────┼───────┼───────┼───────┼───────┼───────┼────── t

D

│ ┌─────────────────┐

├──────────────────┘ └────────────────

└───────┼───────┼───────┼───────┼───────┼───────┼────── t

2 7t  03 7t

Q ├──┤ ├───┤

│ ┌────────────────┐

├──────────────────────────────────┘ └──

└───────┼───────┼───────┼───────┼───────┼───────┼────── t

.

- 4 -

D-триггер с цепями сброса и становки:

┌─┬────┐

── 7@ 0S│TTа ├──

├─┤ │

──┤D│ │

──┤C│ │

├─┤ │

── 7@ 0R│  7@ 0──

└─┴────┘

 1JK-триггеры

JK-триггер имеет обычно не менее 5 входов: входы асинхронный

установки Sа и сброса R, вход тактовых импульсов C и управляющие

входы J и K.

При подаче  2единиц 0 на входы Jа иа Kа JK-триггер работает как

триггер со счетным входом:а при поступлении каждого импульс на

вход C (точнее, после спада импульса) состояние триггера изменя-

ется на противоположное. Если на входах J и K становлены  2нулевые

уровени, то состояние триггера при подаче импульсов на вход C не

меняется. Если на входе J  2единица 0, на входе K  2ноль 0, то после

спада синхроимпульса на входе C JK-триггер устанавливается в сос-

тояние  2единица 0 (Q=1). Если на входе J  2ноль 0, на входе K  2единица 0,

то после спада синхроимпульса на входе C JK-триггера станавлива-

ется в состояние  2ноль 0 (Q=0). Если на входе C низкий ровень, то

изменение сигналов на входах J и K не влияет на состояние тигге-

ров.

Следует различать "универсальные" и "синхронные"а JK-тригге-

ры.а  Универсальный 0 триггера при наличии высокого ровня ( 2единицы 0)

на входе C и  2спаде 0 сигнала (переходе из 1 в 0) на входе J перехо-

дита в состояние  2единица 0. При наличии  2единицы 0 на входе C и  2спаде

сигнала на входе K ниверсальный триггера переходита ва состояние

 2ноль 0. Этот режим работы ниверсальных триггеров позволяет в неко-

торых случаях простить построение различных счетчиков.

Основным отличиема  2синхронных 0 триггеров от ниверсальных яв-

ляется то, что изменение состояния синхронныха триггерова может

происходить только по спаду импульсов на входе C или по поступле-

нию сигналов сброса и становки на асинхронные входы R и S.

Если во время действия высокого ровня на входе C триггер

находится в нулевом состоянии и на входе Jа появляется (хотя бы

кратковременно) единица, то после спада сигнала на входе C триг-

гер переключится в состтояние 1, причем это произойдет независимо

от состоянийа сигналова на входах J и K в момент спада сигнала на

входе C. Аналогично, если во время действия высокого ровня на

входе Cа триггера находится в состоянии 1 и на входе K появляется


- 5 -

(хотя бы кратковременно) единица, то по спаду сигнала на входе C

триггер переключится в состтояние 0, т.е. триггер запоминает им-

пульсы, приходящие на входы J и K.

Определить разновидность триггера можно по его принципиаль-

ной схеме. Если вход C образован соединением двух входов, каждый

из которыха эквивалентена входама Jа и K, то это - ниверсальный

триггер. Если для получения входа C используются еще и другие це-

пи триггера, то триггер синхронный.

К сожалению, технические словия на большинство JK-триггеров

не определяюта иха принципиальных схем. В результате, например,

триггеры типов К13ТВ1, К13ТВ1, К13ТВ1, К15ТВ1, впускаемые ра-

личнымиа изготовителями, могли быть как ниверсальными, так и

синхронными, что сильно осложняло работу проектировщикова элект-

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

зовать только такие схемы включения триггеров, в которых сигналы

на входаха J и K не меняются при наличии высокого ровня на входе

C.

Схема "синхронного" JK-триггера:

┌─────────────────────────────────┐

┌───┐ │

└──┤&а │ ┌───┐ ┌───┐а ┌───┐

J ───────┤  7@ 0─────┤&а  7@ 0──┬──────┤&а  7@ 0──┼──┤&а  7@ 0──┬─── Q

┌───┤а  41 0 ┌──┤а  44 0 а ┌──┤а  46 0 ├──┤а  48 0 │

а └───┘а └───┘а а └───┘а └───┘а │

│ └────────┐а │ └────────┐│

│ │а │ ││

│ ┌────────┼┘ ┌────────┼┘

а ┌───┐а ┌───┐ │ ┌───┐а ┌───┐ │

├───┤&а └──┤&а │ │ 4  0 ├──┤&а ├──┤&а │ │ 4 _

K ───┼───┤  7@ 0─────┤а  45 7@ 0─┴────┼──┤а  47 7@ 0──┼──┤а  49 7@ 0─┴──── 4  0Q

│┌──┤а  42 0│ └───┘ └───┘а └───┘

│ └───┘ │ │

│└───────────────────────┼─────────┘

│ ┌───┐ │

C ───┴──────┬─┤&а  7@ 0───────────┘

└─┤а  43 0│

└───┘

.

- 6 -

JK-триггер с цепями сброса и становки:

┌─┬────┐

── 7@ 0S│TTа ├──

├─┤ │

──┤J│ │

──┤C│ │

──┤K│ │

├─┤ │

── 7@ 0R│  7@ 0──

└─┴────┘


ПЕРВЫЙ СЕМЕСТР

ЛЕКЦИЯ N 12

 РЕГИСТРЫ

Электронную схему, выполняющую операции над однима машинным

словом, называют злом ЭВМ.

 Регистр 0 - это зел ЭВМ, который состоит из системы запомина-

ющих элементова и правляющей этойа системой логической схемы и

предназначен для выполнения следующих операций:

1) сброс регистра в ноль;

2) прием n-разрядного кода числа из другого зла ЭВМ;

3) передача кода числа в другой зел;

4) хранение кода числа;

5) преобразование прямого кода числа в обратный или дополни-

тельный и наоборот;

6) сдвиг влево или вправо кода числа на требуемое число раз-

рядов;

7) преобразование последовательного код в параллельный и

наоборот;

8) поразрядное логическое сложение двух чисел;

9) поразрядное логическое множение двух чисел;

10) поразрядное сложение двух чисел по модулю 2.

Конкретные регистры обычно являются специализированными и

реализуют лишь некоторые из перечисленных операций.

 Классификация регистров

По возможности смещения информации различают сдвигающие ре-

гистры и регистры памяти (регистры без сдвига).

По количеству тактов правления, необходимых для записи ин-

формации, различают однотактные регистры (с приемом информации в

парафазном коде), двухтактные (со сбросом перед записью информа-

ции) и многотактные (сдвигающие) регистры.

Сдвигающие регистры классифицируются по способу приема и пе-

редачи информации:

а) последовательные (прием и передача кода слова производят-

ся последовательно, разряд за разрядом);

б) параллельные (с одновременным приемом или передачей кодов

всех разрядов слова);

в) последовательно параллельные (прием и передача слова про-

изводятся группами по несколько разрядов, например, байтами).

.

- 2 -

Рассмотрим в качестве пример структуруа четырехразрядного

запоминающего регистра, работающего в парафазном коде:

┌─┬───┐

D 41  0─────┤S│TT ├───── Q 41

 4_ 0 ┌─┤Cа │ 4 _

D 41  0───┼─┤Rа  7@ 0───── Q 41

│ └─┴───┘

│ ┌─┬───┐

D 42  0───┼─┤S│TT ├───── Q 42

 4_ 0 ├─┤Cа │ 4 _

D 42  0───┼─┤Rа  7@ 0───── Q 42

│ └─┴───┘

│ ┌─┬───┐

D 43  0───┼─┤S│TT ├───── Q 43

 4_ 0 ├─┤Cа │ 4 _

D 43  0───┼─┤Rа  7@ 0───── Q 43

│ └─┴───┘

│ ┌─┬───┐

D 44  0───┼─┤S│TT ├───── Q 44

 4_ 0 ├─┤Cа │ 4 _

D 44  0───┼─┤Rа  7@ 0───── Q 44

│ └─┴───┘

C ───┘

На принципиальной схеме данный регистр изображается следую-

щим образом:

┌──┬────┐

──┤S 41 0│RGа ├──

──┤R 41 0│  7@ 0──

──┤S 42 0│ ├──

──┤R 42 0│  7@ 0──

──┤S 43 0│ ├──

──┤R 43 0│  7@ 0──

──┤S 44 0│ ├──

──┤R 44 0│  7@ 0──

──┤C │ │

└──┴────┘

.

- 3 -

Регистры сдвига строятся на базе двухтактных триггеров RS, D

или JK. Рассмотрим в качестве примера реверсивный сдвигающий ре-

гистр, построенныйа н базе D-триггеров с коммутаторами на базе

логических элементов И-ИЛИ-НЕ:

D 41 0 Q 41 0 D 42 0 Q 42 0 D 4n 0 Q 4n

│ │ │ │ │ │

 4│ 0  4│ 0 ┌──┼───────────────┼────┼─────────────── 4┤

┌───────────────┼─┼──┼───────────────┤ ┌──┼─ 4──────────────┤

│┌─┬──┐ │ │┌─┬──┐ │ │┌─┬──┐ │

└┤&│1 │ │ └┤&│1 │ │ └┤&│1 │ │

│┌──┤ │ │ │┌──┤ │ │ │┌──┤ │ │

│ ├─┤а ┌─┬───┐│ │ ├─┤а ┌─┬───┐│ │ ├─┤а ┌─┬───┐│

 4├ 0┼──┤&  7@ 0── 7@ 0D│TT ├┴─┼┼──┤&  7@ 0── 7@ 0D│TT ├┴─┼┼──┤&  7@ 0── 7@ 0D│TT ├┴─

 4│ 0│┌─┤ │┌─┤Cа ││┌─┤ │┌─┤Cа ││┌─┤ │┌─┤Cа │

 4│ 0││ ├─┤а ││ ├─┤ │││ ├─┤а ││ ├─┤ │││ ├─┤а ││ ├─┤ │

 4└ 0┼┼─┤& ││┌ 7@ 0Rа └┼┼─┤& ││┌ 7@ 0Rа └┼┼─┤& ││┌ 7@ 0Rа │

││┌┤ │││└─┴───┘ ││┌┤ │││└─┴───┘ ││┌┤ │││└─┴───┘

│││└─┴──┘││ │││└─┴──┘││ │││└─┴──┘││

│││ ││ │││ ││ │││ ││

─┴┼┼──────┼┼──────────┴┼┼──────┼┼──────────┘││ ││

DR──┴┼──────┼┼───────────┴┼──────┼┼───────────┘│ ││

DL───┴──────┼┼────────────┴──────┼┼────────────┘ ││

 4_ 0 ││ ││ ││

R ──────────┴┼───────────────────┴┼───────────────────┘│

C ───────────┴────────────────────┴────────────────────┘

Обозначения:

D 41 0-D 4n 0 - информационные входы;

Q 41 0-Q 4n 0 - информационные выходы;

C - вход синхронизации;

R - вход сброса;

- разрешение записи информации (параллельного кода);

DR - сдвиг вправо;

DL - сдвиг влево;

.

- 4 -

На принципиальной схеме данный регистр изображается следую-

щим образом:

 ╤┌──┬──┬──┐

──┤D 41 0│RG│Q 41 0├──

──┤D 42 0│ а │

──┤D 43 0 │Q 42 0├──

──┤D 44 0 │

├──┤а │Q 43 0├──

──┤DR │

──┤DL │Q 44 0├──

──┤V │

──┤C │

├──┤а │

── 7@ 0R │

└──┴──┴──┘


ПЕРВЫЙ СЕМЕСТР

ЛЕКЦИЯ N 13

 СЧЕТЧИКИ

Счетчиком называется схема, выполняющая функции подсчета ко-

личества единичных сигналов, поступивших н ееа вход, также

функции формирования и запоминания некоторого кода, соответствую-

щего этому количеству. Счетчики также иногд могута выполнять

функции приема и выдачи кода.

Схемы счетчиков можно классифицировать по следующима призна-

кам:

1) Основание системы счисления. Ва вычислительныха системах

используются двоичные и десятичные счетчики. Двоичные счетчики в

свою очередь подразделяются на счетчики с модулем пересчета, рав-

ным 2 5n 0, и модулем пересчета, не равным 2 5n 0, где n - разрядность

счетчика.

2) Направление переходов счетчика. Счетчики принято разде-

лять на простые (суммирующие или вычитающие), которые могут вести

счет только в одном направлении, то есть только прибавлять или

вычитать входные сигналы, и реверсивные, которые в зависимости от

управляющих сигналов могут вести счет в прямом или обратнома нап-

равлениях.

3) Способ построения цепей переноса. Различаюта счетчики с

последовательным, сквозным, параллельным и групповым переносом.

4) Способ организации счета. Счетчики могут быть асинхронны-

ми иа синхронными. Ва асинхронныха счетчиках изменение состояния

счетчика осуществляется с поступлением информации только н вход

первого каскада. Ва синхронныха счетчикаха информационный сигнал

поступает одновременно на синхронные входы всех разрядов.

5) Тип элементов, используемых для построения счетчика. Раз-

личают счетчики на импульсных, импульсно-потенциальных и потенци-

льных элементах. Хотя в современной электронной аппаратуре ис-

пользуются все эти три типа, в дальнейшем мы будем рассматривать

только счетчики на потенциальных элементах, так как это основной

тип счетчиков, используемых в ЭВМ.

6) Типа организацииа счетного элемента. Счетчики могут быть

построены на триггерах со счетным входом и н запоминающиха эле-

ментах с использованием логических суммирующих схем.

Особую группу составляют счетчики, работающие по принципу

циклического сдвигающего регистра (ккольцевые счетчики). Однако

эти счетчики отличаются низкой стойчивостью к помехам и сбояма и

в ЭВМ практически не применяются.

 Двоичные счетчики

Схемы счетчиков могут быть построены на базе триггеров. Чис-

ло триггеров, необходимых для построения счетчика, определяется

по формуле:


- 2 -

n = ceil(log 42  0k)

где k -а  2коэффициент (модуль) пересчета 0 - максимальное число

внутренних состояний, которое может иметь счетчик, ceil - функция

округления сверху до целого числа.

Другой важной характеристикой является быстродействие.  Быст-

 2родействие 0 счетчик в значительной мере определяется построением

цепей переноса. Быстродействие характеризуется  2временем станов-

 2ления кода 0а н выходе счетчика T 4уст 0, то есть интервалом времени

между моментом поступления входного импульса и моментом окончания

самого длительного переходного процесса в счетчике.

Если не приняты никакие меры к скорению переносов, то T 4уст

счетчика определяется временема срабатывания триггеров счетчика

t 4тр 0 и числом разрядов счетчика n:

T 4уст 0 = t 4тр 0  5. 0 n

Введение цепи сквозного переноса позволяета сократить время

установления кода до величины

T' 4уст 0 = (n-1)  5. 0 t 4& 0 + t 4тр

где t 4& 0 - время срабатывания схемы И в цепи сквозного переноса.

Дальнейшее повышение быстродействия счетчикова достигается

использованием цепей параллельного переноса (T" 4уст 0 = t 4тр 0) и груп-

пового переноса. В случае использования группового переноса чи-

тывается время распространения сигнала между m группами, входящи-

ми в состав счетчика:

T 5гр 4уст 0 = mt 4& 0 + t 4тр

Разрешающая способность счетчик определяется минимальным

временем t 4р 0 между двумя счетными импульсами, при котором счетчик

работает надежно. Максимальная частота поступления счетныха им-

пульсов f 4сч 0 в общем случае определяется как

f 4сч 0 = 1/t 4тр

 Асинхронные счетчики

Простейшие схемы двоичных счетчиков выполняются путем после-

довательного соединения триггеров со счетными входами. T-триггер

является счетчиком с K=2. Для построения счетчика с K = 2 5n 0 требу-

ется nа такиха триггеров. Рассмотрима ва качествеа примера схему

синхронного двоичного триггера с последовательным переносом:


- 3 -

Q 41 0 Q 42 0 Q 43

┌─┬───┐ │ ┌─┬───┐ │ ┌─┬───┐ │

│ │TT ├────┤ │ │TT ├────┤ │ │TT ├────┘

T ─────┤Tа │ └────┤Tа │ └────┤Tа │

│ │ │ │ │ │

├─┤ │ ├─┤ │ ├─┤ │

┌─ 7@ 0Rа  7@ 0── ┌─ 7@ 0Rа  7@ 0── ┌─ 7@ 0Rа  7@ 0──

 4_ 0 │ └─┴───┘ │ └─┴───┘ │ └─┴───┘

R ───┴───────────────┴───────────────┘

Временная диаграмма работы счетчик будета иметь следующий

вид:

T

┌──┐а ┌──┐а ┌──┐а ┌──┐а ┌──┐а ┌──┐а ┌──┐а ┌──┐а ┌──┐

└──┴──┴──┴──┼──┴──┴──┴──┼──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴── t

Q 41 0 t 4тр

│ ─┼┼─── │ │

│ │├─────┐ ┌─────┐ ┌─────┐ ┌─────┐

└─────┴┴────┼┴─────┴────┼┴─────┴─────┴─────┴─────┴─────── t

Q 42 0 2t 4тр

│ ─┼─┼──── │

│ │ ├───────────┐ ┌──────────┐

└───────────┴─┴─────────┼─┴────────────┴──────────┴────── t

Q 43 0 3t 4тр

│ ─┼──┼────

│ ├───────────────────────┐

└───────────────────────┴──┴───────────────────────┴───── t

Основным недостаткома счетчиков с последовательным переносом

является низкое быстродействие.

 Синхронные счетчики со сквозным,

 1параллельным и групповым переносом

Быстродействие счетных схем можно повысить благодаря специ-

льной организацииа цепей переноса и подаче счетных импульсов на

все разряды счетчика одновременно. Как правило, в такиха схемах

счетные импульсы выполняют роль импульсов синхронизации, поэтому

рассматриваемые ниже счетчики относятся к классу синхронных.

В схеме  2со сквозныма переносом 0а переключениеа каждого j-го

разряда JK-триггера возможно в том случае, если на его информаци-

онных входах J и K присутствует 1. В противном случае j-й триггер

находится в режиме запоминания.

.

- 4 -

Q 41 0 Q 42 0 Q 43 0 Q 44

│ │ │ │

│ │ ┌──┐ │ ┌──┐ │

├─────────┼─┤& ├──┬─────────┼─┤& ├──┐ │

┌─┬───┐ ┌─┬───┐│ │ 4  0 │ 4  0 ┌─┬───┐│ 4  0│  4  0 ┌─┬───┐│

"1"────┤J│TT ├─┼──┤J│TT ├┴─┤ 4  0 ├──┤J│TT ├┴─┤  4  0 ├──┤J│TT ├┘

┌─┤Cа │ │┌─┤Cа │ а└──┘ 4  0 │┌─┤Cа │  4  0└──┘а │┌─┤Cа │

"1"──┼─┤Kа │ └┼─┤Kа │ └┼─┤Kа │ └┼─┤Kа │

│ ├─┤ │ ├─┤ │ │ ├─┤ │ │ ├─┤ │

│┌ 7@ 0Rа  7@ 0─ │┌ 7@ 0Rа  7@ 0─ │┌ 7@ 0Rа  7@ 0─ │┌ 7@ 0Rа  7@ 0─

││└─┴───┘а ││└─┴───┘ ││└─┴───┘ ││└─┴───┘

T ──┴┼─────────┴┼────────────────┴┼────────────────┘│

 4_ 0 │ │ │ │

R ───┴──────────┴─────────────────┴─────────────────┘

На входы J аи K младшего разряда счетчика подана константа

"1", поэтому он постоянно работает в режиме асинхронного T-триг-

гера, то есть изменяет свое состояние на противоположное под воз-

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

разрядов счетчик возможно только в том случае, если все пред-

шествующие триггеры младших разрядов находятся в единичном состо-

янии.

Отличительной особенностью схемы счетчика  2с параллельным пе-

 2реносом 0 является то, что выходы всех предшествующих i-му триггеру

разрядов подаются на вход данного триггера.

Q 41 0 Q 42 0 Q 43 0 Q 44

│ │ │ │

├─────────────┼────┬──────────┼───┐ │

│ ├────┼──────────┼──┐│ │

┌─┬───┐ │ ┌─┬───┐ │  4  0а ┌─┬───┐ │ ┌─┬───┐ │

"1"────┤&а │ │"1"──┤&а │ │"1"─┼──┤&а │ ├┼──┤&а │ │

"1"────┤J│TT ├─┼─────┤J│TT ├─┼────┼──┤J│TT ├─┼──┼┼──┤J│TT ├─┘

"1"────┤ а │ │"1"──┤ │ │ ├──┤ │ │├──┤ а │

│ а │ │ │ │ │ │ │ │ │ │

┌─┤Cа │ а ┌─┤Cа │ │  4  0а │┌─┤Cа │ ││┌─┤Cа │

│ │ │ │ │ │ │ ││ │ │ │││ │ │

"1"──┼─┤&а │ │"1"┼─┤&а │ │"1"─┼┼─┤&а │ └┼┼─┤&а │

"1"──┼─┤Kа │ └───┼─┤Kа │ └────┼┼─┤Kа │ └───┼┼─┤Kа │

"1"──┼─┤ а "1"┼─┤ │ └┼─┤ а │ └┼─┤ а │

│ ├─┤ │ │ ├─┤ │ │ ├─┤ │ │ ├─┤ │

│┌ 7@ 0R│  7@ 0─ │┌ 7@ 0Rа  7@ 0─ │┌ 7@ 0Rа  7@ 0─ │┌ 7@ 0Rа  7@ 0─

││└─┴───┘ ││└─┴───┘ ││└─┴───┘ ││└─┴───┘

T ──┴┼────────────┴┼──────────────┴┼─────────────┘│

 4_ 0 │ │ │ │

R ───┴─────────────┴───────────────┴──────────────┘

Для построения данного счетчика использовались многовходовые


- 5 -

JK-триггеры. Из схемы видно, что с возрастанием порядкового номе-

ра триггера величивается число входов J и К, необходимых для ор-

ганизации схемы. Так как число входов триггера и его нагрузочная

способность ограничены, то разрядность счетчика с параллельным

переносом обычно не превышает четырех. При построении счетчиков

большей разрядности разряды счетчика разбивают на группы по четы-

ре триггера, и внутри каждой группы строят цепи параллельного пе-

реноса. Переноса между группами организуется, например, методом

сквозного переноса. Такой способ образования сигналова переноса

называется  2групповым 0.

 Счетчики с K 0  7- 0  22 5n

Для многих электронных стройств необходимы счетчики с моду-

лем пересчета, отличным от целой степени двойки. Для электроныых

часов, например, могута потребоваться счетчики с коэффициентами

пересчета 3,6,7,10,24 и т.д. В ЭВМ счетчики применяются для зада-

ния сетки тактовых частот машины.

Принцип построения счетчиков с K  7- 0 2 5n 0 заключается в исключе-

нии лишних стойчивых состояний у двоичного счетчика с K = 2 5n 0.

Для реализации данного принципа используются следующие ос-

новные методы:

1) метод блокирования переноса;

2) принудительный порядок счета;

3) начальная установка кода.

Идея способ  2блокирования переноса 0 заключается в том, что

при подаче импульса с номером, несколько меньшим коэффициента пе-

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

ходящиеся в нулевом состоянии, последующиеа импульсы обнуляют

триггеры, оставшиеся в единичном состоянии, так, что с приходом

K-го импульса все триггеры счетчика оказываются в нулевом состоя-

нии.

Рассмотрим в качестве примера троичный счетчик:

Q 41 0 Q 42

│ │

┌────────────┼───────────────┐а │

│ ┌─┬───┐ │ ┌─┬───┐ │

└─┤J│TT ├────┴───────┤J│TT ├─┼──┘

┌──────┤Cа │ ┌──────┤Cа │ │

│ "1"──┤Kа │ │ "1"──┤Kа │ │

│ ├─┤ │ │ ├─┤ │ │

│ ┌─ 7@ 0Rа  7@ 0─ │ ┌─ 7@ 0Rа  7@ 0─┘

│ │ └─┴───┘ │ │ └─┴───┘

T ──┴────┼─────────────┘ │

 4_ 0 │ │

R ───────┴──────────────────┘


- 6 -

Временная диаграмма работы счетчик будета иметь следующий

вид:

T

┌──┐а ┌──┐а ┌──┐а ┌──┐а ┌──┐а ┌──┐

└──┴──┴──┴── 4┴──┴──┴──┴──┴──┴──┴ 0──┴──┴── t

Q 41

│  4┌───── 0┐  4а  0 ┌─────┐

└───── 4┴ 0─── 4──┴ 0───── 4─── 0─ 4─── 0┴─────┴─────── t

Q 42

│  4  0  4┌───── 0┐  4а  0 ┌─────┐

└─── 4─────── 0─ 4┴ 0─── 4──┴ 0───── 4─── 0─ 4─── 0┴─────┴─ t

В счетчиках с  2принудительным порядком счета 0 исключение зап-

рещенных состоянийа достигается за счет принудительной установки

отдельных разрядов в состояние 1 в процессе счета. Для этого в

схему счетчика вводятся обратные связи.

В счетчике с  2начальной становкой кода 0а необходимое число

запрещенных состояний станавливается перед началом счета по сиг-

налу "Начальная становка кода".


ПЕРВЫЙ СЕМЕСТР

ЛЕКЦИЯ N 14

 ДЕШИФРАТОРЫ

 Дешифратором 0 называтся комбинационная схем са несколькими

входами иа выходами, преобразующая код, подаваемый на входы, в

сигнал на одном из выходов.

В общем случае дешифратор с n входами имеет 2 5n 0 выходов, так

как n-разрядный код входного слова может принимать 2 5n 0а различных

значений.

Рассмотрим в качестве примера следующую схему:

┌───┐

┌──────┤ 5& 0а ├───── y 41

┌──┐ а ┌──┤ │

┌─┤ 51 0  7@ 0────┤ └───┘

│ └──┘ а ┌───┐

x 41 0 ────┴───────┬─┼───┼──┤ 5& 0а ├───── y 42

│ а ├──┤ │

┌──┐а │ └───┘

┌─┤ 51 0  7@ 0──┼─┼───┘а ┌───┐

│ └──┘а │ └──────┤ 5& 0а ├───── y 43

x 42 0 ────┴───────┼───┬────┤ │

а │ └───┘

а │ ┌───┐

а └────┤ 5& 0а ├───── y 44

└────────┤ │

└───┘

Условное обозначение дешифратора:

┌─┬──┬─┐

│D│DC│0├──

──┤0 │1├──

──┤1 │2├──

│ │3├──

└─┴──┴─┘

 МУЛЬТИПЛЕКСОРЫ

 Мультиплексором 0 называется схема, осуществляющая передачу

сигналов с одной из входных линий на выходную. Выбор входной (ин-

формационной) линии производится с помощью кода, подаваемого на

управляющие входы мультиплексора. Мультиплексор с k правляющими

входами имеет 2 5k 0 информационными входов.


- 2 -

Рассмотрим в качестве примера следующую схему:

┌───┐

D 40 0 ─────────┤ 5& 0а ├───┐

┌─────┤ а │

│ └───┘ │

│ ┌───┐ │

D 41 0 ───┼─────┤ 5& 0а ├──┐ ┌───┐

│┌────┤ │└──┤ 51 0а │

││ └───┘а └───┤ ├─── y

││ ┌───┐а ┌───┤ │

D 42 0 ───┼┼────┤ 5& 0а ├──┘┌──┤ │

││┌───┤ а └───┘

││а └───┘ │

││а ┌───┐ │

D 43 0 ───┼┼┼───┤ 5& 0а ├───┘

│││┌──┤ │

│││ └───┘

││││

││││

┌─┬──┬─┐ ││││

│ │DC│0├───┘│││

x 40 0 ──┤0 │1├────┘││

x 41 0 ──┤1 │2├─────┘│

│ │3├──────┘

└─┴──┴─┘

Условное обозначение мультиплексора:

┌──┬────┬──┐

───┤D1│ MS │

───┤D2│ │

───┤D3│ │

───┤D4│ │Q ├───

├──┤ │

───┤A1│ │

───┤A2│ │

└──┴────┴──┘

 _ ПРОЦЕССОРЫ И МИКРОПРОЦЕССОРЫ

ОСНОВНЫЕ ПРИНЦИПЫ ПОСТРОЕНИЯ

УСТРОЙСТВ ОБРАБОТКИ ЦИФРОВОЙ ИНФОРМАЦИИ

 Принцип академика В.М. Глушкова 0 гласит, что в любом строй-

стве обработкиа цифровой информации можно выделить операционный и


- 3 -

управляющий блоки. Такой подход прощает проектирование, также

облегчает понимание процесс функционирования вычислительного

устройства.

Операционный блок состоит из регистров, сумматоров и других

узлов, производящих прием из внешней среды и хранение кодов, их

преобразование иа выдачу результатов работы во внешнюю среду, а

также выдачу в правляющий блок и внешнюю среду оповещающиха сиг-

налов.

Процесс функционирования во времениа устройств обработки

состоит из последовательности тактовых интервалов, в которых опе-

рационный блок производит элементарные преобразования кодова (пе-

редачу код из одного регистра в другой, взятие обратного кода,

сдвиг и т.д.).

Элементарная функциональная операция, выполняемая з один

тактовый интервала и приводимая в действие одним правляющим сиг-

налом называется микрооперацией.

Управляющий блока вырабатываета распределенную во времени

последовательность правляющих сигналов, порождающих в операцион-

ном блоке нужную последовательность микроопераций.

Последовательность правляющих сигналов (микрокоманд) опеде-

ляется кодом операции, поступающим извне, состоянием операндов и

промежуточными результатами преобразований.

Существует два основных типа правляющих автоматов:

1) правляющий автомат с жесткой логикой.

Для каждой операции, задаваемой кодом операции команды, строится

набор комбинационныха схем, которые ва нужных тактах возбуждают

соответствующие правляющие сигналы.

2) правляющий автомат с хранимой в памяти логикой.

Каждой выполняемой в операционном стройстве операции ставится в

соответствие совокупность хранимыха в памяти слов - микрокоманд,

содержащих информацию о микрооперациях, подлежащих выполнению в

течение одного машинного такта, и казание, какая микрокоманда

должна выполняться следующей.

Последовательность микрокоманд, обеспечивающая выполнение

некоторой операции (например, множения), называется микропрог-

раммой данной операции.

Функционирование вычислительного стройства может быть опи-

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

случаев добный, хотя и не единственно возможный способ описания

цифровых стройств.

ПРИНЦИПЫ ОРГАНИЗАЦИИ АРИФМЕТИКО-ЛОГИЧЕСКИХ СТРОЙСТВ

 Арифметико-логические стройства (АЛУ) 0 служат для выполнения

рифметических и логических преобразований над словами, называе-

мыми в этом случае операндами. АЛУ служит основной частью опера-

ционного блока ЭВМ.


- 4 -

Выполняемые Лу операции можно разделить на следующие груп-

пы:

- операции двоичной арифметикиа для чисел с фиксированной

запятой;

- операции двоичной арифметики для чисел с плавающей запя-

той;

- операции десятичной арифметики;

- операции индексной арифметики;

- операции специальной арифметики;

- операции над логическими кодами;

- операции над алфавитно-цифровыми полями.

Современные ЭМа общего назначения обычно реализуют операции

всех приведенных выше групп, малые и микроЭВМ часто неа имеют

ппаратуры арифметики чисел с плавающей запятой, десятичной ариф-

метики и операций над алфавитно-цифровыми полями. В этома случае

недостающие операции реализуются специальными программами.

К арифметическим операцияма относятся сложение, вычитание,

взятие модулейа ("короткиеа операции"), и множениеа и деление

("длинные операции").

Группу логическиха операций составляюта операции дизъюнкция

(логическое ИЛИ) и конъюнкция (логическое И) нада многоразрядными

двоичными словами, также операция сравнения кодов на равенство.

Специальные арифметические операции включают в себя нормали-

зацию, арифметическийа сдвиг (сдвигаются только цифровые разряды,

знаковый остается на месте), логический сдвиг (знаковый разряд

сдвигается вместе с цифровыми).

 Классификация АЛУ

По способу действия над операндами Лу делятся н после-

довательные и параллельные. Ва последовательныха АУа операнды

представляются в последовательном коде, операции производятся

последовательно во времени над их отдельными разрядами. В настоя-

щее время АЛУ этого типа нигде не применяются. В параллельных АЛУ

операнды представляются параллельным кодом и операции совершаются

параллельно во времени над всеми разрядами операндов.

По способу представления чисел различают АЛУ:

1) для чисел с фиксированной запятой;

2) для чисел с плавающей запятой;

3) для десятичных чисел.

По характеру использования элементов и узлов АЛУ делятся на

блочные и многофункциональные. В блочном АЛУ операции над числами

с фиксированной и плавающей запятой, десятичными числами и алфа-

витно-цифровыми полями выполняются в отдельных блоках, при этом

повышается скорость работы, така кака блоки могута параллельно

выполнять соответствующиеа операции, но значительно возрастают


- 5 -

затраты оборудования. В многофункциональных АЛУ операции для всех

форм представления чисел выполняются одними и темиа же схемами,

которые коммутируются нужным образом в зависимости от требуемого

режима работы.

СТРУКТУРА И ФОРМАТ КОМАНД. КОДИРОВАНИЕ КОМАНД.

Все возможные преобразования дискретнойа информации могут

быть сведены к четырем основным видам:

1) передача информации в пространстиве;

2) хранение информации;

3) логические операции;

4) арифметические операции.

ЭВМ, являющаяся ниверсальныма преобразователема дискретной

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

Обработк информацииа ва ЭМа осуществляется автоматически

путем программного правления. Программа представляет собой алго-

ритм обработки информации, записанный в виде последовательности

команд, которые должны быть выполнены машиной для получения реше-

ния задачи.

Команда представляет собой код, определяющий операцию вычис-

лительнойа машины и данные, участвующие ва операции. Команда

содержит также в явной или неявной форме информацию об адресе, по

которому помещается результат операции, иа оба адресе следующей

команды.

Процесс выполнения программы состоит иза отдельныха машинных

операций. В данном случае под операцией понимается преобразование

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

Содержанием машиннойа операции могута быть запоминание в памяти,

передача, арифметическое или логическое преобразование машинных

слов, также некоторые вспомогательные процедуры.

По характеру выполняемых операций различают следующие основ-

ные группы команд:

1) команды арифметических операций для чисел с фиксированной и

плавающей запятой;

2) команды десятичной арифметики;

3) команды логических операций;

4) команды передачи кодов;

5) команды ввода-вывода;

6) команды передачи правления;

7) команды задания режима работы машины.

В команде, как правило, содержатся не сами операнды, а

информация об адресах ячеек памяти или регистрах, ва которых они

находятся.

Код команды можно представить состоящим из нескольких частей

или полей, имеющих определенное функциональное назначениеа при

кодировании командной информации. Команда в общем случае состоит

из операционной и адресной частей. Ва свою очередь, этиа части


- 6 -

могут состоять из нескольких полей.

Операционная часть содержит код операции, который задает вид

операции. Адресная часть команды содержит информацию об адресах

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

об адресе следующей команды.

Структура команды определяется составом, назначением и рас-

положением полей в команде. Форматом команды называюта ее струк-

туру с разметкой номерова разрядова (бит), определяющиха границы

отдельных полей команды, или с казанием числа бит в определенных

полях.


ПЕРВЫЙ СЕМЕСТР

ЛЕКЦИЯ N 15

СПОСОБЫ АДРЕСАЦИИ

Адресный код - это информация об адресе операнда, содержаща-

яся в команде.

Исполнительный адрес - это номер ячейки памяти, к которой

производится фактическое обращение.

В современных ЭВМ адресный код, как правило, не совпадает с

исполнительным адресом.

Выбор способов адресации, формирования исполнительного адре-

са и преобразования адресов является одним из важнейшиха вопросов

разработки ЭВМ. Рассмотрима способы адресации, используемые в

современных ЭВМ:

1)  Подразумеваемый операнд 0.

В команде может не содержаться явных казаний об операнде; в этом

случае операнд подразумевается и фактически задается кодом опера-

ции команды.

2)  Подразумеваемый адрес 0.

В команде может не содержаться явных казаний об адресе участвую-

щего в операции операнда или адресе, по которому должен быть раз-

мещен результат операции, но этот адрес подразумевается.

3)  Непосредственная адресация 0.

В командеа содержится не адрес операнда, непосредственно сам

операнд. При непосредственной адресации не требуется обращения к

памяти для выборки операнда и ячейки памяти для его хранения. Это

способствует меньшению времени выполнения программы и занимаемо-

го ею объема памяти. Непосредственная адресация добна для хране-

ния различного рода констант.

4)  Прямая адресация 0.

В адресной части команды может быть непосредственно указан испол-

нительный адрес.

5)  Относительная (базовая) адресация 0.

При этома способе адресации исполнительный адрес определяется как

сумма адресного кода команды и базового адреса, как правило хра-

нящегося в специальном регистре - регистре базы.

Относительная адресация позволяет при меньшей длине адресно-

го кода команды обеспечить доступа к любой ячейке памяти. Для

этого число разрядова ва базовом регистре выбирают таким, чтобы

можно было адресовать любую ячейку оперативной памяти, а адресный

код команды используют для представления лишь сравнительно корот-

кого "смещения". Смещение определяет положение операнд относи-

тельно начала массива, задаваемого базовым адресом.

а6)  Укороченная адресация 0.

Для меньшения длины код команды часто применяется так

называемая короченная адресация. Суть ее сводится к тому, что в

команде задаются только младшие разряды адресов, а старшие разря-

ды при этом подразумеваются нулевыми. Такая адресация позволяет

использовать только небольшую часть фиксированных ячеек в начале

всей адресуемой области памяти, и поэтому применяется лишь сов-

местно с другими способами адресации.

 Регистровая адресация 0а является частным случаем короченной,

когда в качестве фиксированных ячеек с короткими адресами исполь-

зуются регистры (ячейки сверхоперативной или местной памяти) про-

цессора. Например, если таких регистров 16, то для адреса доста-

точно четырех двоичных разрядов. Регистровая адресация наряду с

сокращением длины адресов операндов позволяет увеличить скорость

выполнения операций, так как меньшается число обрашений к опера-

тивной памяти.

7)  Косвенная адресация 0.

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

в которой находится адрес операнда или команды. Косвенная адреса-

ция широко используется в малых и микроЭВМ, имеющих короткое ма-

шинное слово, для преодоления ограничений короткого формата ко-

манды (совместно используются регистровая и косвенная адресация).

8)  Адресация слов переменной длины 0.

Эффективность вычислительныха систем, предназначенныха для

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

операции со словами переменной длины. Ва этома случае ва машине

может быть предусмотрена адресация слов переменной длины, которая

обычно реализуется путема казания в команде местоположения в

памяти начала слова и его длины.

9)  Стековая адресация 0.

Стековая память, реализующая безадресное задание операндов,

особенно широко используется в микропроцессорах и миниЭВМ.

Стек представляет собой группу последовательно пронумерован-

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

которома автоматически при записи и считывании станавливается

номер (адрес) последней занятой ячейки стека (вершины стека). При

операции записи заносимое в стек слово помещается в следующую по

порядку свободную ячейку стека, при считывании из стека извле-

кается последнее поступившее в него слово.

10)  Автоинкрементная и автодекрементная адресации 0.

Поскольку регистровая косвенная адресация требует предвари-

тельной загрузки регистра косвенным адресом из оперативной памя-

ти, что связано с потерей времени, такой тип адресации особенно

эффективен при обработке массива данных, еслиа имеется механизм

втоматического приращения илиа уменьшения содержимого регистра

при каждом обращении к нему. Такой механизма называется соот-

ветственно автоинкрементной и автодекрементной адресацией. В этом

случае достаточно один раз загрузить в регистр адрес первого об-

рабатываемого элемент массива, затем при каждом обращении к

регистру в нема будета формироваться адреса следующего элемента

массива.

При автоинкрементной адресации сначал содержимое регистра

используется кака адреса операнда, затем получает приращение,

равное числу байт в элементе массива. При автодекрементной адре-

сации сначала содержимое казанного в команде регистра уменьшает-

ся на число байт в элементе массива, затема используется как

дрес операнда.

Автоинкрементная и автодекрементная адресации могут рассмат-

риваться кака пращенныйа варианта индексации -а весьма важного

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

вычислительных циклов, поэтому их часто называют автоиндексацией.

11)  Индексация 0.

Для реализуемых на ЭВМ методов решения математическиха задач

и обработкиа данныха характерн цикличность вычислительных про-

цессов, когда одни и те же процедуры выполняются нада различными

операндами, порядоченно расположенными в памяти. Поскольку опе-

ранды, обрабатываемые при повторениях цикла, имеют разные адреса,

без использования индексации требовалось бы для каждого повторе-

ния составлять свою последовательность команд, отличающихся ад-

ресными частями.

Программирование циклов существенно прощается, еслиа после

каждого выполнения цикл обеспечено автоматическое изменение в

соответствующих командах их адресных частей согласно расположению

в памяти обрабатываемых операндов. Такой процесс называется моди-

фикацией команд, и основан на возможности выполнения нада кодами

команд арифметических и логических операций.

правление вычислительным циклом должно обеспечивать повто-

рение цикла нужное число раз, затем выход из него.

Автоматическая модификация команд и правлениеа вычислитель-

ными циклами в современных ЭВМ обеспечиваются механизмом индекса-

ции. Это понятие включает в себя специальный способа кодирования

команд, командные аиа аппаратурные средства задания и выполнения

модификации команд и правления вычислительными циклами. Упомяну-

тые средства часто называют индексной арифметикой.

Для выполнения индексации в машину вводятся така называемые

индексные регистры. Исполнительный адрес при индексации формиру-

ется путем сложения адресного кода команды (смещения) с содержи-

мым индексного регистра (индексом), при наличии базирования - и

с базовым адресом.

Для правления индексацией используются команды, задающие

операции нада содержимыма индексных регистров - команды индексной

рифметики. Можно отметить основные виды индексных операций:

- засылка ва соответствующий индексныйа регистра начального

значения индекса;

- изменение индекса;

- проверка окончания циклических вычислений.


ПЕРВЫЙ СЕМЕСТР

ЛЕКЦИЯ N 16-17

 _ МИКРОПРОЦЕССОР INTEL 8086

Структуру команда и методы адресации мы далее будема рас-

сматривать на примереа широко распространенного микропроцессора

Intel 8086. Рассмотрим аппаратную модель этого микропроцессора.

АППАРАТНАЯ МОДЕЛЬ ПРОЦЕССОРА 8086

Выполнение программы ва ЭМа представляет собой циклическую

последовательность приведенныха ниже действий, образующиха цикл

команды:

1) выборка команды из памяти и формирование адреса следующей

по порядку команды;

2) считывание операнда из памяти, если это требуется по смы-

слу команды;

3) собственно выполнение команды;

4) запись результата в память, если это казано в команде, и

переход к новому циклу команды.

Обычно в микропроцессоре эти действия выполняются последова-

тельно во времени. В процессоре 8086 основные этапы сохранены, но

они распределены внутри процессора по двум сравнительно независи-

мыма устройствам. Операционное стройство выполняет команды, а

устройство шинного интерфейса выбирает команды, считывает операн-

ды и записывает результаты. Оба стройства могут работать парал-

лельно и в большинстве случаев обеспечивают значительное совмеще-

ние выборки и выполнения команд. В результате этого время выборки

команды как-бы "исчезает" из цикла команды, так как операционное

устройство выполняет команды, же выбранные шинным интерфейсом.

Операционное устройство содержита группуа общиха регистров,

рифметико-логическое стройство (АЛУ), основу которого составля-

ет комбинированный 16-разрядный сумматор с последовательно-парал-

лельным переносом, регистра флажкова иа несколько регистров для

временного хранения операндов и результата операции. Оно выполня-

ет команды, обменивается данными и адресами с шинным интерфейсом,

оперирует общими регистрами и флажками. Ва его составе имеется

блок микропрограммного управления, который дешифрует команды и

формирует необходимые правляющие сигналы. Операционноеа устрой-

ство изолированно ота внешней шины, з исключением нескольких

внешних сигналов.

Шинный интерфейса выполняет для операционного устройства все

операции обмена. Данные передаются между процессорома и памятью

или портамиа ввода-вывод по запросам операционного стройства.

Когда операционное стройство занято выполнением команды, шинный

интерфейс самостоятельно инициирует опережающую выборку из памяти

очередных команд. Команды хранятся во внутренней регистровой


- 2 -

памяти, называемой очередью (буфером)а команд. Очередь команд

выполняет по существу функции регистра команды процессора. Длина

очереди составляета 6а байт. Очередь команд работает по принципу

FIFO ("первым пришел, первым вышел"), который сохраняет на выходе

порядок поступления команд.

Шинный интерфейс инициируета выборку иза памяти следующего

командного слова, когд ва очередиа оказываются дв свободных

(пустых) байта.

В большинстве случаева очередь команд содержит минимум один

байт потока команд, и операционное стройство не ожидает выборки

команды. Конечно, очередь обеспечивает положительный эффект при

естественном порядке выполнения команд. Когда операционное ст-

ройство выполняета команду передачи правления, шинный интерфейс

сбрасывает очередь, выбирает команду по новому адресу, передает

ее в операционное стройство, затем начинает заполнение очереди

иза следующихячеек. Эти действия выполняются при словныха и

безусловных переходах, вызовах подпрограмм, возвратах из подпрог-

рамм и при обработке прерываний. Шинный интерфейс приостанавлива-

ет выборкуа команд, когд операционноеа устройство запрашивает

операцию считывания или записи в память или порт ввода-вывода.

В состава шинного интерфейс входята несколько регистров и

сумматор, которые формируют 20-разрядный физический адреса памяти

из двух 16-разрядных логических адресов: сегмента (базы) и смеще-

ния.

При готовности операционного стройств выполнять команду

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

мандой операцию. При многобайтных командах из очереди считываются

и другие байты команды. Когда операционное стройство готово счи-

тать командный байт, а очередь команд пуста, оно ожидает выборки

командного слова из памяти программ, которуюа производита шинный

интерфейс. Если команда требует обращения к памяти или порту вво-

да-вывода, операционное стройство запрашиваета шинныйа интерфейс

на выполнение необходимого цикла шины. Когда шинный интерфейс не

занята выборкой команды, она удовлетворяета запроса немедленно;

в противном случае операционное стройство ожидает завершения те-

кущего цикла шины.

ПРОГРАММНАЯ МОДЕЛЬ ПРОЦЕССОРА 8086

Программная модель процессор -а это функциональная модель,

используемая программистом при разработке программа ва кодаха ЭВМ

или на языке ассемблера. В такой модели игнорируются многие аппа-

ратные особенности в работе процессора.

В процессоре 8086 имеется несколько быстрых элементова памя-

ти, которые называются регистрами. Каждый иза регистрова имеет

уникальнуюа природу и предоставляета определенные возможности,

которые другими регистрами или ячейками памяти не поддерживаются.


- 3 -

Регистры разбиваются на четыре категории:а регистры общего

назначения, регистр флагов, казатель команд и сегментные регист-

ры. Все регистры 16-разрядные.

Формат регистров общего назначения:

15 0

┌───────────────────────┬───────────────────────┐

AX │ AH │ AL │

└───────────────────────┴───────────────────────┘

┌───────────────────────┬───────────────────────┐

BX │ BH │ BL │

└───────────────────────┴───────────────────────┘

┌───────────────────────┬───────────────────────┐

CX │ CH │ CL │

└───────────────────────┴───────────────────────┘

┌───────────────────────┬───────────────────────┐

DX │ DH │ DL │

└───────────────────────┴───────────────────────┘

┌───────────────────────────────────────────────┐

SI │ │

└───────────────────────────────────────────────┘

┌───────────────────────────────────────────────┐

DI │ │

└───────────────────────────────────────────────┘

┌───────────────────────────────────────────────┐

BP │ │

└───────────────────────────────────────────────┘

┌───────────────────────────────────────────────┐

SP │ │

└───────────────────────────────────────────────┘

Формат регистра флагов:

15 0

┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐

FLAGS │**│**│**│**│OF│DF│IF│TF│SF│ZF│**│AF│**│PF│**│CF│

└──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘

казатель команд:

15 0

┌───────────────────────────────────────────────┐

IP │ │

└───────────────────────────────────────────────┘

.

- 4 -

Формат сегментных регистров:

15 0

┌───────────────────────────────────────────────┐

CS │ │

└───────────────────────────────────────────────┘

┌───────────────────────────────────────────────┐

DS │ │

└───────────────────────────────────────────────┘

┌───────────────────────────────────────────────┐

ES │ │

└───────────────────────────────────────────────┘

┌───────────────────────────────────────────────┐

SS │ │

└───────────────────────────────────────────────┘

РЕГИСТР ФЛАГОВ

Этот 16-разрядный регистр содержит всю необходимуюа информа-

цию о состоянии процессора 8086 и результатах выполнения послед-

ней команды.

15 11 10а 9а 8а 7а 6 4 2 0

┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐

FLAGS │**│**│**│**│OF│DF│IF│TF│SF│ZF│**│AF│**│PF│**│CF│

└──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘

Битовые флаги:

OF - флаг переполнения;

DF - флаг направления;

IF - флаг прерывания;

TF - флаг трассировки;

SF - флаг знака;

ZF - флаг нуля;

AF - флаг дополнительного переноса;

PF - флаг четности;

CF - флаг переноса;

** - бит не используется, состояние не определено.

Флаг переполнения OFа сигнализируета о потере старшего бита

результата сложения или вычитания. Имеется специальная команда

прерывания при переполнении, которая генерирует программное пре-

рывание.

Флаг направления DF определяет порядок сканирования цепочек

байт или слов в соответствующих командах:а от меньшиха адресова к

большим (DF = 0) или наоборот (DF = 1).


- 5 -

Флаг прерывания IF определяет реакцию процессора н запросы

внешних прерываний по входу INT. Если IF = 0, запросы прерываний

игнорируются (говорят также, что прерывания запрещены или замас-

кированы), если IF = 1, процессор распознает запросы на преры-

вания и реагируета н ниха соответствующим образом. Состояние

флага IF не влияет на восприятие внешних немаскируемых прерываний

по входу NMI, также внутренних (программных) прерываний.

становк ва состояние 1а флаг трассировкиа TFа переводит

процессор в одношаговый (покомандный) режим работы, который при-

меняется при отладке программ. В этом режиме процессор автомати-

чески генерирует внутреннее прерывание послеа выполнения каждой

команды с переходома к соответствующей подпрограммеа обработки,

которая может, например, демонстрировать содержимоеа регистров

процессора на зкране дисплея.

Флаг знака SF повторяет значение старшего бит результата,

который при использовании дополнительного кода соответствует зна-

ку числа.

Флаг нуля ZFа сигнализирует о получении нулевого результата

операции.

Флаг вспомогательного перенос AF фиксирует перенос (заем)

иза младшей тетрады ва старшую 8- илиа 16-битного результата.

Он необходим только для команд десятичной арифметики.

Флаг четности (паритета) PF фиксирует наличие четного числа

единиц в младших 8 разрядах результата операции. Этот флаг пред-

назначен для контроля правильности передачи данных.

Флаг CFа фиксируета значение переноса (заема), возникающего

при сложении или вычитании байт или слов, также значение выдви-

гаемого бита при сдвиге операнда.

Регистр флагов не считывается и не модифицируется непосред-

ственно. Вместо этого в системе команд микропроцессора предусмот-

рены специальные команды, са помощью которыха программист может

задать необходимое ему состояние любого из флагов (кроме TF).

Содержимое регистра флагов используется микропроцессором при

выполнении команд словного перехода, циклических сдвигов, опера-

ций с цепочками байт или слов.

РЕГИСТРЫ ОБЩЕГО НАЗНАЧЕНИЯ

Восемь регистров общего назначения процессор 8086а (каждый

разрядностью 16 бит) используются ва операциях большинства инст-

рукций в качестве источника или приемника при перемещении данных

и вычислениях, казателей на ячейки памяти иа счетчиков. Каждый

регистр аобщего назначения можета использоваться для хранения

16-битового значения, ва арифметических и логических операциях,

может выполняться обмен между регистром и памятью (запись иза ре-

гистр ва память и наоборот).


- 6 -

Кроме этих общих свойств, каждый регистр общего назначения

имеета свои особенности. Поэтому рассмотрим далее каждый из них

отдельно.

Регистр AX называют также накопителем (аккумулятором). Этот

регистра всегд используется в операциях множения или деления и

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

для наиболее эффективных операций (арифметических, логических или

операций перемещения данных).

Младшие 8 битов регистра AX называются также регистром AL, а

старшие 8а битов - регистром AH. Это может оказаться удобным при

работе с данными размером в байт. Таким образом, регистр AX можно

использовать, кака два отдельных регистра.

Регистр BX может использоваться для ссылки на ячейкуа памяти

(указатель), т.е. 16-битовое значение, записанноеа ва BX, может

использоваться в качестве части адреса ячейки памяти, к которой

производится обращение. По молчанию, когд BXа используется в

качестве казателя на ячейку памяти, он ссылается на нее относи-

тельно сегментного регистра DS.

Как и регистры AX, CX и DX, регистр BXа можета интерпретиро-

ваться, как два восьмибитовых регистра - BH и BL.

Специализация регистра CX - использование в качестве счетчи-

ка при выполнении циклов.

меньшение значения счетчика и цикл - это часто используемый

элемента программы, поэтому в процессоре 8086 используется специ-

льная команда для того, чтобы циклы выполнялись быстрее и были

более компактными. Эта команда называется LOOP. Инструкция LOOP

вычитает 1 из CX и выполняет переход, если содержимое регистра CX

не равно 0.

Регистра CXа можно интерпретировать, кака два 8-разрядных

регистра - CH и CL.

Регистр DX - это единственный регистр, которые может исполь-

зоваться ва качестве казателя адрес ввода-вывод ва командах

IN и OUT. Фактически, кроме использования регистра DX нет другого

способа адресоваться к портам ввода-вывода с 256 по 65535.

Другие уникальные качества регистра DX относятся к операциям

деления и множения. Когд вы делитеа 32-битовое делимое на

16-битовый делитель, старшие 16 битов делимого должны быть поме-

щены в регистр DX (младшие 16 битов делимого должны быть помещены

в регистр AX). После выполнения деления остаток также сохраняется

в регистре DX (частное от деления будет записано в AX). Аналогич-

но, когда вы перемножаете два 16-битовых сомножителя, старшие 16

битов произведения сохраняются в DX (младшие 16 битов записывают-

ся в регистр AX).

Регистра DXа можно интерпретировать, кака дв 8-разрядных


- 7 -

регистра - DH и DL.

Как и регистр BX, регистр SI может использоваться, кака ука-

затель на ячейку памяти. Особенно полезно использовать регистр SI

для ссылки н память ва строковыха командаха процессор 8086,

которые не только изменяют содержимое по адресу памяти, на кото-

рый казывает SI, но к SI также добавляется или вычитается 1. Это

можета оказаться очень эффективныма при организации доступа к

последовательныма ячейкама памяти (например, ка строке текста).

Кроме того, можно сделать так, что строковые команды будут

втоматически определенное число раз повторять свои действия, так

что отдельная команд можета выполнить сотни, иногда и тысячи

действий.

Регистр DI очень похож на регистра SIа в том плане, что его

можно использовать ва качествеа указателя ячейки памяти. При

использовании его в строковых командах регистр DI несколько отли-

чается от регистра SI. В то время кака SIа всегда используется в

строковыха командах, кака казатель н исходную ячейку памяти

(источник), DI всегда служит казателем на целевую ячейку памяти

(приемник). Кроме того, ва строковых командах регистр SI обычно

дресуется к памятиа относительно сегментного регистра DS, в то

время как DI всегда адресуется к памяти относительно сегментного

регистра ES. Когда SI и DI используются в качестве казателей на

ячейки памяти в другиха командаха (не строковых), то они всегда

дресуются к памяти относительно регистра DS.

Как и регистры BX, SI и DI, регистр BP также может использо-

ваться в качестве казателя на ячейку памяти, но здесь есть неко-

торые отличия. Регистры BX, SI и DI обычно ссылаются н память

относительно сегментного регистра DS (или, в случае использования

в строковых командах регистра DI, относительно сегментного регис-

тра ES), регистр BP адресуется к памяти относительно регистра

SS (сегментный регистр стека). Регистр BP создан для обеспечения

работы с параметрами процедур, локальными переменными иа других

случаев, когда требуется адресация к памятиа са использованием

стека.

Регистр SP называется также казателем стека. Это "наименее

общий"а иза регистров общего назначения, поскольку он практически

всегда используется для специальной целиа -а обеспечения стека.

Стека - аэто область памяти, в которой можно сохранять значения и

из которой они могут затема извлекаться по дисциплине "послед-

ний-пришел-первый-ушел"а (LIFO). То есть последнее сохраненное в

стеке значение будет первым значением, которое вы получите при

чтении из стека.

Регистр SP в каждый момент времени казывает на вершину сте-

ка. Вершина стека - это то место, ва котором в стеке сохраняется

следующее помещенное туда значение. Действие, состоящее в занесе-


- 8 -

нии значений в стек, называют также "заталкиванием"а (pushing)а в

стек (для этого используется команда PUSH). Аналогично, дейст-

вие, состоящее в извлечении (выборке) значений из стека, называют

также "выталкиванием" (popping) из стек (для этого используется

команда POP).

Хотя процессор 8086 и позволяет записывать значения в SP или

складывать и вычитать хранящиеся в регистре SP значения (как это

можно делать с обычными регистрами общего назначения), вама не

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

лаете. Если вы изменяете SP, то изменяется расположениеа вершины

стека, что быстро может привести к неприятностям, так как занесе-

ние данных в стек и извлечение иха из него не является единствен-

ным способом использования стека. Стека используется всякий раз,

когда вы вызываете или возвращаетесь иза подпрограммы (процедуры

или функции). Кроме того, стек используюта некоторыеа системные

программы (такие, как драйвер клавиатуры или системныйа таймер),

когда они прерывают процессор 8086, чтобы выполнить свои функции.

Все это означает, что стек может ва любойа момента потребоваться.

Если вы измените SP, то правильное значение стека может оказаться

недоступным, когд она потребуется системным программам. Можно

свободно выполнять операции занесения ва стека и извлечения из

него, вызовы и возвраты правления, но неа изменяйте значения

регистра SP непосредственно. Любой из других семи регистров обще-

го назначения можно спокойно изменять в любой момент.

КАЗАТЕЛЬ КОМАНД

казатель команда (регистр IP)а всегд содержита смещение в

памяти, по которому хранится следующая выполняемая команда. Когда

выполняется одна команда, указатель команда перемещается таким

образом, чтобы казывать на адрес памяти, по которому хранится

следующая команда. Обычно следующей выполняемой командой является

команда, хранимая по следующемуа адресу памяти, но некоторые

команды, такие, как вызовы или переходы, могута привести к тому,

что ва казатель команда будета загружено новое значение. Таким

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

Значение счетчик команда нельзя прочитать или записать

непосредственно. Загрузить ва казатель команда новое значение

может только специальная команда перехода.

казатель команд сам по себе не определяет адрес, по которо-

му находится следующая выполняемая команда. Картинуа здесь опять

усложняет сегментная организация памяти процессор 8086. Для

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

дрес, при этом указатель команда задаета смещениеа относительно

этого базового адреса.


- 9 -

СЕГМЕНТНЫЕ РЕГИСТРЫ

Теперь мы подошли к наиболее необычномуа аспекту процессора

8086а - сегментации памяти. Основной предпосылкой сегментации яв-

ляется следующее: процессор 8086 может адресоваться к 1 мегабайту

памяти. Для адресации ко всем ячейкам адресного пространства в 1

мегабайт необходимы 20-разрядные сегментные регистры. Однако про-

цессора 8086а используета только 16-разрядные казатели на ячейки

памяти. Как же тогда согласовать 16-разрядные казателиа процес-

сора 8086 и 20-разрядные адреса?

Ответ состоит в том, что процессор 8086 используета двухсту-

пенчатую схему адресации. Да, используются 16-разрядные казате-

ли, но эт форм представляет собой только часть полной схемы

дресации. Каждый 16-разрядный казатель памяти илиа смещение

комбинируется с содержимым 16-разрядного сегментного регистра для

формирования 20-разрядного адреса памяти.

Сегменты и смещения комбинируются следующим образом:а значе-

ние сегмента сдвигается влево на 4 (то есть множается на 16), а

затем складывается со смещением. Фактически, для доступа к памяти

процессор всегда использует пару "сегмент:смещение". Все команды

и режимы адресацииа процессора 8086 по молчанию работают относи-

тельно того или иного сегментного регистра, хотя ва некоторых

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

сегментный регистр.

Вам редко потребуется загружать значение непосредственно в

сегментный регистр. Вместо этого вы будете загружать в сегментные

регистры имена сегментов, которые в ходе ассемблирования, компо-

новки и выполнения превращаются в числа. Это необходимо, посколь-

ку нет способа сказать заранее, где ва памяти будета находиться

данный сегмент: это зависит от версии DOS, числа и размера рези-

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

части программы. Использование имен сегментов позволяет ассембле-

ру и операционной системе DOS выполнять подобные вычисления.

Использование сегментов процессора 8086 приводит к некоторым

интересныма моментам. Один из них состоит в том, что только блок

памяти размером в 6К в любой момента можета адресоваться через

сегментныйа регистр, так как 6К - это максимальный объем памяти,

к которой можно адресоваться с помощью 16-битового смещения. Это

можета оказаться неприятным при работе с большим (более 6К) объ-

емом памяти, так как и значение сегментного регистра, и смещение,

придется часто изменять.

Адресация к большим блокам памяти ва процессоре 8086а может

представлять еще большую трудность, поскольку, ва отличие от

регистров общего назначения, сегментные регистры не могут исполь-

зоваться в качестве источников или приемников в арифметических и

логических команд. Фактически, единственная операция, которую

можно выполнять с сегментными регистрами, состоита ва копировании

значений между сегментными регистрами и другими общими регистрами


- 10 -

или памятью.

Вторая особенность использования сегментова состоита ва том,

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

тания "сегмент:смещение". Например, адрес памяти 100h адресуется

с помощью следующих значений "сегмент:смещение":а 0:100h, 1:F0h,

2:E0h и т.д., так как при вычислении всех этиха пар "сегмент:сме-

щение" получается значение адреса 100h.

Аналогично регистрама общего назначения каждый сегментный

регистр играет свою, конкретную роль. Регистр CS указывает на код

программы, DSа казываета н данные, SS - на стек. Сегментный

регистр ES - это дополнительный сегмент, который можета использо-

ваться так, как это необходимо. Рассмотрима сегментные регистры

более подробно.

Регистр CS указывает на начало блока памяти объемом 6К, или

сегмента кода, в котором находится следующая выполняемая команда.

Следующая команда, которую нужно выполнить, находится по смеще-

нию, определяемому в сегменте кода регистром IP, то есть на нее

указываета адреса (в форме "сегмент:смещение")а CS:IP. Процессор

8086а никогд не может извлечь команду из сегмента, отличного от

того, который определяется регистром CS.

Регистр CS можно изменять с помощью многиха команд, включая

отдельные команды перехода, вызовы и возвраты управления. Ни при

каких обстоятельствах регистр CS нельзя загрузить непосредствен-

но. Никакие другие режимы адресации или казатели памяти, отлич-

ные от IP, не могут нормально работать относительно регистра CS.

Регистр DS указываета н начало сегмент данных, которые

представляета собой блок памяти объемом 6К, в котором находится

большинство размещенных в памяти операндов. Обычно для ссылки на

дреса памяти используются смещения, предполагающие использование

регистров BX, SI или DI. В основном сегмента данныха представляет

собой то, о чем говорит его название: как правило это сегмент, в

котором находится текущий набор данных.

Регистр ES указывает на начало блок памятиа объемома 6К,

который называется дополнительныма сегментом. Как и подразумевает

его название, дополнительный сегмента неа служита для какой-то

конкретной цели, но доступен тогда, когда в нем возникает необхо-

димость. Иногда сегмент ES используется для выделения дополни-

тельного блока памяти объемома 6Ка для данных. Однако доступ к

памяти в дополнительном сегменте менее эффективен, чем доступ к

памяти в сегменте данных.

Особенно полезен дополнительный сегмент, когда используются

строковыеа команды. Все строковыеа команды, которые выполняют

запись в память, используют в качестве адреса, по которому нужно

выполнить запись, пару регистров ES:DI. Это означает, что регистр


- 11 -

ESа особенно полезена при использовании его в качестве целевого

сегмент при копированииа блоков, сравнении строк, просмотре

памяти и очистке блоков памяти.


ПЕРВЫЙ СЕМЕСТР

ЛЕКЦИЯ N 18-19

РАБОТА МИКРОПРОЦЕССОРА 8086

С ПАМЯТЬЮ И РЕГИСТРАМИ СТРОЙСТВ ВВОДА-ВЫВОДА

ОРГАНИЗАЦИЯ ПАМЯТИ

Микропроцессора 8086а обеспечивает адресацию памяти емкостью

1 Мбайт. Адресное пространство памяти представляет собой одномер-

ный массив байт, каждый иза которыха имеет 20-битный физический

дрес.

Минимальной адресуемой единицей памяти является байт. Любые

два смежных байта в памяти образуют 16-битное слово.а 16-битовое

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

ячейке с большим номером. Адресом слова считается адрес его млад-

шего байта.

Четыре смежных байта памяти образуют 32-битное слово (двой-

ное слово), именуемое казателема иа представляющее собой полный

дрес памяти "сегмент:смещение". Старшее слово при этом задает

базовый адрес (начало сегмента), младшее - смещение. Такие ка-

затели применяются для адресации данных и команд, находящихся вне

текущих сегментов.

Команды, байты и слова данных можно свободно размещать по

любому адресу. Однако в некоторых случаях целесообразно размещать

слова в памяти по четным адресам, так как процессор может переда-

вать такиеа слов за один цикл шины (слова с нечетными адресами

передаются за два цикла шины).

Слово c четныма адресома называется выравненным на границе

слова. Особенно важно иметь выровненные слов для операцийа со

стеком, така кака ва них частвуют только слова. Следовательно,

указатель стека SP всегда необходимо инициализировать н четный

дрес. Отметим, что выравнивание команд незначительно увеличивает

производительность процессора, так как стройство шинного интер-

фейса выбирает их в очередь команд с опережением.

Сегментация

Программы используюта пространство памятиа в 1 Мбайт в виде

сегментов. Сегмент представляет собой логическую единицуа памяти

размером 64 Кбайт. Он состоит из смежных ячеек памяти и является

независимой и отдельно адресуемой единицей памяти. Каждомуа сег-

менту программойа назначается базовый (начальный) адрес, являю-

щийся адресом его первого байта в адреснома пространствеа памяти.

Все сегменты начинаются на 16-байтных границах памяти, называемых

границами параграфов.

Других ограничений на размещение сегментова ва памяти нет.

Сегменты могута быть соседнимиа (смежными), неперекрывающимися

(непересесекающимися), частично илиа полностью перекрывающимися.


- 2 -

Физическая ячейка памяти может принадлежать одному или нескольким

сегментам.

Зарезервированные области памяти

Две области адресного апространств памяти зарезервированы

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

и системныма сбросом. Этими областямиа являются первые 128 байт

(физические адреса -7F) и последние 16а байта (физические

дреса 0-). Данные области использовать для других целей

нельзя.

ВВОД-ВЫВОД

Процессора 8086а имеета большое адресное пространство ввода-

вывода, изолированное ота пространств памяти, и специальные

команды, которые передают данные между регистрамиа процессор и

портами в пространстве ввода-вывода. Допускается также организа-

ция ввода-вывода, отображенного на память, чтобы использовать для

ввода-вывода всю систему команда иа допустимые режимы адресации

памяти. Для быстрых передач блоков данных применяются контроллеры

прямого доступа к памятиа и специализированные процессоры ввода-

вывода.

Адресное пространство ввода-вывода содержит до 6К 8-битовых

портов или до 3К 16-битовыха портов. Команды IN (ввод)а и OUT

(вывод) передаюта данные между аккумуляторами AL (байты) или AX

(слова) и адресуемыми портами.

Восемь ячеека F8-FF в пространстве ввода-вывода зарезервиро-

ваны для системных целей, и использовать их в прикладных програм-

мах не рекомендуется.

ОРГАНИЗАЦИЯ ПАМЯТИ ЭВМ ТИПА IBM PC

Память ЭВМ IBM PC организована следующим образом:

Первые 640 Кбайт адресного пространства с адресами ота а до

9 выделены пода оперативную память, остальные 384 Кбайт c

дресами от A до используются для размещения Зу и

отображаемого на память ввода-вывода.

В начале области ОЗУ размещена область векторова прерываний:

256 векторов, занимающих по 4 байта памяти. После них расположены

области данных и программ операционной системы. Оставшуюся часть

ОЗУ занимают программы пользователя.

Адреса в области ПЗУ и отображаемого ввода-вывод распреде-

лены следующим образом:

A-Aа -а отображенная на память область ввода вывода

дисплея в графическом режиме;

B-B7а -а отображенная на память область ввода вывода

дисплея в текстовом монохромном режиме;


- 3 -

B8-Bа -а отображенная на память область ввода вывода

дисплея в цветном текстовом режиме;

C-Eа -а область ПЗУ жесткого диска, видеодаптера и

других стройств;

F-а -а область Зу программа тестирования ЭВМ при

запуске, начальной загрузки операционной системы и базовой систе-

мы ввода-вывода.

В ЭВМ IBM PC используются порты с адресами -03FF, причем

дрес -00FFа используются системнойа платой, остальная

область выделена для стройств пользователей.

РЕЖИМЫ АДРЕСАЦИИ МИКРОПРОЦЕССОРА INTEL 8086

Команда разделяется на группы бит (поля), причем поле кода

операции (КОП) показывает, что должен делать процессор, а осталь-

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

информацию. Операнд может содержать данное, часть адреса данного,

косвенный казатель данного или другую информацию, относящуюся к

обрабатываемым командой данным.

Общий формат команды:

┌────────────┬────────────┬────────────┬────────────┐

│Код операции Операнд а ... Операнд │

└────────────┴────────────┴────────────┴────────────┘

Команды могута содержать несколько операндов, но чем больше

операндов и чем они длиннее, тем больше места занимает команда в

памяти и тем больше времени для ее считывания требуется процессо-

ру. Чтобы сократить длину команды, в большинстве команд использу-

ются один или два операнда, причем в двухоперандной команде одним

из операндов является регистр.

Способ определения операнд называется режимом адресации.

Рассмотрим наиболееа типичные режимы адресацииа микропроцессора

8086. Ониа разделяются на два класса - режимы адресации данных и

режимы адресации переходов.

РЕЖИМЫ АДРЕСАЦИИ ДАННЫХ

Различают следующие режимы адресации данных:

1) Непосредственный -а данное длинойа 8а или 16а бит является

частью команды.

Операнд:

┌──────────┐

Данное │

└──────────┘


- 4 -

2) Прямой - 16-битный эффективный адрес данного является частью

команды.

Операнд: Память:

┌──────────┐ ┌──────────┐

│ EA ├──────> Данноеа │

└──────────┘ └──────────┘

3) Регистровый -а данноеа содержится ва определяемом командой

регистре.а 16-битный операнд может находиться в регистрах AX, BX,

CX, DX, SI, DI, SP или BP, 8-битный - в регистрах AL, AH, BL,

BH, CL, CH, DL или DH.

Операнд: Регистр:

┌──────────┐ ┌──────────┐

│ Регистра ├──────> Данноеа │

└──────────┘ └──────────┘

4) Регистровый косвенный - эффективный адрес данного находится

в базовом регистре BX или одном из индексных регистров.

┌ ┐

│(BX)│

EAа =а │(SI)│

│(DI)│

└ ┘

Операнд: Регистр: Память:

┌──────────┐ ┌──────────┐ ┌──────────┐

│ Регистра ├──────>│ EA ├──────> Данноеа │

└──────────┘ └──────────┘ └──────────┘

5) Регистровый относительный -а эффективныйа адрес равен сумме

8- или 16-битного смещения и содержимого базового или индексного

регистров.

┌ ┐

│(BX)│ ┌ ┐

EAа =а │(BP) +а 8-битное смещение │

│(SI)│ │ 16-битное смещение │

│(DI)│ └ ┘

└ ┘

Операнд 1: Регистр: Операнд 2: Память:

┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐

│ Регистра ├──> Адрес │ + │ Смещение │ ══> Данное │

└──────────┘ └──────────┘ └──────────┘ └──────────┘


- 5 -

6) Базовый индексный - эффективный адрес равен сумме содержимо-

го базового и индексного регистров.

┌ ┐ ┌ ┐

EAа = а│(BX) +а │(SI)│

│(BP)│ │(DI)│

└ ┘ └ ┘

Операнд: Регистр:

┌───────┬─────────┐ ┌──────────┐

│Базовый│Индексный├─────> Индекса ├───┐

│регистр│регистра │ └──────────┘ │ Память:

└───┬───┴─────────┘ ┌─┴─┐а EA ┌──────────┐

│ │ + ├──────> Данноеа │

│ Регистр: └─┬─┘ └──────────┘

│ ┌──────────┐ │

└───────────────────>│ Базовый ├───┘

адрес │

└──────────┘

7) Относительный базовый индексный -а эффективный адреса равен

сумме 8- или 16-битного смещения и базово-индексного адреса.

┌ ┐ ┌ ┐ ┌ ┐

EAа =а │(BX) +а │(SI) +а 8-битное смещение │

│(BP)│ │(DI)│ │ 16-битное смещение │

└ ┘ └ ┘ └ ┘

Операнд 1: Операнд 2:

┌───────┬─────────┐ ┌──────────┐

│Базовый│Индексныйа │ Смещение ├──────┐

│регистр│регистра а │ │ │

└───┬───┴────┬────┘ └──────────┘ │

│ │ Регистр: │ Память:

│ │ ┌──────────┐ ┌─┴─┐а EA ┌──────────┐

│ └───────> Индекса ├───>│ + ├──────> Данноеа │

│ └──────────┘ └─┬─┘ └──────────┘

│ Регистр: │

│ ┌──────────┐ │

└────────────────>│ Базовый ├──────┘

адрес │

└──────────┘

Допустим, что регистр BX содержита число 0158а ва 16-ричном

коде, регистра DI - число 10A5, смещение равно 1B57, сегментный

регистр данных DS содержит число 2100.

Тогда, если в качестве сегментного регистра применяется DS,


- 6 -

различные режимы адресации дают следующие эффективные и физичес-

кие адреса:

1) Прямой:

Эффективный адрес EA = 1B57,

Физический адрес = 1B57 + 21 = 22B57.

2) Регистровый косвенный (с частием регистра BX):

Эффективный адрес EA = 0158,

Физический адрес = 0158 + 21 = 21158.

3) Регистровый относительный (с частием регистра BX):

Эффективный адрес EA = 0158 + 1B57 = 1CAF,

Физический адрес = 01CAF + 21 = 22CAF.

4) Базовый индексный (с частием регистров BX и DI):

Эффективный адрес EA = 0158 + 10A5 = 11FD,

Физический адрес = 011FD + 21 = 221FD.

5) Относительный базовый индексный (с частиема регистрова BX

и DI):

Эффективный адрес EA = 0158 + 10A5 + 1B57 = 2D54,

Физический адрес = 02D54 + 21 = 23D54.

РЕЖИМЫ АДРЕСАЦИИ ПЕРЕХОДОВ

Различают следующие режимы адресации переходов:

1) Внутрисегментный прямой -а эффективный адрес перехода равен

сумме 8- или 16-битного смещения и текущего содержимого IP. Когда

смещение имеет длину 8 бит, этот режим называется коротким пере-

ходом. Этот режим допустим в словных и безусловных переходах, но

в командеа условного перехода смещение может иметь длину только

8 бит.

Операнд: IP IP

┌──────────┐ ┌──────────┐а EA ┌──────────┐

│ Смещение │ + │ │ ════> │ │

└──────────┘ └──────────┘ └──────────┘

2) Внутрисегментный косвенный - эффективный адрес перехода есть

содержимое регистр или ячейки памяти, которыеа указываются в

любом режиме (кроме непосредственного) адресации данных. Содержи-

мое IPа заменяется эффективныма адресом перехода. Данный режим

допустим только в командах безусловного перехода.

3) Межсегментный прямой - заменяет содержимое IP первым операн-

дом команды, содержимое CSа -а вторым операндом. Назначение

данного режима адресации - обеспечить переход из одного сегмента

кода в другой.

.

- 7 -

Операнд 1: IP Операнд 2: CS

┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐

│ Смещение ├───>│ │ │ Сегмента ├───>│ │

└──────────┘ └──────────┘ └──────────┘ └──────────┘

4) Межсегментный косвенный -а заменяет содержимое регистров IP

и CS содержимым двух смежных слов из памяти, которые определяются

в любом режиме адресации данных, кроме непосредственного и регис-

трового.

Межсегментный переход может быть только безусловным.

Допустим, что регистр BX содержита число 1256а ва 16-ричном

коде, регистра SI - число 528F, смещение равно 20A1.

Тогда при прямой адресации эффективный адрес перехода равен

20A1 + (DS)*0010.

При регистровой косвенной адресации (с частием регистра BX)

эффективный адрес перехода 1256 + 20A1 + (DS)*0010.

При базовой индексной адресации (с частием регистров BX и

SI) эффективный адрес перехода 1256 + 528F + (DS)*0010.

ФОРМАТЫ КОМАНД МИКРОПРОЦЕССОРА INTEL 8086

Рассмотрим типичные форматы команда микропроцессор 8086.

Длин команда варьируется ота 1а до 6а байт. Длина смещений и

непосредственных данных может быть 8 или 16 бит в зависимости от

кода команды.

Один или два байта в начале кода команды занимают код опера-

ции и казание режима адресации.

После них могут находиться:

- ни одного дополнительного байта;

- двухбайтный эффективный адрес EA (только для прямойа адреса-

ции);

- одно- или двухбайтное смещение;

- одно- или двухбайтный непосредственный операнд;

- одно- или двухбайтное смещение с последующим одно-а или двух-

байтным непосредственным операндом;

- двухбайтное смещение и двухбайтный сегментный адреса (только

для прямой межсегментной адресации).

Применение одной из перечисленных возможностейа определяется

кодом операцииа и режимом адресации. Еслиа длин смещения или

непосредственного операнда составляет 2 байта, первым всегда сле-

дует младший байт.

Обычно код операции занимаета первыйа байта команды, но в

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

в некоторых других командах три бита кода операции находятся во

втором байте.


- 8 -

Далее используются следующие словные обозначения:

REGа - регистр,

MODа - режим,

R/Mа - регистр или память,

DISP - смещение,

DATA - непосредственные данные,

LO - младший байт,

HI - старший байт.

Пример однобайтной команды с неявными операндами:

┌───────────┐

│ КОП │

└───────────┘

Пример однобайтной команды с регистровым режимом адресации:

┌─────────┬─────┐

КОП │ REG │

└─┴─┴─┴─┴─┴─┴─┴─┘

Операция регистр-регистр:

┌─────────┐┌───┬─────┬─────┐

│ КОП ││1 1│ REG │ R/M │

└─────────┘└─┴─┴─┴─┴─┴─┴─┴─┘

Операция регистр-память без смещения:

┌─────────┐┌───┬─────┬─────┐

КОП ││MOD│ REG │ R/M │

└─────────┘└─┴─┴─┴─┴─┴─┴─┴─┘

Операция регистр-память со смещением:

┌─────────┐┌───┬─────┬─────┐┌─────────┐┌─────────┐

КОП ││MOD│ REG │ R/M ││ DISP-LO ││ DISP-HI │

└─────────┘└─┴─┴─┴─┴─┴─┴─┴─┘└─────────┘└─────────┘

Непосредственный операнд в регистр:

┌─────────┐┌───┬─────┬─────┐┌─────────┐┌─────────┐

КОП ││MOD│ КОП │ R/M ││ DATA-LO ││ DATA-HI │

└─────────┘└─┴─┴─┴─┴─┴─┴─┴─┘└─────────┘└─────────┘

Непосредственный операнд в память с 16-битным смещением:

┌─────────┐┌───┬─────┬─────┐┌───────┐┌───────┐┌───────┐┌───────┐

КОП ││MOD│ КОП │ R/M ││DISP-LO││DISP-HI││DATA-LO││DATA-HI│

└─────────┘└─┴─┴─┴─┴─┴─┴─┴─┘└───────┘└───────┘└───────┘└───────┘

В большинстве кодов операций имеются следующиеа однобитные

индикаторы:

Бит W. Если команда может оперировать и байтом, и словом, то

в коде операции имеется бит W.

Бит D. Содержится в двухоперандных командах (за исключением

команд с непосредственным операндом и цепочечныха команд). Одним

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

командах бит D показывает, чем является регистр: операндом-источ-

ником (D=0) или операндом-получателем (D=1).

Бит S. 8-битное число в дополнительном коде можно расширить


- 9 -

до 16-битного в дополнительном коде, если сделать все биты стар-

шего байта равными старшему биту младшего байта. Такая операция

называется расширением знака. Бит S появляется вместе с битом W в

командах сложения, вычитания и сравнения с непосредственным опе-

рандом и расшифровывается следующим образом:

-а 8-битная операция - S=0 и W=0;

-а 16-битная операция ас 16-битным непосредственным операндом -

S=0, W=1;

-а 16-битная операция c 8-битныма непосредственным операндом,

который расширяется со знаком до 16 бит - S=1 и W=1.

При работе с небольшими числами последний вариант допускает

использование однобайтного непосредственного операнда.

Бит V. Применяется в командах сдвигов для определения числа

сдвигов.

Бит Z. Используется в команде REP.

Сегментный регистр определяется двумя битами, любой другой

регистр - тремя.

Таблица адресов регистров:

┌────────┬───────────┐ ┌────────┬────────────┐

│ Адреса │ Регистры │ │ Адреса │ Сегментный │

│регистра├─────┬─────┤ │регистра регистр │

│ │ W=1 │ W=0 │ ├────────┼────────────┤

├────────┼─────┼─────┤ а 00 │ ES а│

AX AL │ а 01 │ CS │

001а CX CL │ а 10 │ SS │

010а DX DL │ а 11 │ DS │

011а BX BL │ └────────┴────────────┘

100а SP AH │

101а BP CH │

110а SI DH │

DI BH │

└────────┴─────┴─────┘

Если на код операции и режим адресации отводится дв байта,

то второй байт имеет одну из следующих форм:

┌───┬─────┬─────┐ ┌───┬─────┬─────┐

│MOD│ КОП │ R/M │ или │MOD│ REG │ R/M │

└─┴─┴─┴─┴─┴─┴─┴─┘ └─┴─┴─┴─┴─┴─┴─┴─┘

Первая из них предназначена для однооперандныха команда или

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

Вторая форма характерна для двухоперандныха команд, причема поле

REG определяет регистр, который в зависимости от значения бита D

является операндом-источником или операндом-получателем.

.

- 10 -

Операнд, указываемый полями MOD и R/M, определяется в соот-

ветствии со следующей таблицей:

┌──────────────────┬────────────────────────────────────────────┐

│ │ MOD │

│ ├─────────┬────────────┬─────────────┬───────┤

│ R/M │ │ │ 11а │

│ │ 00 │ 01 │ 10 ├───┬───┤

│ │ │ │ │W=0│W=1│

├──────────────────┼─────────┼────────────┼─────────────┼───┼───┤

│ │ │ │ а │

│ │(BX)+(SI)│(BX)+(SI)+D8│(BX)+(SI)+D16│ AL│ AX│

│Сегментный регистр│ DS │ DS │ DS а │

│ │ │ │ а │

│ 001 │(BX)+(DI)│(BX)+(DI)+D8│(BX)+(DI)+D16│ CL│ CX│

│Сегментный регистр│ DS │ DS │ DS а │

│ │ │ │ а │

│ 010 │(BP)+(SI)│(BP)+(SI)+D8│(BP)+(SI)+D16│ DL│ DX│

│Сегментный регистр│ SS │ SS │ SS а │

│ │ │ │ а │

│ 011 │(BP)+(DI)│(BP)+(DI)+D8│(BP)+(DI)+D16│ BL│ BX│

│Сегментный регистр│ SS │ SS │ SS а │

│ │ │ а│ а │

│ 100 (SI)а (SI)+D8 (SI)+D16 │ AH│ SP│

│Сегментный регистр│ DS │ DS │ DS а │

│ │ │ │ а │

│ 101 (DI)а (DI)+D8 (DI)+D16 │ CH│ BP│

│Сегментный регистр│ DS │ DS │ DS а │

│ │ │ │ а │

│ 110 D16 (BP)+D8 (BP)+D16 │ DH│ SI│

│Сегментный регистр│ DS │ SS │ SS а │

│ │ │ │ а │

│ (BX)а (BX)+D8 (BX)+D16 │ BH│ DI│

│Сегментный регистр│ DS │ DS │ DS а │

└──────────────────┴─────────┴────────────┴─────────────┴───┴───┘

D8 - восьмибитное смещение, D16 - шестнадцатибитное смещение.

Если MOD не равно 11, эффективный адрес вычисляется согласно

таблице. Отметим, что MOD = 00 означает отсутствие смещения, за

исключением случая R/M = 110, которыйа обозначает прямую адреса-

цию. Комбинация MOD = 01 означает, что третий байт команды содер-

жит 8-битное смещение, которое до вычисления эффективного адреса

втоматически расширяется со знаком до 16 бит. Если MOD = 10, то

третий и четвертыйа байты команды содержат 16-битное смещение.

Наконец, ва случаеа MOD = 11а операндом является регистр, адрес

которого определяется полем R/M.

В таблице также показаны сегментные регистры, используемые в

каждой из комбинаций полей MOD и R/M. Эффективный адрес операнда

в памяти определяется полями MOD и R/M, но 20-битныйа физический


- 11 -

дрес равена сумме эффективного адреса и содержимого сегментного

регистра, множенного на 16. В режимах адресации са привлечением

регистра BP с эффективным адресом суммируется содержимое сегмент-

ного регистр SS, а в остальныха режимаха адресацииа участвует

регистр DS.

Чтобы изменить используемые в соответствии c таблицей сег-

ментные регистры, предусмотрена специальная однобайтная команда,

назывемая префиксом переопределения (замены) сегмента. Она имеет

следующий формат:

┌─────┬───┬─────┐

│0 0 1│REG│1 1 0│

└─┴─┴─┴─┴─┴─┴─┴─┘

Если команде предшествует префикс переопределения сегмента,

при обращении к данным в процессе ееа выполнения частвуета сег-

ментный регистр REG. Регистр DS можно заменить на CS, SS или ES,

регистр SS при частии регистра BP - на DS, CS или ES.

Замену нельзя производить в следующих специальных случаях:

- при вычислении адреса следующей выполняемой команды в качестве

сегментного регистра всегда применяется CS;

- при частии в адресации регистра SP сегментным регистром всег-

да служит SS;

- в цепочечных командах в качестве сегментного регистр операн-

да-получателя всегда используется ES.

ВРЕМЯ ВЫПОЛНЕНИЯ КОМАНД

Затраты времени н выполнениеа одной команды можно опреде-

лить, множая число тактов синхронизации, необходимых для выпол-

нения команды, на период синхронизации. Это время можно выразить

в виде суммы базового времени выполнения (которое зависит от

команды и режима адресации)а иа времени вычисления эффективного

дреса, если привлекается операнда иза памяти. Базовое время

выполнения предполагает, что выполняемая команда же выбрана и

находится в очереди команд. В противном случае требуется честь

дополнительные такты синхронизации, необходимые для выборки ко-

манды.

Базовое время выполнения некоторых типичных команд микропро-

цессора 8086/8088:

.

- 12 -

─────────────────────────────────┬────────────────┬─────────

КОМАНД │ ЧИСЛО ЧИСЛО

│ ТАКТОВ │ ПЕРЕДАЧ

─────────────────────────────────┼────────────────┼─────────

│ │

ADD или SUB │ │

(cложить или вычесть) │ │

регистр - регистр │ 3 │ 0

память - регистр │ 9 + EA │ 1

регистр - память │ 16 + EA │ 2

непосредственный - регистр │ 4 │ 0

непосредственный - память │ 17 + EA │ 2

│ │

MOV │ │

(передать) │ │

ккумулятор - память │ 10 │ 1

память - аккумулятор │ 10 │ 1

регистр - регистр │ 2 │ 0

память - регистр │ 8 + EA │ 1

регистр - память │ 9 + EA │ 1

непосредственный - регистр │ 4 │ 0

непосредственный - память │ 10 + EA │ 1

регистр - сегментный регистр │ 2 │ 0

память - сегментный регистр │ 8 + EA │ 1

сегментный регистр - регистр │ 2 │ 0

сегментный регистр - память │ 9 + EA │ 1

│ │

MUL │ │

(умножить без знака) │ │

множитель -а 8 бит, регистр │ 70 - 77 │ 0

множитель - 16 бит, регистр │ 118 - 133 │ 0

множитель -а 8 бит, память │ (76 - 83) + EA │ 1

множитель - 16 бит, память │(124 - 139) + EA│ 1

│ │

IMUL │ а│

(умножить со знаком) │ │

множитель -а 8 бит, регистр │ 80 - 98 │ 0

множитель - 16 бит, регистр │ 128 - 154 │ 0

множитель -а 8 бит, память │ (86 - 104) + EA│ 1

множитель - 16 бит, память │(134 - 160) + EA│ 1

│ │

DIV │ │

(разделить без знака) │ │

делитель -а 8 бит, регистр │ 80 - 90 │ 0

делитель - 16 бит, регистр │ 144 - 162 │ 0

делитель -а 8 бит, память │ (86 - 96) + EA │ 1

делитель - 16 бит, память │(150 - 168) + EA│ 1

│ │


- 13 -

IDIV │ │

(разделить со знаком) │ │

делитель -а 8 бит, регистр │ 101 - 112 │ 0

делитель - 16 бит, регистр │ 165 - 184 │ 0

делитель -а 8 бит, память │(107 - 118) + EA│ 1

делитель - 16 бит, память │(171 - 190) + EA│ 1

│ │

Команды сдвигов и │ │

циклических сдвигов │ │

регистр, на 1 бит │ 2 │ 0

регистр, на переменное число бит │ 2 + 4/бит │ 0

память, на 1 бит │ 15 + EA │ 2

память, на переменное число бита │ 20 + EA + 4/бит│ 2

│ │

JMP │ │

(безусловный переход) │ │

короткий │ 15 │ 0

внутрисегментный прямой │ 15 │ 0

межсегментный прямой │ 15 │ 0

внутрисегментный косвенный в ре- │ │

гистровом режиме │ 11 │ 0

внутрисегментный косвенный │ 18 + EA │ 1

межсегментный косвенный │ 24 + EA │ 2

│ │

Команды условного переход │ │

JCXZ │6 (нет перехода)│ 0

18 (переход)а │

Другие команды словного перехода│4 (нет перехода)│ 0

16 (переход)а │

─────────────────────────────────┴────────────────┴─────────

Третий столбец таблицы показывает число обращений к памяти,

необходимых для выполнения команд. Чтобы определить время выпол-

нения команды, в которой осуществляется обращение к полному слову

памяти, следует честь выравнивание операнда. Еслиа слово имеет

нечетный адрес, микропроцессора 8086а считывает его за два цикла

шины, длящихся по 4 такта синхронизации. В микропроцессоре 8088

на передачу акаждого слова необходимо прибавить 4 такта синхрони-

зации, так как в цикле шины он может передать только один байт

.

- 14 -

Время вычисления эффективного адреса зависит от режима адре-

сации:

──────────────────────────────────┬────────────

ЭФФЕКТИВНЫЙ АДРЕС │ЧИСЛО ТАКТОВ

──────────────────────────────────┼────────────

Прямой │ 6

Регистровый косвенныйа │ 5

Регистровый относительный │ 9

Базовый индексный │

(BP) + (DI) или (BX) + (SI) │ 7

(BP) + (SI) или (BX) + (DI) │ 8

Относительный базовый индексный │

(BP)+(DI)+DISP или (BX)+(SI)+DISP │ 11

(BP)+(SI)+DISP или (BX)+(DI)+DISP │ 12

──────────────────────────────────┴────────────

Отметим, что некоторые команды имеют несколько отличающихся

базовых времен выполнения ва зависимостиа ота режимова адресации.

Быстрее всего выполняются операции регистр-регистр. Операция па-

мять-регистр выполняется быстрее, чем операция регистр-память.

Базовое время выполнения команд множения, деления и сдвига

зависит также от данных.


ПЕРВЫЙ СЕМЕСТР

ЛЕКЦИЯ N 20-21

 ЯЗЫК АССЕМБЛЕРА МИКРОПРОЦЕССОРА 8086

════════════════════════════════════════

Язык ассемблер представляет собой машинный язык в символи-

ческой форме, которая более понятна и добна человеку.

Язык ассемблера микропроцессора Intel 8086 является довольно

сложным, что в первую очередь объясняется сегментной организацией

памяти и одновременнойа адресацией четырех сегментов. Ва языке

имеется более 100 базовых символических команд, в соответствии с

которыми ассемблер генерирует более 3800 машинныха команд. Кроме

того, ва распоряжении программист имеется более 20 директив,

предназначенных для распределения памяти, инициализации перемен-

ных, словного ассемблирования и т.д.

Исходная программа на языке ассемблер представляета собой

последовательность операторов. Операторы обычно занимаюта одну

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

т.е. элементама операторова не назначены фиксированные столбцы и

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

мо.

Операторы в исходной программе классифицируются кака команд-

ные операторы, операторы распределения данных и директивы ассемб-

лера.

Командные операторы определяют генерируемые ассемблером ма-

шинные команды; они содержат мнемонику и, при необходимости, один

или два операнда. Каждый командный оператор порождает одну машин-

ную команду, формат которой зависит от способа задания операндов.

Операторы распределения данных резервируют ячейки памяти для

данных программы.

Директивы ассемблер содержат специальные казания для

ссемблирующейа программы и самиа по себе не порождают никаких

машинных кодов.

Формат командных операторов

Командные операторы записываются в следующем формате:

{Метка:} {Префикс} Мнемоника {Операнд1}{,Операнд2} {;Комментарий}

где фигурные скобки обозначают необязательные поля.

Рассмотрим назначение отдельных полей данного формата:

1) Метка представляета собой определяемоеа пользователема имя,

заканчивающееся двоеточием. Значениема меткиа является текущее

значение счетчика ячеек (адресов) в текущем сегменте кода, т.е.

дрес отмеченной команды. Метки как операнды используются только

в командаха передачи правления, иа при этом двоеточие в конце

ссылки на метку не ставится.


- 2 -

2) Префикс заставляет ассемблер сформировать один из префиксных

байт - блокировки LOCK или повторения REP, который непосредствен-

но предшествует команде.

3) Мнемоник код операции представляет собой заранее опреде-

ленное и неизменяемое имя, которое идентифицирует тип генерируе-

мой машинной команды.

4) Операнды задают адреса данных или сами данные, необходимые в

данной команде.

5) Комментарий предназначен только для документирования прог-

раммы. Он всегда начинается с точки с запятой.

Формат директив ассемблера

и операторов распределения данных

Директивы ассемблера и операторы распределения данныха имеют

несколько иной формат:

{Имя} Директива {Операнды} {;Комментарий}

Рассмотрим назначение отдельных полей данного формата:

1) Имя директивы, в отличие от метки, никогда не заканчивается

двоеточием. Некоторыеа директивы требуюта обязательного наличия

метки.

2) Директив является однима иза ключевыха неизменяемыха слов

ссемблера иа определяет его действия в процессе ассемблирования.

Директивы используются программистома для распределения памяти,

обеспечения связи между программными модулями и работы с символи-

ческими именами.

3) Операнды конкретизируюта действия, выполняемые по данной

директиве.

4) Поле комментария аналогично такому же полю в командных опе-

раторах.

 ЭЛЕМЕНТЫ ОПЕРАТОРОВ

Дадим определения основных терминов, которые будут использо-

ваны в дальнейшем.

Ключевые (зарезервированные) слова представляют собой имена,

имеющие для ассемблер строго определенныйа смысл. Иха нельзя

использовать в качестве идентификаторов.

Идентификатор как общий термин для меток и имен переменных -

это определяемая программистом последовательность символов. Пер-

вым символом в последовательности должна быть букв илиа один из

символов @, подчеркивание или знак вопроса. В качестве последую-

щих символова можно также использовать цифры. Максимальная длина

идентификатора 31 символ.

Ассемблер процессор 8086а является жестко типизированным

языком. Это означает, что операнды команд (регистры, переменные,


- 3 -

метки, константы) имеют связанный с ними атрибута типа, который

сообщает ассемблеру некоторую информациюа оба операнде. Атрибут

типа обычно подразумевается по молчанию, но при необходимости

может быть задан явно.

Регистры

8-разрядным регистрама AL, AH, BL, BH, CL, CH, DL, DH при-

писан тип BYTE, а 16-разрядным регистрам AX, BX, CX, DX, BP, SP,

SI, DI и сегментным регистрам CS, DS, SS, ES приписан тип WORD.

Разряды регистр флажкова представляют собой однобитные ре-

гисты, для становкиа и сброса каждого из которых используются

отдельные машинные команды.

Переменные

При программировании можета возникнуть необходимость много-

кратного обращения к данным. Вместо того, чтобы оперировать

громоздкими численными значениями адресов, добно определять и

применять символические имена, соответствующие адресам казанных

элементов.

Переменная - это единица программных данных, имеющая симво-

лическое имя.

Большинство ассемблерных программ начинается са определения

данных, которыми они будут оперировать. Распределение ячеек памя-

ти и присвоениеа има идентификаторов осуществляется са помощью

директив DBа (Defineа Byte - определить байт), DW (Define Word -

определить слово), DD (Define Doublewordа -а определить двойное

слово), DQа (Define Quadword - определить 4 слова) или DT (Define

Tenbyte - определить 10 байтов).

Операторы распределения данных имеют следующий формат:

Имя DB нач.значение, {нач.значение},...

Имя DW нач.значение, {нач.значение},...

Имя DD нач.значение, {нач.значение},...

Имя DQ нач.значение, {нач.значение},...

Имя DT нач.значение, {нач.значение},...

Таким образом, каждая директива может инициировать одну или

несколько переменных соответствующего типа.

Для задания начальных значений могут использоваться числовые

константы и символьные цепочки. Если не нужно задавать начальное

значение переменной, то вместо константы ставится вопросительный

знак.

Например, оператор

alpha DWа 0Ah

резервирует слово памяти, присваивает ему идентификатор alphaа и

заносит в него код A;

stringа DB 'Привет'

резервирует 6а байта памяти иа заносита ва них строку символов и


- 4 -

присваивает этой строке идентификатор string.

Чтобы точно определить тип переменной, на которую произво-

дится ссылка, ассемблер использует операторы BYTE PTR, WORD PTR и

DWORD PTR (указатель на байт, слово и двойное слово соответствен-

но).

Для инициализацииа массивова применяется конструкция DUP,

которая в общем случае имеет вид:

nа DUP (нач. значение, {нач. значение},...)

где параметра nа задает число повторений элементов, находящихся в

круглых скобках.

Например, оператор

Addr DDа 20 DUP (?)

резервирует место для 20а полныха адресова и присваиваета этому

массиву идентификатор Addr.

Метки

Метка представляет собой символическое имя для адреса ячейки

памяти и предназначена для использования ва качествеа операнд в

командах правления.

Числовые константы

Константа -а это численное значение, вычисляемое во время

ссемблирования по заданному выражению.

Численные константы допускается представлять ва системах

счисления с основаниями 2, 8, 10 и 16. За младшей цифрой должен

находиться однобуквенный дескриптор системы счисления: B - двоич-

ная, O или Q -а восьмеричная, Dа (необязательно)а -а десятичная,

H-шестнадцатиричная. Шестнадцатиричная константа должна быть до-

полнена слева незначащим нулем.

Символьные константы

Символьная констант -а это любой символа ва коде ASCII.

Символьная строк можета содержать до 255 символов и должна быть

заключена в одиночные кавычки.

 СЕГМЕНТЫ И ПРОЦЕДУРЫ

Программы, написанные н языке ассемблера процессора 8086,

могута быть разделены н один или несколько сегментов. Каждый

логический сегмент имеет никальное имя и однозначно отображается

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

определения начальнойа и конечной ячеека логического сегмента в

макроссемблере предусмотрены директивы SEGMENT (начало сегмента)

и ENDS (конец сегмента).

Обычно часть программы, содержащая коды машинныха команд,


- 5 -

объединяется в кодовый сегмент. Переменные, константы, таблицы и

другие данные объединяются в сегмент данных. Для хранения проме-

жуточных данныха и при вызовеа подпрограмм используется сегмент

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

дополнительный сегмент.

Директива ASSUME казывает ассемблеру, к какому сегментному

регистру относится тота или инойа логический сегмент. Если вся

программа размещается в одном сегменте памяти, то эт директива

указывает, что все сегментные регистры адресуют один и тот же

сегмент.

В зависимости ота используемой моделиа памяти ва программе

могут использоваться один или несколько сегментов кода и один или

несколько сегментов данных. Стековый сегмент как правило один.

 СТЕМА КОМАНД МИКРОПРОЦЕССОРА 8086

═════════════════════════════════════

Систему команд процессора 8086 образуют 113 базовыха команд,

многие иза которыха допускают использование разнообразных режимов

дресации.

По функциональному назначению выделяют спедующие группы ко-

манд:

- команды передачи данных;

- команды арифметических операций;

- команды логических операций и сдвигов;

- команды передачи правления;

- цепочечные команды;

- команды управления микропроцессором.

 _ КОМАНДЫ ПЕРЕДАЧИ ДАННЫХ

Команды передачи данных разделяют на 4 подгруппы:

- общие команды передачи данных;

- стековые команды;

- команды ввода-вывода;

- команды передачи цепочек байт или слов.

Команды передачи данныха не модифицируют состояния флажков.

Исключение составляют команды POPF и SAHF, прямо воздействующие

на регистр флажков.

Далее будут использоваться следующие обозначения:

dstа - получатель,

srcа - источник,

memа - адрес памяти (смещение), заданный любым методом адресации,

regа - регистр общего назначения,

sreg - сегментный регистр,

aс - регистр-аккумулятор (AL или AX),

data - непосредственные данные.


- 6 -

 ОБЩИЕ КОМАНДЫ ПЕРЕДАЧИ ДАННЫХ

Ва этуа подгруппу входята команды, осуществляющие передачу

регистр-регистр, регистр-память и память-регистр. Наиболее мощной

среди них является команда MOV.

Команда MOV

Эта команда имеет следующее обобщенное представление:

MOV dst, src

т.е. первым казывается операнд-получатель, вторым - операнд-

источник. Одним из операндов обязательно должен быть регистр.

Команд осуществляет передачу:

регистр - регистр,

регистр - память,

память - регистр,

непосредственные данные - регистр,

непосредственные данные - память,

регистр - сегментный регистр,

память - сегментный регистр,

сегментный регистр - регистр,

сегментный регистр - память.

Допустимые форматы команды:

MOV mem/reg1, mem/reg2

MOV mem/reg, data

MOV sreg, mem/reg

MOV mem/reg, sreg

Команда обмена XCHG

Команда обмена XCHG позволяет обменивать содержимое любого

общего регистра и ячейки памяти, также любой пары общих регист-

ров.

Формат команды:

XCHG reg, mem/reg

Команда XLAT

Команда преобразования XLAT применяется для быстрого преоб-

разования символов из одного кода в другой. Она заменяет содержи-

мое аккумулятора AL на байт иза 256-байтовойа таблицы, начальный

дрес которой находится в регистре BX, восьмибитовое смещение -

в регистре AL. В качестве сегментного используется регистр DS.

Формат команды:

XLAT


- 7 -

Команды LEA, LDS и LES

Команды LEA, LDS и LES предназначены для загрузки эффектив-

ного адреса.

Команда LEA извлекает из памяти 16-битовый адрес иа помещает

его в один из общих регистров. Практически эта команда дублирует

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

Команда LDS извлекает из памяти 32-битовый адрес иа помещает

первое считанное из памяти слово в заданный общий регистр, вто-

рое - в сегментный регистр DS.

Команда LES извлекает из памяти 32-битовый адрес иа помещает

первое считанное из памяти слово в заданный общий регистр, вто-

рое - в сегментный регистр ES.

Обычно в команде LDS казывается регистр SI, в команде LES

регистр DI.

Формат команд:

LEA reg, mem

LDS reg, mem

LES reg, mem

Команды LAHF и SAHF

Команд LAHFа передаета младший байта регистр флажкова в

регистр AH, команда SAHF реализует обратную передачу - содержи-

мое регистра AH передается в младший байт регистра флажков (стар-

ший байт не изменяется).

Формат команд:

LAHF

SAHF

 СТЕКОВЫЕ КОМАНДЫ

Каждая команда занесения данныха ва стека PUSHа имеета соот-

ветствующую ей команду извлечения иза стек POP. Для адресации

вершины стек используется стековый казатель SP. Все стековые

команды манипулируют только словами и сопровождаются автоматичес-

кой модификацией казателя стека:а приа включении в стек произво-

дится декремент, при извлечении из стека - инкремент SP.

До выполнения стековыха команд регистры SP и SS должны быть

инициализированы.

Команда PUSH включает в стек содержимое адресуемого регистра

или ячейки памяти, а команда POPа извлекаета содержимоеа вершины

стека и передает его в регистр или ячейку памяти.

Команды POSHF и POPF предназначены для временного запомина-

ния ва стеке иа последующего восстановления из стека содержимого

регистра флагов. Са иха помощью можно изменять состояние флага

трассировки TF, така как команд прямого воздействия на этот флаг

нет.


- 8 -

Формат команд:

PUSH mem/reg POP mem/reg

PUSH sreg POP sreg

PUSHF POPF

 КОМАНДЫ ВВОДА-ВЫВОДА

Команда ввода IN и команда вывода OUT допускают работу как с

байтами, так и со словами. Команда IN загружает данные из задан-

ного порта в аккумулятор, команд OUTа выполняет передачу из

ккумулятора ва порт. Для портов ввода-вывода в диапазоне 00-FF

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

порты в диапазоне 100- можно адресовать только косвенно через

регистр DX.

Формат команд:

IN ac,port OUT port,ac (прямая короченная адресация)

IN ac,DX OUT DX,ac (косвенная адресация)

 _ КОМАНДЫ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ

Процессора 8086а имеета широкий набора команд, реализующих

рифметические операции, что позволяет применять его ва сложных

системах обработки данных.

Арифметические операции выполняются над целыми числами четы-

рех типов: беззнаковыми двоичными, знаковыми двоичными, упакован-

ными десятичными и неупакованными десятичными. Длина чисел может

быть 8 или 16 бит.

Диапазоны чисел:

беззнаковое 8-битное: 0 - 255,

беззнаковое 16-битное: 0 - 65535,

знаковое 8-битное: -128 - +127,

знаковое 16-битное: -32768 - +32767.

Команды арифметическиха операций влияют на состояние флажков

OF, SF, ZF, AF, PF и CF.

Одни и те же команды сложения иа вычитания могут использо-

ваться для операций как над беззнаковыми, так и знаковыми числа-

ми. Контроль над типами чисел должен выполнять сам программист.

 КОМАНДЫ СЛОЖЕНИЯ

Команда ADD

Команда ADD позволяет производить сложение 8- или 16-битовых

двоичных чисел в режиме регистр-регистр, регистр-память и память-

регистр, причем адресация памяти осуществляется в любома допусти-

мом режиме. Общее представление команды имеет вид

ADD dst, src


- 9 -

т.е. первыйа операнда складывается со вторым и результат операции

замещает первый операнд.

Формат команды:

ADD mem/reg1,mem/reg2

ADD mem/reg,data

Команда ADC

Команд ADCа выполняета сложение с переносом:а в отличие от

команды ADDа ва операции сложения частвует флажок CF, значение

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

дов.

Формат команды:

ADC mem/reg1,mem/reg2

ADC mem/reg,data

Команда INC

Команда INC позволяет величить на 1 содержимое любого обще-

го регистра или ячейки памяти.

Формат команды:

INC mem/reg

КОМАНДЫ ВЫЧИТАНИЯ

Команда SUB позволяет производить вычитание 8- или 16-битных

двоичных чисел. Общее представление команды имеет вид

SUB dst, src

т.е. второй операнд вычитается из первого иа результата операции

замещает первый операнд.

Формат команды:

SUB mem/reg1,mem/reg2

SUB mem/reg,data

Команда SBB

Команд SBBа выполняет вычитание с переносом:а в отличие от

команды SUBа в операции вычитания частвует флажок CF, значение

которого вычитается из младшего бита результата вычитания операн-

дов.

Формат команды:

SBB mem/reg1,mem/reg2

SBB mem/reg,data

Команда DEC

Команда DEC позволяет меньшить на 1 содержимое любого обще-

го регистра или ячейки памяти.


- 10 -

Формат команды:

DEC mem/reg

Команда NEG

Команда NEG изменяет знак числа, находящегося в регистре или

ячейке памяти, на противоположный.

Формат команды:

NEG mem/reg

 КОМАНДА СРАВНЕНИЯ

Команда сравнения CMPа выполняет вычитание второго операнда

из первого, но нигде не запоминает результат операцииа и влияет

только на состояние флажков.

Формат команды:

CMP mem/reg1,mem/reg2

CMP mem/reg,data

 КОМАНДЫ МНОЖЕНИЯ

Микропроцессор 8086 имеет две команды множения: для беззна-

ковых и для знаковых двоичных чисел. множение десятичныха чисел

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

рассматриваться позднее.

Команда MUL

Команд множения беззнаковыха целых чисела MULа выполняет

умножение адресуемого операнда на содержимое аккумулятора. Общее

представление команды имеет вид

MUL src

При операцииа нада байтами функцииа аккумулятора выполняет

регистр AL, 16-битный результат операции помещается в регистр

AX. При операцииа нада словами функцииа аккумулятора выполняет

регистр AX, произведение длиной 32 бита формируется в регистрах

DX (старшее слово) и AX (младшее слово).

Формат команды:

MUL reg

MUL mem

Команда IMUL

Команда IMUL аналогична команде MUL, но сомножители и произ-

ведение интерпретируются как знаковые двоичные числ ва дополни-

тельном коде.

Формат команды:

IMUL reg


- 11 -

IMUL mem

 КОМАНДЫ ДЕЛЕНИЯ

Микропроцессор 8086 имеет две команды деления: для беззнако-

вых и для знаковых двоичных чисел. Деление десятичных чисел также

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

Команда DIV

Команд деления беззнаковых чисела DIVа производит деление

содержимого аккумулятор и его расширения на содержимое адресуе-

мого операнда.

При делении 16-битного делимого на 8-битный делитель делимое

помещают в регистр AX. В результате выполнения операцииа частное

формируется в регистре AL, остаток - в AH.

При делении 32-битного делимого на 16-битный делитель стар-

шая часть делимого помещается в регистр DX, а младшая - в AX.

В результате выполнения операции частное формируется ва регистре

AX, остаток - в DX.

При делении на 0 автоматически происходит прерывание и пере-

ход к специальной программе обработки.

Формат команды:

DIV reg

DIV mem

Команда IDIV

Команда IDIV аналогична команде DIV, но делимое, делитель и

частное интерпретируются как знаковые двоичные числ ва дополни-

тельном коде.

Формат команды:

IDIV reg

IDIV mem

Команды преобразования

Команда преобразования байт ва слово CBWа расширяет знак

содержимого регистра AL в регистр AH. Команда преобразования сло-

ва ва двойное слово CWD передает знак содержимого регистра AX во

все биты регистра DX.

Команды преобразования не влияют на состояния флагов.

Форматы команд:

CBW

CWD

 КОМАНДЫ ДЕСЯТИЧНОЙ АРИФМЕТИКИ


- 12 -

Микропроцессор 8086 допускает дв представления десятичных

чисел: пакованный формат (BCD-формат)а иа неупакованный (ASCII-

формат). Ва форматеа BCDа байта содержита две десятичные цифры

(по одной в каждой тетраде). В ASCII-формате байт содержит одну

десятичную цифру в коде ASCII. В обоиха форматаха многоразрядные

десятичные числа представляются последовательностями байт.

Команды десятичной арифметики оперируюта только c байтами,

причем основныма рабочима регистрома во всех десятичных операциях

является регистр AL.

Операции с числами в форматах BCD и ASCIIа выполняются в два

этапа:а сначала над 8-битными операндамиа выполняются обычные

операции двоичнойа арифметики, затем осуществляется коррекция

результата. Команды коррекции являются безадресными, так как

работают с содержимым аккумулятора AL.

Команды для формата BCD

Команда десятичной коррекции для сложения DAA выполняет кор-

рекцию суммы, полученной в результате выполнения команд ADD и ADC

и должна следовать непосредственно за ними.

Команда десятичной коррекции для вычитания DAS выполняет

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

и SBB и должна следовать непосредственно за ними.

Форматы команд:

DAA

DAS

Команды для формата ASCII

Команда десятичной коррекции для сложения выполняет кор-

рекцию суммы, полученной в результате выполнения команд ADD и ADC

и должна следовать непосредственно за ними.

Команда десятичной коррекции для вычитания AAS выполняет

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

и SBB и должна следовать непосредственно за ними.

Команда десятичной коррекции для множения AAM выполняет кор-

рекцию произведения, полученного в результате выполнения команды

MULа и должн следовать непосредственно за ней. Старший разряд

результата помещается в регистр AH, младший - в AL.

Команда десятичной коррекции для деления AAD отличается тем,

что должна выполняться перед командой деления DIV.

Форматы команд:


AAS

AAM

AAD


- 13 -

 _ КОМАНДЫ ЛОГИЧЕСКИХ ОПЕРАЦИЙ И КОМАНДЫ СДВИГОВ

 КОМАНДЫ ЛОГИЧЕСКИХ ОПЕРАЦИЙ

Логические операции представлены командами NOT (инверсия),

AND (конъюнкция), OR (дизъюнкция), XOR (исключающее ИЛИ) и коман-

дой TEST, которая выполняет конъюнкцию операндов, но не изменяет

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

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

Бинарные команды AND, OR, XOR и TEST воздействуют на флажки

OF, SF, ZF, PF и CF. нарная операция NOT не влияет на состояние

флажков.

Форматы команд:

AND mem/reg1,mem/reg2

AND mem/reg,data

OR mem/reg1,mem/reg2

OR mem/reg,data

XOR mem/reg1,mem/reg2

XOR mem/reg,data

TEST mem/reg1,mem/reg2

TEST mem/reg,data

NOT mem/reg

 КОМАНДЫ СДВИГОВ

Команды сдвигов подразделяются на команды простых сдвигова и

команды циклических сдвигов. Циклические сдвиги влияют только на

флаги OF и CF, обычные изменяют пять флажков:а OF, SF, ZF, PF и

CF. Команды сдвигов могут работать как с байтами, так и со слова-

ми.

Команды ROLа и ROR реализуют простой циклический сдвиг влево

и вправо соответственно, помещая значение из выдвигаемого бита в

освобождающийся бит.

Команды RCL и RCR называются командамиа циклического сдвига

влево и вправо через перенос, так как флажок CF расширяет сдвига-

емый операнд на один бит. Таким образом, значение из CF загружа-

ется в освобождающийся бит, выдвигаемый бит помещается в CF.

Команды SHL и SHR реализуют логический сдвиг влево иа вправо

соответственно. Для логического сдвига характерно, что в освобож-

дающийся бит загружается нуль, выдвигаемый бит теряется.

Команды SAL и SAR предназначены для арифметического сдвига

влево иа вправо. Арифметический сдвиг вправо отличается от логи-

ческого сдвига тем, что знаковый бит не сдвигается, дублируется

в соседнем правом бите, сохраняя тем самым знак числа. Арифмети-

ческий сдвиг влево эквивалентена логическому, поэтому мнемоники

SALа и SHLа обозначаюта одну и ту же машинную команду. Команды

рифметического сдвига по существу реализуют множение и деление

чисел без знака на степень числа 2.


- 14 -

Поле операнда команд сдвига имеет вид mem/reg,count. Опреанд

count определяет число сдвигова иа может быть казан как констан-

та 1 или как регистр CL. Ва первома случаеа выполняется сдвиг на

одина бит, во второма число сдвигов определяется содержимым

регистра CL, которое воспринимается как беззнаковое число.

Формат команды:

ROL mem/reg,1 ROL mem/reg,CL

ROR mem/reg,1 ROR mem/reg,CL

RCL mem/reg,1 RCL mem/reg,CL

RCR mem/reg,1 RCR mem/reg,CL

SHL mem/reg,1 SHL mem/reg,CL

SHR mem/reg,1 SHR mem/reg,CL

SAL mem/reg,1 SAL mem/reg,CL

SAR mem/reg,1 SAR mem/reg,CL

 _ КОМАНДЫ ПЕРЕДАЧИ ПРАВЛЕНИЯ

Сегментная организация программной памятиа определяета две

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

управления в пределаха текущего сегмента кода называется внутри-

сегментной -а при этом модифицируется только регистр IP и адрес

перехода может быть представлена однима словом. Такая передача

управления называется ближней (тип NEAR), ее вариант с сокра-

щеым диапазоном адресов переходов - короткой. Передача прав-

ления за пределы текущего сегмента кода называется межсегментной

или дальней (тип FAR) - при этом необходимо модифицировать содер-

жимое регистров IP и CS иа адреса переход представляется двумя

словами (сегмент:смещение).

Команды передачи правления процессор 8086а подразделяются

на команды безусловных переходов, словных переходов, вызовов,

возвратов, правления циклами и команды прерываний.

Команды передачи правления не изменяет состояние регистра

флагов (за исключением команды IRET).

 КОМАНДЫ БЕЗУСЛОВНЫХ ПЕРЕХОДОВ

Команды безусловного переход имеюта общуюа мнемонику JMP.

Команда короткого безусловного перехода содержит во втором байте

смещение, которое интерпретируется как знаковое целое. Диапазон

значений байта смещения составляета -128 - +127. Еслиа смещение

положительное, осуществляется переход вперед, если отрицатель-

ное - переход назад.

Команда ближнего безусловного переход может либо непосред-

ственно содержать 16-битное смещение, либо косвенный адрес

16-битного смещения. Диапазон смещения составляет -32768 - +32767

байт относительно адреса команды, находящейся после команды JMP.

Команда дальнего безусловного переход реализуета прямой и


- 15 -

косвенный межсегментнные переходы.

Форматы команд:

JMP dispL - короткий переход

JMP disp - ближний прямой переход

JMP mem/regа - ближний косвенный переход

JMP addr - дальний прямой переход

JMP mem - дальний косвенный переход

 КОМАНДЫ СЛОВНЫХ ПЕРЕХОДОВ

В системе команда процессор 8086а имеется 19а двухбайтных

команд словных переходов. При выполнении этих команд анализиру-

ется некоторое словие, закодированное текущими состояниями фла-

гов, и если оно выполняется, то осуществляется переход, аесли

нет, то выполняется следующая по побядку команда.

Все словные переходы являются короткими. Некоторые команды

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

мнемонических обозначения.

Мнемонические обозначения команд:

1) Команды для работы с беззнаковыми числами:

JA/JNBE -а переход, если больше;

JAE/JNB/JNC -а переход, если больше или равно;

JB/JNAE/JCа -а переход, если меньше;

JBE/JNA -а переход, если меньше или равно.

2) Команды для работы со знаковыми числами:

JG/JNLEа -а переход, если больше;

JGE/JNLа -а переход, если больше или равно;

JL/JNGEа -а переход, если меньше;

JLE/JNGа -а переход, если меньше или равно;

JNS -а переход, если больше нуля;

JS -а переход, если меньше нуля.

3) Команды, общие для знаковых и беззнаковых чисел:

JE/JZ -а переход, если равно / переход, если ноль;

JNE/JNZа -а переход, если не равно / переход, если не ноль;

JNO -а переход, если нет переполнения;

JO -а переход, по переполнению.

4) Прочие команды:

JCXZ -а переход, если содержимое регистра CX равно нулю;

JNP/JPOа -а переход при отсутствии четности;

JP/JPE -а переход по четности.

Форматы команд такие же, как у короткого безусловного пере-

хода.

 КОМАНДЫ ВЫЗОВОВА ПОДПРОГРАММ

Команда вызова подпрограммы CALL передает правление с авто-

матическим сохранениема адреса возврата в стеке. В поле операнда

этой команды находится метка первой команды вызываемойа подпрог-


- 16 -

раммы.

При переходе к подпрограмме необходимо временно запомнить

дрес команды, находящейся после команды CALL. Этот адрес называ-

ется адресом возврата. После того, как подпрограмма закончит свои

действия, завершающая ее команда возврата RET передает управление

по запомненному адресу возврата. Адрес возврат запоминается в

стеке.

Вызовы могут быть внутрисегментными (тип NEAR)а или межсег-

ментными (тип FAR). Ва первома случае вызываемая подпрограмма

находится в текущем сегменте кода, во втором - в произвольном.

Команды внутрисегментного перехода производята декремента SP

на 2, включают в стек содержимое IP, затема прибавляюта к IP

16-битное смещение, которое интерпретируется как знаковое целое.

Команды межсегментного переход производята декремента SP

на 2, включают в стек содержимое CS, снов производят декремент

SP на 2, включают в стек содержимое IP, затем в IPа загружается

значение смещения, в CS - сегментный адрес.

Формат команды:

CALL disp - непосредственный ближний вызов;

CALL mem/reg - косвенный ближний вызов;

CALL addr - непосредственный дальний вызов;

CALL mem - косвенный дальний вызов.

 КОМАНДЫ ВОЗВРАТА ИЗ ПОДПРОГРАММ

Каждая подпрограмма должна содержать минимума одну команду

возврата RET, которая возвращает правление вызывающей программе.

Такая передач управления осуществляется путема извлечения из

стека адреса возврата, включенного ва него командой вызова под-

программы.

Команды внутрисегментного и межсегментного возврата имеют

одну и ту же мнемонику RET. Типа команды, соответствующей этой

мнемонике, определяется ассемблером автоматически.

Формат команды:

RET - однобайтный вариант,

RET data - трехбайтный вариант.

Однобайтная команд RET с кодом операции C3 реализует внут-

рисегментный возврат. Она передает слово из вершины стека в IP и

увеличивает SP на 2.

Однобайтная команд RETа с кодом операции CBа осуществляет

межсегментный возврат. Она передает слово из вершины стека в IP,

увеличивает SP на 2. передает слово из вершины стека в CS и снова

увеличивает SP на 2.

Трехбайтные варианты команда возврат осуществляюта те же

действия, что и однобайтные, затем прибавляют содержащиеся в

них данные к казателю стека. Эти команды предназначены для про-

щения возврата из тех подпрограмм, параметры которых передаются в

стеке. Прибавление к SP данных из RET эквивалентно удалению пара-


- 17 -

метров из стека.

 КОМАНДЫ ПРАВЛЕНИЯ ЦИКЛАМИ

Три команды правления циклами применяются для организации

программных циклов. В них предусматривается использование регист-

ра CXа в качестве счетчика цикла.

В поле операнда команд правления циклами находится метка

первой команды цикл (8-битовоеа смещение). Диапазон переходов

этих команд составляет -128 - +127 байт от следующей команды.

Команда LOOP производит декремент регистра CX и, если содер-

жимое CXа неа равно нулю, происходит перехода к началу цикла.

В противном случае выполняется следующая по порядку команда.

Мнемоники LOOPE/LOOPZа определяюта одну иа ту же машинную

команду, которая производит декремент регистра CX, затем пере-

дает правление в начало цикла, если содержимое CX не равно нулю

и ZF=1. В противнома случаеа выполняется следующая по порядку

команда.

Мнемоники LOOPNE/LOOPNZ также определяют одну и ту же машин-

ную команду, которая производит декремент регистр CX, затем

передает правление в начало цикла, еслиа содержимое CX не равно

нулю и ZF=0. В противном случае выполняется следующая по порядку

команда.

 КОМАНДЫ ПРЕРЫВАНИЙ

В процессоре 8086 имеются 3 команды, относящиеся к прерыва-

ниям.

Команда программного прерывания INT вызывает программу обра-

ботки, определяемую типом прерывания.

Формат команды:

INT type - вызов прерывания с номером type (от 0 до 255),

INT - вызов прерывания контрольного останова (номер 3).

Команда INT выполняется следующим образом:

1) декремент указателя стека на 2;

2) включение в стек содержимого регистра флажков;

3) сброс флажков IF и TF;

4) декремент указателя стека на 2;

5) включение в стек содержимого регистра CS;

6) определение адреса вектора прерывания ADDRESS путема умноже-

ния кода типа прерывания на 4;

7) загрузка в регистр CS слова памяти, расположенного по адресу

ADDRESS+2;

8) декремент указателя стека на 2;

9) включение в стек содержимого IP;

10) загрузка в регистр IP слова памяти, расположенного по адресу

ADDRESS.

В результате этих действий осуществляется межсегментный кос-


- 18 -

венный вызов подпрограммы обработки прерывания.

Команда прерывания при переполнении INTOа генерируета прог-

раммное прерывание только ва тома случае, если становлен флаг

переполнения. Она вызывает прерывание с номером 4.

Формат команды:

INTO

Команда возврата из прерывания IRET предназначена для выхода

из подпрограммы обработкиа прерываний, инициированной аппаратно

или программно.

Команда IRET выполняется следующим образом:

1) слово из вершины стека передается в IP;

2) производится инкремент SP на 2;

3) слово из вершины стека передается в CS;

4) производится инкремент SP на 2;

5) слово из вершины стека передается в регистр флагов;

6) производится инкремент SP на 2.

Формат команды:

IRET

 _ ЦЕПОЧЕЧНЫЕ КОМАНДЫ

Под цепочкой понимается последовательность любыха контекстно

связанных байт или слов, находящихся в смежных ячейках памяти.

В системе команд процессора 8086 имеется 5 команд, предназ-

наченныха для обработкиа одного элемент цепочки. Цепочечной

команде можета предшествовать специальныйа однобайтный префикс

повторения REP, который вызывает повторение действия команды над

следующими элементами цепочки. Повторение расчитано на максималь-

ную длину цепочека 64 Кбайта и выполняется значительно быстрее

цикла LOOP.

Цепочечные команды могут иметь операнд-источник, операнд-

получатель или и то и другое одновременно. Подразумевается, что

цепочка-источник по умолчанию находится в текущем сегменте дан-

ных, но допускается префикс замены сегмента. Цепочка-получатель

может находиться только в текущем дополнительном сегменте. При

этом содержимое регистр SIа всегда считается смещением текущего

элемента цепочки-источника, содержимое регистра DI - смещением

текущего элемента цепочки-получателя.

Необходимые в команде индексные и сегментные регистры должны

быть инициализированы до ее выполнения.

При выполнении цепочечной команды содержимое регистров SI и

DI автоматически изменяется, чтобы адресовать следующие элементы

цепочек. Флаг направления DF определяет автоинкремент (DF=0) или

втодекремент индексных регистров.

Если командеа предшествуета префикса повторения, то после

каждого ее выполнения производится декремента регистра-счетчика

CX, поэтомуа его необходимо предварительно инициализировать на


- 19 -

требуемое число повторений. Когда содержимое CX достигаета нуля,

управление передается следующей команде.

Префикс повторения

Префикс повторения имеета 5 мнемокодов:а REP, REPE, REPZ,

REPNE, REPNZ.

Префикс REP используется с командами MOVS и STOSа и вызывает

повторение операции до тех пор, пока содержимое CX не равно 0.

Префиксы REPE и REPZ соответствуют тому же коду команды, что

и мнемоника REP, но используются совместно c командами CMPSа и

SCAS. Ониа вызываюта повторение операции до тех пор, пока ZF=1 и

содержимое CX не равно 0.

Префиксы REPNEа иа REPNZа соответствуют одному коду команды,

и используются совместно с командами CMPS и SCAS. Они вызывают

повторение операции до тех пор, пока ZF=0 и содержимое CX не рав-

но 0.

Команда MOVS

Команда MOVS передает байт или слово из цепочки, адресуемой

регистром SI, в цепочку, адресуемую регистром DI. Команда переда-

чи цепочки байт MOVSB после пердачи байта увеличиваета содержимое

регистров SIа и DIа на 1, а команда передачи цепочки слов MOVSW

после передачи слова величивает их содержимое на 2.

Формат команды:

MOWSB

MOVSW

Команда CMPS

Команда сравнения цепочека CMPSа производит вычитание байта

или слово цепочки, адресуемой регистром DI, из байта или слова

цепочки, адресуемой регистром SI. Ва зависимости от результата

вычитания станавливаются флаги, но сами операнды не изменяются.

Команда сравнения цепочек байт CMPSB после каждой операции срав-

нения величивает содержимое регистров SI и DI н 1, команда

сравнения цепочек слов CMPSW - на 2.

Формат команды:

CMPSB

CMPSW

Команда SCAS

Команда сканирования цепочки SCAS вычитает элементы цепочки,

дресуемой регистрома DI, иза содержимого аккумулятор AL (при

работе с байтами) или AX (при работе со словами). Ва зависимости

от результат вычитания станавливаются флаги, но сами операнды


- 20 -

не изменяются. Команда сканирования цепочки байт SCASB после каж-

дой операции сканирования величиваета содержимое регистр DI

на 1, команда сканирования цепочки слов SCASW - на 2.

Формат команды:

SCASB

SCASW

Команда LODS

Команда загрузки цепочки в аккумулятор LODS загружает эле-

менты цепочки, адресуемой регистром SI, в аккумулятор AL или AX.

Команда загрузкиа цепочки байт LODSB после выполнения каждой опе-

рации величивает содержимое регистра SI на 1, команда загрузки

цепочки слов LODSW - на 2.

Формат команды:

LODSB

LODSW

Команда STOS

Команда запоминания содержимого аккумулятора в цепочкеа STOS

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

регистром DI. Команда запоманания цепочки байт STOSB после выпол-

нения каждой операции величивает содержимое регистра DI на 1, а

команда запоминания цепочки слов STOSW - на 2.

Формат команды:

STOSB

STOSW

 _КОМАНДЫ ПРАВЛЕНИЯ МИКРОПРОЦЕССОРОМ

Команды данной группы обеспечиваюта программноеа управление

различными функциямиа процессора. Они делятся на две подгруппы:

команды становки флагов и команды синхронизации.

 КОМАНДЫ СТАНОВКИ СОСТОЯНИЯ ФЛАГОВ

Команды этой группы предназначены для правления состоянием

отдельных флагов.

Команды CLC, CMCа и STCа выполняюта соответственно сброс,

инвертирование иа установку ва состояние 1 флага CF. Ониа часто

используются совместно с командами сдвиг череза переноса RCRа и

RCL.

Форматы команд:

CLC

CMC

STC

Команды CLD и STD осуществляют сброс и становку флаг нап-


- 21 -

равления DF. Состояние этого флага определяет автодекремент или

втоинкремент индексных регистров SI и DI в цепочечных командах.

Форматы команд:

CLD

STD

Команды CLIа и STI осуществляют сброс и становку флага пре-

рываний IF. После выполнения команды CLI маскируемыеа аппаратные

прерывания будут запрещены.

Форматы команд:

CLI

STI

 КОМАНДЫ СИНХРОНИЗАЦИИ

Команда останова HLT переводит процессор в состояние остано-

ва. Иза этого состояния процессор может быть выведен или сигналом

сброса, или аппаратным прерыванием.

Команда ожидания WAIT переводит процессор в состояние ожида-

ния, ва котором он периодически через пять тактов проверяет нали-

чие сигнала TEST и при его появлении переходит к выполнению сле-

дующей команды.

Команда LOCK, именуемая также префиксом блокировки, блокиру-

ет доступ других подсистем к шине процессора. Префикс LOCK может

находиться перед любой командой.

Команда ESC предназначена для передачи команд и данных мате-

матическому сопроцессору.

Команда NOPа неа производит никаких действий и применяется в

основном в программных циклах задержки.