Реферат по предмету "Компьютеры и цифровые устройства"


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

Вычислительные машины ЛЕКЦИЯ N 1 ОСНОВЫ МАШИННОЙ АРИФМЕТИКИ Системы счисления и способы перевода чисел из одной системы в другую. Системой счисления называют систему приемов и правил, позволяющих устанавливать взаимно-однозначное соответствие между любым числом и его представлением в виде совокупности конечного числа символов. Множество символов, используемых для такого представления, называют цифрами.

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

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

A 7 0 a4m-10 a4m-20 a4k0 a400 , a4-10 a4-lI Позиции, пронумерованные индексами k -l k m-1 называются разрядами числа. Сумма m l соответствует количеству разрядов числа m - число разрядов целой части числа, l - дробной части . Каждая цифра a4k0 в записываемой последовательности может принимать одно из N возможных значений. Количество различных цифр N , используемых для изображения чисел в позиционной системе счисления, называется основанием системы счисления.

Таблица сложения 10 Таблица умножения 1 Многоразрядные числа складываются, вычитаются, умножаются и делятся по тем же правилам, что и в десятичной системе счисления. Перевод числа из одной системы в другую выполняется по универсальному алгоритму, заключающемуся в последовательном делении целой части числа и образующихся целых частных на основание новой системы счисления, записанное в исходной системе счисления, и в последующем умножении дробной

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

умножениях. Они представляют собой цифры дробной части исходного числа в новой системе счисления, изображенные числами старой системы. Значение первой целой части является первой цифрой после запятой переведенного числа. Пример перевода числа 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 Результат 11110,1001 Если при переводе дробной части получается периодическая дробь, то производят округление, руководствуясь заданной точ- ностью вычислений. Пример перевода числа 10,01 из двоичной системы в десятичную. 1Перевод целой части Перевод дробной части 0, 0100

X 1010 10 1010. 1010 . 110 10, 1000 1011 X 1010. 1010 10 101, 0000 Результат 62,25 - 5 - Примечание 1 1010 - основание десятичной системы счисления в двоичной записи. Примечание 2 десятичные эквиваленты разрядов искомого числа находим по таблице. При переводе чисел из любой системы счисления в десятичную удобнее пользоваться непосредственно формулой II 775 480 7 8520 7 8 5 509 410 Для осуществления автоматического перевода десятичных чисел в двоичную

систему счисления необходимо вначале каким-то образом ввести их в машину, Для этой цели обычно используется двоично-де- сятичная запись чисел или представление этих чисел в кодах ASCII. При двоично-десятичной записи каждая цифра десятичного числа заменяется четырехзначным двоичным числом тетрадой 983,65 4100 1001 1000 0011, 0110 0101 42-10 При записи чисел в кодах ASCII цифрам от 0 до 9 поставлены в соответствие восьмиразрядные двоичные коды

от 00110000 до 00111001. ЭВМ, предназначенные для обработки экономической информации, например IBM AT, позволяют производить арифметические операции в десятичной системе счисления над числами, представленными в дво- ично-десятичных кодах и кодах ASCII. Шестнадцатеричная и восьмеричная системы счисления использу- ются только программистами и операторами ЭВМ, так как представле- ние чисел в этих системах более компактное, чем в двоичной, и пе- ревод из этих систем в двоичную и обратно выполняется очень прос- то основания

этих систем представляют собой целую степень числа 2 . Для перевода восьмеричного числа в двоичное достаточно каж- дый восьмеричный разряд представить тремя двоичными триадой , а для перевода шестнадцатиричного числа - четырьмя тетрадой 376,51 480 011 111 110, 101 001 42 1AF8 4160 0001 1010 1111 1000 42 ПЕРВЫЙ СЕМЕСТР ЛЕКЦИЯ N 2 2ОСНОВЫ МАШИННОЙ АРИФМЕТИКИ 2Формы представления чисел в ЭВМ. Разряд двоичного числа представляется в ЭВМ некоторым техни- ческим устройством, например, триггером,

двум различным состояни- ям которого приписываются значения 0 и 1. Группа таких устройств, предназначенная для представления в машине многоразрядного числа, называется регистром. Структура двоичного регистра, представляющего в машине n-разрядное слово T T T T n-1 n-2 1 0 L Отдельные запоминающие элементы пронумерованы от 0 до n-1. Количество разрядов регистра определяет точность представления чисел.

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

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

абсолютной величине больше или равные единице, что называется1 переполнением разрядной 1сетки.0 Для исключения возможности переполнения приходится масшта- бировать величины, участвующие в вычислениях. Диапазон представления правильных двоичных дробей 25- n-1 0 7,0 A 7 ,0 1 - 25- n-1 0 2 - Числа, которые по абсолютной величине меньше единицы младше- го разряда разрядной сетки, называются 2машинным нулем0. Диапазон представления целых двоичных чисел со знаком в n-разрядной

сетке 0 7,0 A 7 ,0 25n-10 - 1 . Использование представления чисел с фиксированной запятой позволяет упростить схемы машины, повысить ее быстродействие, но представляет определенные трудности при программировании. В нас- тоящее время представление чисел с фиксированной запятой исполь- зуется как основное только в микроконтроллерах. В универсальных ЭВМ основным является представление чисел с плавающей запятой. Представление числа с плавающей запятой в об- щем случае имеет вид

A 7 0m N5 p0 , где N - основание системы счисления, p - целое число, называемое порядком числа A, m - мантисса числа A m 1 . Так как в ЭВМ применяется двоичная система счисления, то A 7 0m 25 p0 причем порядок и мантисса представлены в двоичной форме. Двоичное число называется нормализованным, если его мантисса удовлетворяет неравенству 1 2 7,0 m 7 0 1 . Неравенство показывает, что двоичное число является нормали- зованным, если в старшем разряде мантиссы

стоит единица. Напри- мер, число 0,110100 1051000 - нормализованное, а 0,001101 1051100 - ненормализованное. Ситуация, когда в процессе вычислений получено число с m 7.01 называется переполнением разрядной сетки. Нормализованное представление чисел позволяет сохранить в разрядной сетке большее количество значащих цифр и, следователь- но, повышает точность вычислений. Однако современные ЭВМ позволя- ют, при необходимости, выполнять операции также и над ненормали- зованными

числами 3 - Диапазон представления нормализованных двоичных чисел, взя- тых по абсолютному значению, удовлетворяет неравенству 25-1 0 5 025- 2k-1 7 ,0 A 7,0 15 0-5 025-l0 5 0 5 0252k-10 , где l - число разрядов мантиссы k - число разрядов порядка 25-10 - наименьшее значение нормализованной мантиссы 1-25-l0 - наибольшее значение нормализованной мантиссы. Широкий диапазон представления чисел с плавающей запятой удобен для научных и инженерных расчетов.

Для повышения точности вычислений во многих ЭВМ предусмотрена возможность использования формата двойной длины, однако при этом происходит увеличение зат- рат памяти на хранение данных и замедляются вычисления. 2Представление отрицательных чисел в ЭВМ. Для кодирования знака двоичного числа используется старший знаковый разряд ноль соответствует плюсу, единица - минусу . Такая форма представления числа называется 2прямым кодом0.

Формула для образования прямого кода правильной дроби имеет вид 7 720 A, если A7.00, A 4пр0 7 720 1-A, если A 0. 79 Примеры A 0,110111 A 4пр0 0,110111 A -0,110111 A 4пр0 1 - -0,110111 1,110111 Прямой код целого числа получается по формуле 7 720 5 0 A, если A7.00, A 4пр0 7 720105n-1 0-5 0A, если A 0. 79 где 10 - число 2 в двоичной системе счисления,

n - количество позиций в разрядной сетке. Например, при n 8 A 110111 A 4пр0 00110111 A -110111 A 4пр0 10 - -110111 10110111 В ЭВМ прямой код применяется только для представления поло- жительных двоичных чисел. Для представления отрицательных чисел. применяется либо дополнительный, либо обратный код, так как над - 4 - отрицательными числами в прямом коде неудобно выполнять арифмети- ческие операции.

Формула для образования дополнительного кода4 0дроби A 4доп0 10 A. Формула для образования обратного кода4 0дроби A 4обр0 10 - 105- n-1 0 A. Например, при n 8, для A -0,1100001 A 4доп0 10 -0,1100001 1,001 A 4обр0 10-105-70 -0,1100001 1,1-0,1100001 1,0011110. Формула для образования дополнительного кода4 0целого числа

A 4доп0 105n0 A. Формула для образования обратного кода4 0целого числа A 4обр0 105n0 - 1 A. Например, при n 8, для A -1100001 A 4доп0 10 -1100001 1001 A 4обр0 10-1 -1100001 1-1100001 10011110. Таким образом, правила для образования дополнительного и об- ратного кода состоят в следующем - для образования дополнительного кода отрицательного числа необходимо в знаковом разряде поставить единицу,

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

Замена вычитания двоичных чисел A41 0-4 0A420 сложением с дополне- ниями A410 4пр 0 4 0 -A420 4доп0 или A410 4пр 0 4 0 -A420 4обр0 позволяет опериро- вать со знаковыми разрядами так же, как и с цифровыми. При этом перенос из старшего знакового разряда, если он возникает, учиты- вается по разному для обратного и дополнительного кодов - при использовании дополнительного кода единица переноса из - 5 - знакового разряда отбрасывается - при использовании обратного кода единица переноса

из зна- кового разряда прибавляется к младшему разряду суммы осуществля- ется так называемый циклический перенос . Пример складываем числа A410 0,10010001 и A420 -0,01100110 При использовании обратного кода получим A410 4пр 0 0,10010001 A420 4обр0 1,10011001 10,00101010 L 1 Результат 0,00101011 При использовании дополнительного кода получим

A410 4пр 0 0,10010001 A420 4доп0 1,10011010 Результат 0,00101011 Если знаковый разряд результата равен нулю, то в получено положительное число, которое представлено в прямом коде. Если в знаковом разряде единица, то результат отрицательный и представ- лен в обратном или дополнительном коде. Для того, чтобы избежать ошибок при выполнении бинарных опе- раций, перед переводом чисел в обратные и дополнительные коды не- обходимо выравнивать количество разрядов прямого кода операндов.

При сложении чисел, меньших единицы, в машине быть получены числа, по абсолютной величине большие единицы. Для обнаружения переполнения разрядной сетки в ЭВМ применяются2 модифицированные прямой, обратный и дополнительный коды. В этих кодах знак кодиру- ется двумя разрядами, причем знаку плюс соответствует комбина- ция 00, а знаку минус - комбинация 11. Правила сложения для модифицированных кодов те же, что и для обычных. Единица переноса из старшего знакового разряда в модифи- цированном дополнительном коде

отбрасывается, а в модифицирован- ном обратном коде передается в младший цифровой разряд. Признаком переполнения служит появление в знаковом разряде суммы комбинации 01 при сложении положительных чисел положитель- ное переполнение или 10 при сложении отрицательных чисел отри- цательное переполнение . Старший знаковый разряд в этих случаях - 6 - содержит истинное значение знака суммы, а младший является стар- шей значащей цифрой числа. Для коррекции переполнения число нужно сдвинуть в разрядной сетке на

один разряд вправо, а в освободив- шийся старший знаковый разряд поместить цифру, равную новому зна- чению младшего знакового разряда. После корректировки переполне- ния мантиссы результата необходимо увеличить на единицу порядок результата. ПЕРВЫЙ СЕМЕСТР ЛЕКЦИЯ N 3 2ОСНОВЫ МАШИННОЙ АРИФМЕТИКИ 2Формы представления чисел в ЭВМ0 2 продолжение Система вещественных чисел, применяемая при ручных вычисле- ниях, предполагается

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

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

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

Операции над данными любого формата, который не поддерживается аппаратурой, выполняются очень медлен- но. Любой формат данных, который превышает размер регистров про- цессора, не пригоден для быстрых вычислений. Для представления 2целых чисел0 в ЭВМ обычно применяются 8 16 32- и 64-битовый стандартные форматы, причем интерпретация чисел как знаковых или беззнаковых обычно возлагается на програм- миста или на компиллятор с языка высокого уровня 2 - Для представления2 чисел с плавающей запятой0 также существует

несколько стандартных форматов, различающихся по точности, но имеющих одинаковую структуру следующего вида n-1 n-2 0 T T T T T T T T L L T L T смещенный модуль знак порядок мантиссы мантиссы Порядок p задается в так называемой смещенной форме если для задания порядка выделено k разрядов, то к истинному значению порядка прибавляют смещение, равное 25k-10 - 1 . Использование смещенной формы позволяет производить операции над порядками, как над беззнаковыми

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

без искажений преобразовано в вещественный формат. 2Форматы представления чисел в ПЭВМ IBM AT Рассмотрим стандартные и нестандартные форматы, используемые для представления чисел в ПЭВМ IBM AT. В дальнейшем будем использовать на диаграммах следующие обозначения S - знаковый разряд E - поле порядка M - поле мантиссы X - неиспользуемая область D - цифра упакованного десятичного целого числа, представ- ленная в двоично-

десятичном коде. Примечание основной процессор эффективен только при опера- циях с целыми числами, разрядность которых не превышает разряд- ности его внутренних регистров в остальных случаях более эффек- тивен математический сопроцессор 3 - 1Форматы представления0 1двоичных целых чисел 1 8-разрядное целое число без знака поддерживается всеми процессорами серии 80x86 7 0 L 2 7-разрядное целое число со знаком поддерживается всеми процессорами серии 80x86 7 6 0 T S L- 3 16-разрядное целое число без знака поддерживается всеми процессорами серии 80x86 15 0

L 4 Word Integer целое слово - 15-разрядное целое число со знаком поддерживается всеми процессорами серии 80x86 и математи- ческим сопроцессором 15 0 T S L- 5 32-разрядное целое число без знака поддерживается всеми процессорами серии 80x86, но операции с этим форматом выполняются эффективно только 32-разрядными микропроцессорами, т.е. начиная с i386SX 31 0 L 6 Short Integer короткое целое - 31-разрядное целое число со знаком поддерживается всеми процессорами

серии 80x86 и мате- матическим сопроцессором, но операции с этим форматом выполняются эффективно только 32-разрядными микропроцессорами 4 - 31 0 T S L- 7 64-разрядное целое число без знака частично поддержива- ется 32-разрядными микропроцессорами 64 0 L 8 Long Integer длинное целое - 63-разрядное целое число со знаком поддерживается математическим сопроцессором и частично поддерживается 32-разрядными микропроцессорами 64 0 T S L- 1Форматы представления0 1десятичных целых чисел 1

Неупакованное 1-разрядное десятичное целое число без зна- ка в двоично-десятичном коде поддерживается всеми процессорами серии 80x86 7 4 3 0 T 0 0 0 0 D L 2 1-разрядное десятичное целое число без знака в коде ASCII поддерживается всеми процессорами серии 80x86 7 4 3 0 T 0 0 1 1 D L 3 Packed Decimal - упакованное 2-разрядное десятичное целое без знака поддерживается всеми

процессорами серии 80x86 7 4 3 0 T D410 D400 L 4 Packed Binary Coded Decimal - упакованное 18-разрядное десятичное целое число со знаком поддерживается математическим сопроцессором - 5 - 79 0 T T S X D4170D4160 D410 D400 L- 1Форматы представления вещественных чисел 1 Single Format обычный формат 1 0или 1 0Short Real короткое вещественное - короткое вещественное нормализованное

число со знаком, 8-разрядным смещенным порядком и 24-разрядной мантиссой так как старший бит мантиссы нормализованного числа всегда равен 1, то он не хранится в памяти, и размер поля, выделенного для хранения мантиссы, составляет только 23 разряда . 31 30 23 22 0 T T S E M L 2 Double Format двойной формат или Long Real длинное ве- щественное - длинное вещественное нормализованное число со знаком,

11-разрядным смещенным порядком и 53-разрядной мантиссой так как старший бит мантиссы нормализованного числа всегда равен 1, то он не хранится в памяти, и размер поля, выделенного для хранения мантиссы, составляет только 52 разряда . 63 62 52 51 0 T T S E M L- 3 Extended Format расширенный формат или 1 0Single Extended обычный расширенный формат - вещественное число в расширенном формате со знаком,

15-разрядным смещенным порядком и 64-разрядной мантиссой. Этот формат позволяет хранить ненормализованные числа и соответствует стандарту IEEE 754. 79 78 64 63 0 T T S E M L- ПЕРВЫЙ СЕМЕСТР ЛЕКЦИЯ N 4 2ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ПОСТРОЕНИЯ УЗЛОВ ЭВМ 2Физические формы представления информации Вся информация в ЭВМ кодируется совокупностью цифр.

В свою очередь цифры отображаются квантованными по двум уровням сигнала- ми. Следует отметить, что в цифровых устройствах сигналы изменя- ются не непрерывно, а в дискретные моменты времени, обозначаемые целыми числами t 0, 1, n . Временной интервал между сосед- ними моментами дискретного времени называется2 тактом0. Эти интер- валы являются одинаковыми для синхронных устройств и неодинаковы- ми для асинхронных устройств. На физическом уровне сигналы могут быть представлены одним из трех основных

способов потенциальным, импульсным или динами- ческим. При 2потенциальном0 способе 0 соответствует низкий уровень напряжения, а 1 - высокий. Потенциальный сигнал характеризуется амплитудами низкого U400 и высокого U410 уровней напряжения, а также временами нарастания и спада сигнала, которые именуются пе- редним t4п0 и задним t4з0 фронтами соответственно.

При 2импульсном0 способе 0 и 1 соответствуют импульсы различ- ной полярности, либо 0 соответствует отсутствие, а 1 - наличие импульса. Импульсный сигнал характеризуется амплитудой импульса U4m0, шириной продолжительностью импульса по основанию t4и0, и пе- редним t4п0 и задним t4з0 фронтами импульса. В идеальном случае им- пульсные сигналы должны появляться в тактовые моменты. В действи- тельности имеет место запаздывание импульсного сигнала относи- тельно тактового момента

на время7 t0. При2 динамическом0 способе представления информации двум воз- можным значениям переменной соответствует наличие либо отсутствие серии импульсов. В электронных схемах и устройствах, входящих в состав ЭВМ, применяется потенциальный способ представления информации, а для передачи информации между ЭВМ, а также при работе с магнитными носителями информации применяются импульсный и динамический спо-

собы. 2Математические модели схем ЭВМ Наиболее общей моделью любой схемы, узла или устройства ЭВМ является многополюсный черный ящик с 2l0 входами и 2m0 выходами. На входы модели поступают, а на выходах появляются сигналы, кванто- ванные по двум уровням 2 - x410 y41 x420 y42 . Черный ящик x4l0 y4m L где x4i0 i 1, 2 l - входные сигналы, y4j0 j 1, 2 m - выходные сигналы. Множество значений, которые может принимать переменная x4i0, называют2 алфавитом0 переменной

x4i0. В современных ЭВМ алфавит вход- ных и выходных сигналов состоит из двух букв 0 и 1. На входы модели поступают в каждый тактовый момент упорядо- ченные наборы букв, называемые2 словами0. Множество всех допустимых наборов слов называется 2входным алфавитом0 X данной схемы. Анало- гично множество всех допустимых комбинаций, образуемых выходными сигналами, называется 2выходным алфавитом0 Y. Математические модели отражают зависимость между входными и выходными переменными схемы

посредством системы уравнений y4j0 t f x410 t ,x420 t ,x4l0 t , q410 t ,q420 t ,q4s0 t I где j 1,2, ,m, а переменные q410,q420, ,q4s0 отражают внутренние состояния схемы. Если переменные y4i0 не зависят от внутреннего состояния схе- мы, то одинаковым наборам входных переменных соответствует один и тот же набор выходных переменных. Такие схемы называются 2комбина- 2ционными0. При этом система уравнений может быть записана в виде

y4j0 t f x410 t ,x420 t ,x4l0 t , где j 1,2, ,m. II Функции такого вида могут принимать только конечное число значений, и зависят от аргументов, также принимающих конечное число значений. Такие функции называются2 переключательными0. В дальнейшем мы будем рассматривать переключательные функ- ции, которые могут принимать только два значения - 0 и 1, и аргу- менты которых также могут принимать только одно из этих двух зна- чений.

Такие переключательные функции получили название2 булевых 2функций0. Если выходные переменные y4i0 t зависят не только от входных переменных, но и от внутреннего состояния схемы, то для полного ее описания необходимо указать еще одну систему уравнений - 3 - q4n0 t 1 7f0 x410 t ,x420 t ,x4l0 t , q410 t ,q420 t ,q4s0 t , III где n 1,2, ,s. Эта система отражает зависимость внутреннего состояния схемы в t 1 такте от ее состояния

и входных сигналов в такте t. Схемы, описываемые уравнениями I и III, получили название 2цифровых автоматов0. Для задания цифрового автомата должны быть указаны 1 входной алфавит слов X 2 выходной алфавит слов Y 3 алфавит внутренних состояний Q 4 начальное состояние автомата q400 5 функция переходов A q,x 6 функция выходов B q,x . 2Функция переходов0 определяет зависимость состояния автомата q t 1

в момент времени t 1 от состояния автомата q t и входного сигнала x t в момент t. 2Функция выходов0 определяет зависимость выходного сигнала y t от состояния автомата q t и входного сигнала x t . Автомат, описываемый системой уравнений 7 720 q t 1 A q t ,x t , 7 720 y t B q t ,x t 79 называется 2автоматом Мили0. Автомат, выходной сигнал которого y t в тактовый момент t зависит только от состояния автомата

q t и не зависит от входно- го сигнала, называется2 автоматом Мура0 и описывается системой 7 720 q t 1 A q t ,x t , 7 720 y t B q t . 79 ПЕРВЫЙ СЕМЕСТР ЛЕКЦИЯ N 5 2ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ПОСТРОЕНИЯ УЗЛОВ ЭВМ Если для двух любых состояний q4i0 и q4j0 автомата имеется вход- ной сигнал, переводящий автомат из состояния q4i0 в q4j0, то такой автомат называется автоматом с 2полной системой

переходов0. Автомат Мура имеет 2полную систему выходов0, если выходные сигналы различны для всех его состояний. При построении схем ЭВМ в качестве элементов памяти исполь- зуются элементарные автоматы. 2Элементарный автомат0 - это автомат Мура с двумя внутренними состояниями, двумя различными выходными сигналами и несколькими входами, обладающий полными системами пе- реходов и выходов. 2ТЕОРИЯ БУЛЕВЫХ ФУНКЦИЙ Булевыми функциями называют переключательные функции, кото- рые так же, как

и их аргументы, принимают только два значения 0 и 1. Булевы функции могут быть заданы в виде формул или таблиц. Формулы позволяют представлять функции в более компактном виде, чем таблицы, так как таблица для функции от n аргументов будет содержать 25n0 строк или столбцов, в зависимости от формы табли- цы . С другой стороны, таблицы дают наглядное представление для простых функций.

Приведем в качестве примера наиболее часто встречающиеся функции от одной и двух переменных 1 Переменная x f x x 2 Инверсия переменной x функция НЕ 4 f x x 3 Константа нуля f x 0 4 Константа единицы f x 1 2 - 5 Дизъюнкция функция ИЛИ f x410,x420 x410 V x42 Может встречаться другое обозначение f x410,x420 x410 x420. Таблица истинности соответствия для этой функции имеет вид

T T x410 x420 x410 V x420 0 0 0 0 1 1 1 0 1 1 1 1 L 6 Конъюнкция функция И f x410,x420 x410 5.0 x42 Может встречаться другое обозначение f x410,x420 x410 x420. Таблица истинности для этой функции имеет вид T T x410 x420 x410 5.0 x420 0 0 0 0 1 0 1 0 0 1 1 1 L 7 Функция ИЛИ-НЕ 4 f x410,x420 x410 V x42 Таблица истинности для этой функции имеет вид

T T x410 x420 x410 V x420 0 0 1 0 1 0 1 0 0 1 1 0 L 3 - 8 Функция И-НЕ 4 f x410,x420 x410 5.0 x42 Таблица истинности для этой функции имеет вид T T x410 x420 x410 V x420 0 0 0 0 1 1 1 0 1 1 1 1 L 9 Функция ИСКЛЮЧАЮЩЕЕ ИЛИ сумма по модулю 2 f x410,x420 mod2 x410,x420 Таблица истинности для этой функции имеет вид T T x410 x420 mod2 x1,x2 0 0 0 0 1 1 1 0 1 1 1 0

L 2Аксиомы алгебры логики В алгебре логики определено отношение эквивалентности и три операции дизъюнкция, конъюнкция и отрицание. Отношение эквивалентности удовлетворяет следующим свойствам x x - рефлексивность если x y, то y x - симметричность если x y и y z, то x z - транзитивность. Из отношения эквивалентности сле- дует2 принцип подстановки0 если x y, то в любой формуле, содержа- щей x, вместо x можно подставить y, и будет получена эквивалент- ная формула.

Алгебра логики определяется следующей системой аксиом x 0, если x 7-0 17 780 1 x 1, если x 7-0 07 0 1 V 1 17 780 2 05 .0 0 07 0 - 4 - 0 V 0 07 780 3 1 5.0 1 17 0 0 V 1 1 V 0 17 780 4 05 .0 1 15 . 00 07 0 4 0 17 4 0 780 5 1 07 0 Аксиома 1 утверждает, что в алгебре логики рассматриваются только двоичные переменные, аксиомы 2 - 4 определяют операции конъюнкции и дизъюнкции, а аксиома 5 - операцию отрицания.

Если в аксиомах 2 - 5 , заданных парами утверждений, произ- вести взаимную замену операций дизъюнкции и конъюнкции, а также элементов 0 и 1, то из одного утверждения пары будет получено другое. Это свойство называется принципом двойственности. 2Теоремы алгебры логики С помощью аксиом алгебры логики можно доказать целый ряд те- орем и тождеств. Одним из эффективных методов доказательства тео- рем является2 метод перебора0 всех значений переменных

если теоре- ма истинна, то при подстановке любых значений переменных в обе части выражения, формулирующего утверждение теоремы, должно полу- читься тождество. Методом перебора можно убедиться в справедливости следующих теорем идемпотентные законы x V x x7 78 x 5.0 x x7 0 коммутативные законы x V y y V x7 78 x 5.0 y y 5.0 x7 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 z7 78 x V y 5.0 z x V y 5.0 x V z 7 0 законы отрицания4 x V x 17 4 0 78 x 5.0 x 07 0 0 V x x7 78 1 5.0 x x7 0 1 V x 17 78 0 5.0 x 07 0 законы двойственности теоремы де Моргана 4 x V y x 5. 0y7 4 0 4 0 4 0 78 x 5.0 y x V y7 0 закон двойного отрицания4 0 4 7 0 4 7 720 x7 20

x 79 0 законы поглощения x V x 5.0 y x7 78 x5.0 x V y x7 0 операции склеивания4 x 5.0 y V x 5.0 y x7 0 7 4 0 78 x V y 5.0 x V y 7 0x 70 операции обобщенного склеивания 4 x5.0y V x5.0z V y5.0z x5.0y V x5.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 y7 4 0 78 x5.0 x V y x7 5.0 y 70 ПЕРВЫЙ

СЕМЕСТР ЛЕКЦИЯ N 6 2МЕТОДЫ УПРОЩЕНИЯ МИНИМИЗАЦИИ БУЛЕВЫХ ФУНКЦИЙ Сложные булевы функции могут быть построены из более прос- тых. 2Элементарными функциями0 называются функции, образованные пу- тем использования однотипных логических операций только операции И, только операции ИЛИ и т.д. Для представления сложных логических функций можно использо- вать не все элементарные функции, а только

ту или иную часть их, называемую системой. Система элементарных функций f410 f4k0 на- зывается функционально полной, если любую сложную булеву функцию можно записать в виде формулы через функции f410 f4k0. Так, любую функцию можно представить с помощью одних только операций И-НЕ или только операций ИЛИ-НЕ. В цифровых устройствах часто применяется в качестве базовой система из трех функций И, ИЛИ и НЕ. Используя законы алгебры логики, можно упрощать сложные ло- гические выражения.

Упрощение заключается в уменьшении количества букв и количества отрицаний в выражении, что позволяет упростить схему устройства с жесткой логикой или программу устройства с программируемой логикой. Такое упрощение позволяет уменьшить се- бестоимость и увеличить быстродействие устройства. Рассмотрим функцию 4 7 4 7 4 f a,b.c a5.720b V a5.0c720 V a5.0b 79 0 Используя законы алгебры логики, можно привести эту функцию к виду 4 0 5 0 4 0 4 0 4 0 4

f a,b.c a5.0 b5.0 a5 0V5 0c V a5.0b ab V abc V ab ab V ab 4применяем 0 4 0 4 применяем 4законы де Моргана 0 4 закон поглощения Одной и той же логической функции может быть поставлено в соответствие неограниченное количество различных эквивалентных формул. Наиболее удобными для практического использования являют- ся так называемые 2нормальные формы0 представления сложных логичес- ких функций. 2Элементарной конъюнкцией0

Q называется логическое произведе- ние переменных и их отрицаний, причем каждая переменная должна встречаться в произведении только один раз 2 - 4 Пример элементарной конъюнкции Q x410x420x430x440x460. Аналогично 2элементарной дизъюнкцией0 В называется логическая сумма переменных и их отрицаний, причем каждая переменная должна встречаться в сумме только один раз. 4 Пример элементарной дизъюнкции

D x410 V x430 V x440. Формула, эквивалентная заданной и представляющая собой логи- ческую сумму элементарных конъюнкций, называется 2дизъюнктивной 2нормальной формой0 ДНФ заданной формулы. Дизъюнктивная нормаль- ная форма существует для любой логической функции. Аналогично считается, что логическая функция задана своей 2конъюнктивной0 2нормальной формой0 КНФ , если она выражена посредс- твом логического произведения элементарных дизъюнкций.

КНФ также существует для любой логической функции. Например, для функции 4 7 4 7 4 f a,b.c a5.720b V a5.0c720 V a5.0b 79 0 ДНФ будет иметь вид 4 f a,b.c ab V ab, КНФ будет иметь вид 4 f a,b.c a V b b V c . Одна и та же функция путем эквивалентных преобразований мо- жет быть представлена различными КНФ и ДНФ. Из всей совокупности нормальных форм, представляющих

данную функцию, выделяют одну КНФ и одну ДНФ, именуемые совершенными. 2Минтермом0 m n аргументов называется логическое произведе- ние этих аргументов, причем каждый аргумент может входить в про- изведение в прямой или инверсной форме. Минтермы могут быть пронумерованы, причем номер минтерма оп- ределяется как десятичный эквивалент двоичного числа, образован- ного из значений переменных, входящих в данный набор если пере- менная входит в прямой

форме, то ей соответствует единица, если в инверсной - ноль. 2Макстермом0 M n аргументов называется логическая сумма этих аргументов, причем каждый аргумент может входить в сумму в прямой или инверсной форме. Номер макстерма задается аналогично номеру минтерма 3 - Рассмотрим в качестве примера случай двух аргументов T T T a b минтерм макстерм 4 0 4 0 4 0 4 0 0 0 m400 a5.0b

M400 a V b 4 0 4 0 0 1 m410 a5.0b M410 a V b 4 0 4 0 1 0 m420 a5.0b M420 a V b 4 0 1 1 m430 a5.0b M430 a V b L Минтермы и макстермы можно геометрически представить на кар- тах диаграммах Вейча. Так, для двух переменных карта Вейча бу- дет представлять собой квадрат, причем левая половина квадрата определяется переменной a, а верхняя половина квадрата - перемен- ной b. Это означает, что левая4 0 половина квадрата соответствует

значению переменной a, правая - a, верхняя половина соответствует 4 b, нижняя b. Карта Вейча для двух переменных 4 2a a T 4 0 2b 0 a5.0b a5.0b 4 0 4 0 4 0 4 0 2b 0 a5.0b a5.0b L 4 - Карта Вейча для5 0трех переменных 4 2a a 5 T T T 4 0 4 0 4 0 4 0 2b 0 a5.0b5.0c a5.0b5.0c a5.0b5.0c a5.0b5.0c 4 0 4 0 4 0 4 0 4 0 4 0 4 0 4 0 4 0 2b 0 a5.0b5.0c a5.0b5.0c a5.0b5.0c a5.0b5.0c L 4 0 5L T 4 2c0 2c c 2Свойства минтермов и макстермов 1

Минтерм является инверсией некоторого макстерма и наобо- рот 4 m4i0 M 25n0-1-i 4 M4i0 m 25n0-1-i 4 Пример m410 4 0M420 заштрихованная площадь соответствует макс- терму, незаштрихованная - минтерму . 1-TTT0T1 0- 1 1 0L1TTT0 1 1L - 2 Логическая сумма всех минтермов для любого заданного чис- ла переменных равна 1. 25n0-1 V m4i0 1. i 0 3 Логическое произведение всех макстермов для любого задан- ного числа переменных равно 0. 25n0-1 7L0

M4i0 0. i 0 - 5 - 4 Два неодинаковых минтерма или макстерма имеют хотя бы од- ну переменную, входящую в один из них в прямой, а в другой - в инверсной форме, следовательно m4i5.0m4j0 0, если i 7-0 j M4i0 V M4j0 1, если i 7-0 j. 2Основная теорема алгебры логики0 любую булеву функцию от n переменных можно выразить логической суммой минтермов, которая называется2 совершенной нормальной дизъюнктивной формой0, или логи- ческим произведением макстермов, которое называется2 совершенной 2нормальной конъюнктивной

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

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

логических операций. Существует несколько методов минимизации. В дальнейшем мы рассмотрим метод непосредственных преобразований и метод диаграмм Вейча. ПЕРВЫЙ СЕМЕСТР ЛЕКЦИЯ N 7 2МЕТОДЫ МИНИМИЗАЦИИ БУЛЕВЫХ ФУНКЦИЙ 2Метод непосредственных преобразований Суть данного метода заключается в том, что минимизация ис- ходной логической функции производится путем

применения к отдель- ным членам или группам членов формулы, выражающей данную логичес- кую функцию, основных законов алгебры логики с целью получения минимальной формы функции, т.е. такой, которая не содержит лишних переменных или членов. Лишними переменными или членами являются те, которые не вли- яют на значение преобразуемой формулы. Пример 4 5 4 x415.0x425.0x430 V x415.0x425.0x430 x425.0x435.0 x415 0V5 0x410 x425.0x435.01 x425.0x43 т.е. в исходной формуле лишней

являлась двоичная переменная x410. Примечание произведенная операция называется склеиванием членов формулы. Действия, отвечающие методу непосредственных преобразований, обычно проводятся в следующем порядке 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 L L - L L - 4 abc V abc V abc V abc V abc V abc перегруппировываем члены с целью их упрощения 4 9 4 b9c0 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. Следовательно, данная функция имеет две минимальные формы. Недостатком метода непосредственной минимизации является трудность получения всех минимальных форм, если их несколько. Кроме того, метод в целом весьма трудоемок, результат минимизации в сильной степени

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

приводить функцию к СДНФ. Рассмотрим изображение на карте Вейча функции 4 f a,b,c,d cd V abd V abc V abcd V abcd V bcd - 3 - При нанесении заданной функции на карту никаких предвари- тельных преобразований не проводится. Каждый дизъюнктивный член рассматривается в отдельности, и в соответствующие ему квадратики вписывается 1 т.е. дизъюнктивный член развертывается до минтер- мов .

Например, нанесение на карту вейча заданной функции выполня- ется в следующей последовательности a T T T T T T T T T 1. 1. 1. 1. 1 1 1 1. b 1. L d - 1. 1. 1 1 1 1 L L L L T 4 0 c4 0 4 cd cd V abd cd V abd V abc T T T T T T T T T 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 L L L 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 x410x420x430 x4n0 V x410x420x430 x4n0 x420x430 x4n Нахождение простых импликант производится на картах путем группировки минтермов, отмеченных единицей. Рассмотрим правила группировки на диаграмме для четырех пе- ременных,

учитывая, что их легко обобщить на случай для любого - 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 2МЕТОДЫ МИНИМИЗАЦИИ БУЛЕВЫХ ФУНКЦИЙ окончание Обычно для проверки правильности результата, полученного с помощью одного из методов минимизации, либо используют другой ме- тод хотя при наличии у функции нескольких минимальных форм могут быть получены несовпадающие результаты , либо проверяют на тож- дественность исходную и минимальную формы методом перебора всех возможных комбинаций значений переменных однако уже для 20 пере- менных число возможных комбинаций превышает миллион .

В качестве примера проведем минимизацию рассматривавшейся ранее функции 4 f a,b,c ab V bc V bc V ab с помощью карты Вейча. Как видно из диаграммы, возможны две мини- мальные дизъюнктивные формы a T T T b 1 1. 1. 1 210 210 L L T c 4 0 4 f a,b,c ac V ab V bc a T T T b 1. 210 1. 1 1 210 L L T c 4 0 4 f a,b,c bc V ac V ab 2 - 2ЭЛЕМЕНТЫ И УЗЛЫ ЭВМ 2ЛОГИЧЕСКИЕ ЭЛЕМЕНТЫ

Системой элементов ЭВМ называется функционально полный набор логических элементов, использующий одинаковый способ представле- ния информации и одинаковый тип межэлементных связей. Система элементов чаще всего избыточна по своему составу, что позволяет строить схемы с более простой топологией межэле- ментных связей и более экономные по количеству используемых эле- ментов. Классификация логических элементов 1 По способу представления информации и типу межэлементных связей

различают элементы импульсного, потенциального, импуль- сно-потенциального и динамического типа. Примечание в современных ЭВМ применяются потенциальные и динамические элементы. 2 По функциональному назначению элементы принято разделять на 2типовые и элементы специального назначения0. К 2типовым0 относят- ся логические, запоминающие и формирующие элементы. Логические элементы предназначены для преобразования информации, запоминаю- щие - для ее хранения,

а формирующие элементы - для восстановле- ния стандартизированных значений физических параметров сигналов, изменяющихся во время прохождения сигналов по электрическим це- пям. К элементам2 специального назначения0 относятся усилители сла- бых сигналов, генераторы токов и напряжений специальной формы и другие элементы, не изменяющие информационного содержания сигна- лов. 3 В зависимости от используемых физических явлений логичес- кие элементы подразделяются на полупроводниковые,

магнитополупро- водниковые, электромагнитные и др. 2Основные характеристики логических элементов Общие технические характеристики - температурный диапазон надежность стоимость. Специфические характеристики - функциональные возможности элемента нагрузочная способность быстродействие 3 помехоустойчивость потребляемая мощность. Функциональные возможности логического элемента характеризу- ются выполняемой им операцией и коэффициентами

разветвления и объединения, т.е. факторами, влияющими на структуры более сложных схем, построенных с применением данного элемента. При этом под 2коэффициентом разветвления0 2n0 понимают число входов последующих ячеек, которые могут управляться от выхода данной ячейки, а под 2коэффициентом объединения0 2m0 - число входов, которое может иметь ячейка. Величины m и n ограничиваются услови- ями сохранения нормального электрического режима ячейки. 2Нагрузочная способность0 в общем случае определяется током, который может

быть отдан ячейкой во внешние цепи нагрузку . В случае однородных нагрузок, создаваемых входами идентичных ячеек, нагрузочная способность оценивается коэффициентом разветвления n. 2Быстродействие0 логического элемента определяется скоростями его перехода из состояния 0 в состояние 1 и обратно. Переход- ные процессы изменения состояния элемента состоят из двух этапов задержки и формирования фронта или спада сигнала. Длительность задержек и фронтов зависит от динамических свойств логического

элемента. Однако для оценки быстродействия часто используют обобщенную характеристику -2 среднее время задержки0. В этом случае моментом поступления сигнала на ячейку считают момент достижения входным сигналом некоторого определенного уровня например, 0,5 от уста- новившегося значения . Моментом появления сигнала на выходе также считают момент достижения выходным сигналом этого уровня. Так как длительности переходных процессов при включении и выключении транзистора в общем случае не

равны, то проводят обоб- щение и говорят о среднем времени задержки сигнала на ячейку. Время задержки при формировании спада t4сп t5 4з5 0 t4з.сп 0 4 0 , 2 а время задержки при формировании фронта t4фр t5 4з5 0 t4з.фр 0 4 0 . 2 Среднее время задержки на один каскад схемы t5 4з0 t5 4з t4з.ср0 5. 2 - 4 - Одна из важнейших характеристик элемента - его 2помехоустой-

2чивость0. Различают статическую и динамическую помехоустойчивость. При определении статической помехоустойчивости помеха рассматри- вается как длительно действующий уровень потенциала, а при опре- делении динамической помехоустойчивости - как импульс определен- ной длительности. Устойчивость элемента к воздействию длительной помехи меньше, чем к воздействию кратковременной помехи при оди- наковых амплитудах. Устойчивость к воздействию динамической поме- хи тем ниже, чем выше быстродействие

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

P4з0 P4о P4ср0 . 2 Рассеиваемая мощность может зависеть как от нагрузки, так и от схем, включенных на входе. 1Классификация логических элементов по типу радиокомпонентов, 1на которых реализуются логические функции2. Можно выделить следующие наиболее часто употребляемые на данный момент типы логических элементов - транзисторно-транзисторная логика с диодами Шотки ТТЛШ - КМОП-логика логика на базе комплементарных полевых тран- зисторов со структурой металл-

окисел-полупроводник - КМДП-логика логика на базе комплементарных полевых тран- зисторов со структурой металл-диэлектрик-полупроводник - интегральная инжекционная логика ИИЛ, И520Л, I520L . Следует отметить также некоторые типы элементов, которые в данный момент уже не применяются в новых разработках вследствие низкого быстродействия или большой рассеиваемой мощности резисторно-транзисторная логика РТЛ, RTL - резисторно - конденсаторная транзисторная логика

РКТЛ, RCTL - диодно-транзисторная логика ДТЛ, DTL - транзисторно-транзисторная логика ТТЛ, TTL - транзисторная логика с эмиттерными связями ЭСЛ, TECL транзисторная логика с непосредственными связями DCTL МОП-логика - МДП-логика MDS . ПЕРВЫЙ СЕМЕСТР ЛЕКЦИЯ N 9 2ЭЛЕМЕНТЫ И УЗЛЫ ЭВМ 2ЛОГИЧЕСКИЕ ЭЛЕМЕНТЫ Электронную схему, выполняющую какие либо операции над

одним машинным словом, называют 2узлом0 ЭВМ. Многие узлы ЭВМ строятся на базе логических элементов. Общие требования к проектируемому устройству - устройство должно полностью соответствовать своему функци- ональному назначению, т.е. выполнять заданные в ТЗ функции - быстродействие, энергопотребление, надежность, устойчи- вость к вредному воздействию окружающей среды температура, влаж- ность, давление, вибрация, удары, статическое электричество, внешние магнитные

поля, электромагнитные помехи и пр. должны со- ответствовать заданным в ТЗ параметрам - устройство должно быть максимально простым, чтобы обеспе- чить высокое быстродействие и надежность, а также низкую себесто- имость. Если устройство проектируется на базе нескольких различных наборов логических элементов, особенно в случае различной техно- логии изготовления ТТЛ и ТТЛШ, ТТЛ и КМОП, ТТЛ и ЭСЛ и т.п необходимо тщательно проверить эти наборы на совместимость во

всем рабочем диапазоне температур и на отсутствие состязаний в спроектированной схеме. Требуется проверить - соответствие по номинальному напряжению питания - соответствие по входным и выходным характеристикам логи- ческих элементов, особенно по уровням 0 и 1 - соответствие элементов по быстродействию - соответствие по переходным процессам. 1Основные характеристики логических элементов 2Амплитудная передаточная характеристика0 U4вых 0 4 0f U4вх0 опре- деляет формирующие свойства логического элемента, его помехоус-

тойчивость, амплитуду и уровни стандартного сигнала. Вид характе- ристики зависит от типа логического элемента ЭСЛ, ТТЛ и т.д. и может изменяться в определенных пределах в зависимости от разбро- са параметров схем, изменений напряжения питания, нагрузки и тем- пературы окружающей среды. 2Входная характеристика0 I4вх0 f U4вх0 и 2выходная характеристи-

2ка0 U4вых0 f I4вых0 позволяют определить нагрузочную способность элемента, режим его работы и способ согласования переходных про 2 - цессов в линиях связи. 2Импульсная динамическая помехоустойчивость0 - это зависи- мость допустимой амплитуды импульсной помехи от ее длительности U4пом0 f t4пом0 . 2ТРИГГЕРЫ Практически все устройства ЭВМ совмещают функции переработки и хранения информации.

Неотъемлемая часть таких устройств - эле- мент памяти. В арифметических и логических устройствах для хране- ния информации чаще всего используют элемент с двумя устойчивыми состояниями - 2триггер0. Структуру триггера можно представить в виде запоминающей ячейки и схему управления 4S0 E410 - Схема Запоми Q C управ- 4R0 нающая 4 E420 T- ления ячейка -T Q L L

L 4 0 2Запоминающая ячейка0 - это схема, которая имеет два выхода Q и Q4,0 сигналы на которых всегда противоположны если на одном 0, то на другом 1 , и два входа - вход установки S set и вход сброса R reset . 2Переключающий0 сигнал по входу S устанавливает запоминающую ячейку в состояние 1 , а по входу R - в состояние 0 . В зависи- мости от типа элементов, из которых построена запоминающая ячей- ка, переключающим

сигналом может являться либо 0 , либо 1 . За- поминающую ячейку называют также2 асинхронным RS-триггером0. 2Схема управления0 преобразует информацию, поступающую на вхо- ды E410 и E420 в сигналы, которые подаются на установочные входы за- поминающей ячейки. В некоторых схемах выходные сигналы триггерра поступают на вход схемы управления - на рисунке эти соединения показаны пунктиром. Как правило, триггеры, применяемые в потенциальной системе элементов, имеют еще

один вход - вход для синхронизирующих сигна- лов C. Импульсы, поступающие на вход C, не несут логической ин- формации, но определяют момент приема триггером входной информа- ции 3 - 1Классификация триггеров В основу классификации триггерных устройств положены два ос- новных признака функциональный признак и способ записи информа- ции в триггер. Функциональная классификация - это классификация триггеров по типам схем управления.

По функциональному признаку различают RS, S, R, E, T, D, TV, DV, RST и JK триггеры. Классификация по способу записи информации характеризует временную диаграмму работы триггера, т.е. определяет ход процесса записи информации в триггер Потенциальные триггеры L T Асинхронные Синхронные L T L T С внутренней Управляемые С внутренней Управляемые задержкой уровнем задержкой уровнем

L входного L синхроим- сигнала пульса L L T Одно- Много- тактные тактные L L 2Временная диаграмма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 - инверсный выход. Асинхронные триггеры Асинхронные триггеры редко непосредственно используются в цифровых схемах, однако

на базе асинхронных триггеров строятся все триггерные схемы. 1Асинхронный RS-триггер RS-триггер имеет два информационных входа R и S. При поступ- лении на эти входы сигналов S 1 и R 0 триггер принимает состояние Q 1, при S 0 и R 1 состояние Q 0, а при S 0 и R 0 триггер сохра- няет то состояние, в котором он находился до поступления на его

входы нулевых сигналов. Подача единичных сигналов на оба входа R и S запрещена 5 - Полная таблица переходов RS-триггера T T T 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 L Минимизированная таблица переходов RS-триггера T T R t S t Q t 1 0 0 Q t 0 1 1 1 0 0 1 1

X L Логические уравнения RS-триггера имеют вид 7 4 720 Q t 1 S t V R t 5.0Q t 7 720 R t 5.0S t 0 79 Асинхронный RS-триггер на элементах ИЛИ-НЕ R 1 7 0 T Q L L - L 1 4 7 0 Q S L 6 - Условное графическое изображение такого триггера T S T R 7 0 L- Асинхронный RS-триггер на элементах

И-НЕ 4 0 S 7 0 T Q L L - L 4 4 0 7 0 Q R L Условное графическое изображение такого триггера T 7 0S T 7 0R 7 0 L- или T 4 0 7 0 S 7T0 4 0 R 7 0 L- ПЕРВЫЙ СЕМЕСТР ЛЕКЦИЯ N 10 2ТРИГГЕРЫ 1Синхронный однотактный RS-триггер Синхронные RS-триггеры имеет на каждом входе дополнительные схемы совпадения 4 S S 7 0 7 0 T Q L L L C - L 4 0 L 4 0 4 R 7 0 Q R 7 0

L L Если на входе C ноль , то на выходах схемы совпадения также будут нулевые значения при любых сигналах на входах R и S. При поступлении синхроимпульса на вход схемы совпадения информация с входов R и S инвертируется и передается на входы асинхронного триггера. Графическое обозначение синхронного однотактного RS-триггера T S T Q C 4 R 7 0 Q L 2 - Синхронный триггер может иметь дополнительные асинхронные входы

R4а0 и S4а0 4 S4а0 4 0 S L S 7 0 7 0 T Q L L L C - L 4 0 R L 4 R 7 0 7 0 Q L 4 0 L R4а0 Графическое обозначение синхронного однотактного RS-триггера с асинхронными входами 4 0 T S4а0 7 0S T Q - S C R 4 0 - 4 R4а0 7 0R 7 0 Q L- 1Синхронные0 1двухтактные триггеры Синхронные двухступенчатые двухтактные триггеры построены по принципу master-slave ведущий-ведомый .

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

Все двухтактные триггеры имеют следующую общую структуру - T T E410 E410 T S T - Q C T- C C 4 E420 T - E420 R -T Q L L- L L 510 7 0 L Наиболее широкое применение в устройствах вычислительной техники находят двухтактные триггеры типов RS, T, D и JK. Рассмотрим в качестве приера схему двухтактного RS-триггера Q S 7 0 7 0 T 7 0 7 0 T Q 410 440 460 480

L L L L L L C 4 0 L 4 0Q L 4 R 427 0 457 0- 477 0 497 0- 4 0Q L L 4 0 L L C L T- 7 0 L- 430 L Рассмотрим идеализированную временную диаграмму работы двух- тактного RS-триггера предполагаем форрму импульсов прямоугольной и не учитываем разброс времени задержки элементов схемы 4 - C L L L L L t S L L t R L t 1 L L t 2 L L t Q 4 0 4 0 4 0L4 0 L t 4 Q 4 0 4 0 4 0 4 0 4 L 0- L t 4

C L L L L L t 6 L L L t 7 L L L t Q 4 0 4 0 4 0 4 0 L4 0 L t ПЕРВЫЙ СЕМЕСТР ЛЕКЦИЯ N 11 2ТРИГГЕРЫ 1T-триггеры T-триггер триггер со счетным входом изменяет свое состоя- ние на противоположное каждый раз при подаче на вход T единичного сигнала. Таблица переходов асинхронного T-триггера T Т t Q t 1 0 Q t 4 0 1 Q t L Схема асинхронного

T-триггера T T L S T S T -T Q T T C C 4 0 4 R 7 0 R 7 0- Q L- L- L L 510 7 0 L Графическое изображение асинхронного T-триггера T TT T 7 0 L 2 - Схема синхронного T-триггера L 7 0 7 0 T 7 0 7 0 T Q 410 440 460 480 L L L L L L T L L 4 0 4 7 0 457 0- 477 0 497 0- 4 0Q 420 L L L

L L C T- 7 0 L- 430 L Графическое изображение синхронного T-триггера T TT T C 7 0 L- Синхронный T-триггер с цепями сброса и установки T 7 0S TT - T C - 7 0R 7 0 L 3 - 1D-триггеры Триггер D-типа - это триггер задержки. Он описывается логи- ческим уравнением Q t 1 D t , т.е. состояние D-триггера в момент времени t 1 совпадает с кодом входного сигнала, действовавшего

в момент времени t. Схема D-триггера D 7 0 T 7 0 T 7 0 7 0 T Q 410 440 460 480 L L L L L L C L- L 4 0 L 4 427 0 457 0- 477 0 497 0- 4 0Q L L L L L T- 7 0 L- 430 L Временная диаграмма работы D-триггера T C L L L L t D L L t 27t 037t Q L L t 4 - D-триггер с цепями сброса и установки T 7 0S TT -

D C - 7 0R 7 0 L- 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-тригге- ры. 2Универсальный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-триггеров не определяют их принципиальных схем. В результате, например, триггеры типов К130ТВ1, К131ТВ1, К133ТВ1, К155ТВ1, впускаемые ра- личными изготовителями, могли быть как универсальными, так и синхронными,

что сильно осложняло работу проектировщиков элект- ронных схем. Чтобы избежать недоразумений, рекомендуется исполь- зовать только такие схемы включения триггеров, в которых сигналы на входах J и K не меняются при наличии высокого уровня на входе C. Схема синхронного JK-триггера L J 7 0 7 0 T 7 0 7 0 T Q 410 440 460 480 L L L L L L L 4 0 4 K 7 0 457 0- 477 0 497 0- 4 0Q 420

L L L L L C T- 7 0 L- 430 L 6 - JK-триггер с цепями сброса и установки T 7 0S TT - J C K - 7 0R 7 0 L- ПЕРВЫЙ СЕМЕСТР ЛЕКЦИЯ N 12 2РЕГИСТРЫ Электронную схему, выполняющую операции над одним машинным словом, называют узлом ЭВМ. 2Регистр0 - это узел ЭВМ, который состоит из системы запомина- ющих элементов и управляющей этой системой логической схемы и предназначен для выполнения следующих операций 1 сброс регистра в ноль 2

прием n-разрядного кода числа из другого узла ЭВМ 3 передача кода числа в другой узел 4 хранение кода числа 5 преобразование прямого кода числа в обратный или дополни- тельный и наоборот 6 сдвиг влево или вправо кода числа на требуемое число раз- рядов 7 преобразование последовательного кода в параллельный и наоборот 8 поразрядное логическое сложение двух чисел 9 поразрядное логическое умножение двух чисел 10 поразрядное сложение двух чисел по модулю 2. Конкретные регистры обычно являются специализированными

и реализуют лишь некоторые из перечисленных операций. 1Классификация регистров По возможности смещения информации различают сдвигающие ре- гистры и регистры памяти регистры без сдвига . По количеству тактов управления, необходимых для записи ин- формации, различают однотактные регистры с приемом информации в парафазном коде , двухтактные со сбросом перед записью информа- ции и многотактные сдвигающие регистры. Сдвигающие регистры классифицируются по способу приема и пе-

редачи информации а последовательные прием и передача кода слова производят- ся последовательно, разряд за разрядом б параллельные с одновременным приемом или передачей кодов всех разрядов слова в последовательно параллельные прием и передача слова про- изводятся группами по несколько разрядов, например, байтами 2 - Рассмотрим в качестве примера структуру четырехразрядного запоминающего регистра, работающего в парафазном коде T D41 0 S TT Q41 4 0 C 4 D41 0 - R 7 0 Q41 L-

T D42 0 - S TT Q42 4 0 - C 4 D42 0 - R 7 0 Q42 L- T D43 0 - S TT Q43 4 0 - C 4 D43 0 - R 7 0 Q43 L- T D44 0 - S TT Q44 4 0 - C 4 D44 0 - R 7 0 Q44 L- C На принципиальной схеме данный регистр изображается следую- щим образом T S410 RG R410 7 0 S420 R420 7 0 S430 R430 7 0 S440 R440 7 0 C L 3 - Регистры сдвига строятся на базе двухтактных триггеров

RS, D или JK. Рассмотрим в качестве примера реверсивный сдвигающий ре- гистр, построенный на базе D-триггеров с коммутаторами на базе логических элементов И-ИЛИ-НЕ D410 Q410 D420 Q420 D4n0 Q4n 4 0 4 0 4 - -4 T T T L 1 L 1 L 1 - T - T - T 4 0 7 0 7 0D TT - 7 0 7 0D TT - 7 0 7 0D TT - 4 0 C C C 4 0 4L0 - -7 0R L - -7 0R

L - -7 0R - L L L- L- L- L- V - DR DL 4 0 R C Обозначения D410-D4n0 - информационные входы Q410-Q4n0 - информационные выходы C - вход синхронизации R - вход сброса V - разрешение записи информации параллельного кода DR - сдвиг вправо DL - сдвиг влево 4 - На принципиальной схеме данный регистр изображается следую- щим образом T T T D410 RG Q410 D420 D430 Q420 D440 Q430

DR DL Q440 V C 7 0R L ПЕРВЫЙ СЕМЕСТР ЛЕКЦИЯ N 13 2СЧЕТЧИКИ Счетчиком называется схема, выполняющая функции подсчета ко- личества единичных сигналов, поступивших на ее вход, а также функции формирования и запоминания некоторого кода, соответствую- щего этому количеству. Счетчики также иногда могут выполнять функции приема и выдачи кода. Схемы счетчиков можно классифицировать по следующим призна- кам 1

Основание системы счисления. В вычислительных системах используются двоичные и десятичные счетчики. Двоичные счетчики в свою очередь подразделяются на счетчики с модулем пересчета, рав- ным 25n0, и модулем пересчета, не равным 25n0, где n - разрядность счетчика. 2 Направление переходов счетчика. Счетчики принято разде- лять на простые суммирующие или вычитающие , которые могут вести счет только в одном направлении, то есть только прибавлять или вычитать входные

сигналы, и реверсивные, которые в зависимости от управляющих сигналов могут вести счет в прямом или обратном нап- равлениях. 3 Способ построения цепей переноса. Различают счетчики с последовательным, сквозным, параллельным и групповым переносом. 4 Способ организации счета. Счетчики могут быть асинхронны- ми и синхронными. В асинхронных счетчиках изменение состояния счетчика осуществляется с поступлением информации только

на вход первого каскада. В синхронных счетчиках информационный сигнал поступает одновременно на синхронные входы всех разрядов. 5 Тип элементов, используемых для построения счетчика. Раз- личают счетчики на импульсных, импульсно-потенциальных и потенци- альных элементах. Хотя в современной электронной аппаратуре ис- пользуются все эти три типа, в дальнейшем мы будем рассматривать только счетчики на потенциальных элементах, так как это основной тип счетчиков, используемых в

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

Схемы счетчиков могут быть построены на базе триггеров. Чис- ло триггеров, необходимых для построения счетчика, определяется по формуле - 2 - n ceil log42 0k где k - 2коэффициент модуль пересчета0 - максимальное число внутренних состояний, которое может иметь счетчик, ceil - функция округления сверху до целого числа. Другой важной характеристикой является быстродействие.

2Быст- 2родействие0 счетчика в значительной мере определяется построением цепей переноса. Быстродействие характеризуется 2временем установ- 2ления кода0 на выходе счетчика T4уст0, то есть интервалом времени между моментом поступления входного импульса и моментом окончания самого длительного переходного процесса в счетчике. Если не приняты никакие меры к ускорению переносов, то

T4уст счетчика определяется временем срабатывания триггеров счетчика t4тр0 и числом разрядов счетчика n T4уст0 t4тр0 5.0 n Введение цепи сквозного переноса позволяет сократить время установления кода до величины T 4уст0 n-1 5.0 t4 0 t4тр где t4 0 - время срабатывания схемы И в цепи сквозного переноса. Дальнейшее повышение быстродействия счетчиков достигается использованием цепей параллельного переноса T 4уст0 t4тр0 и груп- пового переноса.

В случае использования группового переноса учи- тывается время распространения сигнала между m группами, входящи- ми в состав счетчика T5гр4уст0 mt4 0 t4тр Разрешающая способность счетчика определяется минимальным временем t4р0 между двумя счетными импульсами, при котором счетчик работает надежно. Максимальная частота поступления счетных им- пульсов f4сч0 в общем случае определяется как f4сч0 1 t4тр 1Асинхронные счетчики

Простейшие схемы двоичных счетчиков выполняются путем после- довательного соединения триггеров со счетными входами. T-триггер является счетчиком с K 2. Для построения счетчика с K 25n0 требу- ется n таких триггеров. Рассмотрим в качестве примера схему асинхронного двоичного триггера с последовательным переносом - 3 - Q410 Q420 Q43 T T T TT TT TT T T L T L T 7 0R 7 0 7 0R 7 0 7 0R 7 0 4 0

L- L- L- R Временная диаграмма работы счетчика будет иметь следующий вид T L t Q410 t4тр - L t Q420 2t4тр L t Q430 3t4тр - L t Основным недостатком счетчиков с последовательным переносом является низкое быстродействие. 1Синхронные счетчики со сквозным, 1параллельным и групповым переносом Быстродействие счетных схем можно повысить благодаря специ- альной организации цепей переноса и подаче

счетных импульсов на все разряды счетчика одновременно. Как правило, в таких схемах счетные импульсы выполняют роль импульсов синхронизации, поэтому рассматриваемые ниже счетчики относятся к классу синхронных. В схеме 2со сквозным переносом0 переключение каждого j-го разряда JK-триггера возможно в том случае, если на его информаци- онных входах J и K присутствует 1. В противном случае j-й триггер находится в режиме запоминания 4 -

Q410 Q420 Q430 Q44 - T - T T 4 0 4 0 T 4 0 4 0 T 1 J TT - J TT - 4 0 J TT - 4 0 J TT - C C L 4 0 C 4 0L C 1 - K L - K L - K L - K -7 0R 7 0- -7 0R 7 0- -7 0R 7 0- -7 0R 7 0- L- L- L- L- T 4 0 R На входы J и K младшего разряда счетчика подана константа 1 , поэтому он постоянно работает в режиме асинхронного T-триг- гера, то есть изменяет свое состояние на противоположное под

воз- действием каждого счетного импульса. Изменение состояния старших разрядов счетчика возможно только в том случае, если все пред- шествующие триггеры младших разрядов находятся в единичном состо- янии. Отличительной особенностью схемы счетчика 2с параллельным пе- 2реносом0 является то, что выходы всех предшествующих i-му триггеру разрядов подаются на вход данного триггера. Q410 Q420 Q430 Q44 T T T 4 0 T T 1 1 1 - 1

J TT - J TT - J TT - J TT 1 1 C C 4 0 C C 1 - 1 - 1 L - 1 - K L - K L - K L - K 1 - 1 - L - L -7 0R 7 0- -7 0R 7 0- -7 0R 7 0- -7 0R 7 0- L- L- L- L- T 4 0 R Для построения данного счетчика использовались многовходовые - 5 - JK-триггеры. Из схемы видно, что с возрастанием порядкового номе- ра триггера увеличивается число входов J и К, необходимых для ор- ганизации схемы.

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

K0 7-0 225n Для многих электронных устройств необходимы счетчики с моду- лем пересчета, отличным от целой степени двойки. Для электроныых часов, например, могут потребоваться счетчики с коэффициентами пересчета 3,6,7,10,24 и т.д. В ЭВМ счетчики применяются для зада- ния сетки тактовых частот машины. Принцип построения счетчиков с K 7-0 25n0 заключается в исключе- нии лишних устойчивых состояний у двоичного счетчика с K 25n0. Для реализации данного принципа используются следующие ос- новные методы 1

метод блокирования переноса 2 принудительный порядок счета 3 начальная установка кода. Идея способа 2блокирования переноса0 заключается в том, что при подаче импульса с номером, несколько меньшим коэффициента пе- ресчета, блокируется поступление счетных импульсов в разряды, на- ходящиеся в нулевом состоянии, а последующие импульсы обнуляют триггеры, оставшиеся в единичном состоянии, так, что с приходом K-го импульса все триггеры счетчика оказываются в нулевом состоя- нии.

Рассмотрим в качестве примера троичный счетчик Q410 Q42 T T L- J TT J TT - C C 1 K 1 K 7 0R 7 0- 7 0R 7 0 L- L- T 4 0 R - 6 - Временная диаграмма работы счетчика будет иметь следующий вид T L 4 0 t Q41 4 0 4 0 L 4 0 4 0 4 0-4 0 t Q42 4 0 4 0 4 0 L 4 0-4 0 4 0 4 0-4 0 - t В счетчиках с 2принудительным порядком счета0 исключение зап- рещенных состояний

достигается за счет принудительной установки отдельных разрядов в состояние 1 в процессе счета. Для этого в схему счетчика вводятся обратные связи. В счетчике с 2начальной установкой кода0 необходимое число запрещенных состояний устанавливается перед началом счета по сиг- налу Начальная установка кода . ПЕРВЫЙ СЕМЕСТР ЛЕКЦИЯ N 14 2ДЕШИФРАТОРЫ 2Дешифратором0 называтся комбинационная схема с несколькими

входами и выходами, преобразующая код, подаваемый на входы, в сигнал на одном из выходов. В общем случае дешифратор с n входами имеет 25n0 выходов, так как n-разрядный код входного слова может принимать 25n0 различных значений. Рассмотрим в качестве примера следующую схему 5 0 y41 510 7 0 L L x410 T- 5 0 y42 L 510 7 0 - L L 5 0 y43 x420 T L L 5 0 y44 L L Условное обозначение дешифратора T

T- D DC 0 0 1 1 2 3 L- 2МУЛЬТИПЛЕКСОРЫ 2Мультиплексором0 называется схема, осуществляющая передачу сигналов с одной из входных линий на выходную. Выбор входной ин- формационной линии производится с помощью кода, подаваемого на управляющие входы мультиплексора. Мультиплексор с k управляющими входами имеет 25k0 информационными входов 2 - Рассмотрим в качестве примера следующую схему D400 5 0 L D410 5 0 L 510 L L y D420 5 0 L L D430 5 0

L T T- DC 0 x400 0 1 x410 1 2 3 L- Условное обозначение мультиплексора T T D1 MS D2 D3 D4 Q A1 A2 L 2ПРОЦЕССОРЫ И МИКРОПРОЦЕССОРЫ ОСНОВНЫЕ ПРИНЦИПЫ ПОСТРОЕНИЯ УСТРОЙСТВ ОБРАБОТКИ ЦИФРОВОЙ ИНФОРМАЦИИ 2Принцип академика В.М. Глушкова0 гласит, что в любом устрой- стве обработки цифровой информации можно выделить операционный и - 3 - управляющий блоки.

Такой подход упрощает проектирование, а также облегчает понимание процесса функционирования вычислительного устройства. Операционный блок состоит из регистров, сумматоров и других узлов, производящих прием из внешней среды и хранение кодов, их преобразование и выдачу результатов работы во внешнюю среду, а также выдачу в управляющий блок и внешнюю среду оповещающих сиг- налов. Процесс функционирования во времени устройства обработки состоит из последовательности тактовых интервалов,

в которых опе- рационный блок производит элементарные преобразования кодов пе- редачу кода из одного регистра в другой, взятие обратного кода, сдвиг и т.д Элементарная функциональная операция, выполняемая за один тактовый интервал и приводимая в действие одним управляющим сиг- налом называется микрооперацией. Управляющий блок вырабатывает распределенную во времени последовательность управляющих сигналов, порождающих

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

набор комбинационных схем, которые в нужных тактах возбуждают соответствующие управляющие сигналы. 2 Управляющий автомат с хранимой в памяти логикой. Каждой выполняемой в операционном устройстве операции ставится в соответствие совокупность хранимых в памяти слов - микрокоманд, содержащих информацию о микрооперациях, подлежащих выполнению в течение одного машинного такта, и указание, какая микрокоманда должна выполняться следующей.

Последовательность микрокоманд, обеспечивающая выполнение некоторой операции например, умножения , называется микропрог- раммой данной операции. Функционирование вычислительного устройства может быть опи- сано совокупностью реализуемых в нем микропрограмм. Это в ряде случаев удобный, хотя и не единственно возможный способ описания цифровых устройств. ПРИНЦИПЫ ОРГАНИЗАЦИИ АРИФМЕТИКО-ЛОГИЧЕСКИХ УСТРОЙСТВ 2Арифметико-логические устройства

АЛУ 0 служат для выполнения арифметических и логических преобразований над словами, называе- мыми в этом случае операндами. АЛУ служит основной частью опера- ционного блока ЭВМ 4 - Выполняемые АЛУ операции можно разделить на следующие груп- пы - операции двоичной арифметики для чисел с фиксированной запятой - операции двоичной арифметики для чисел с плавающей запя- той - операции десятичной арифметики - операции индексной арифметики - операции специальной арифметики - операции над

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

и деление длинные операции . Группу логических операций составляют операции дизъюнкция логическое ИЛИ и конъюнкция логическое И над многоразрядными двоичными словами, а также операция сравнения кодов на равенство. Специальные арифметические операции включают в себя нормали- зацию, арифметический сдвиг сдвигаются только цифровые разряды, а знаковый остается на месте , логический сдвиг знаковый разряд сдвигается вместе с цифровыми . 1Классификация АЛУ

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

разрядами операндов. По способу представления чисел различают АЛУ 1 для чисел с фиксированной запятой 2 для чисел с плавающей запятой 3 для десятичных чисел. По характеру использования элементов и узлов АЛУ делятся на блочные и многофункциональные. В блочном АЛУ операции над числами с фиксированной и плавающей запятой, десятичными числами и алфа- витно-цифровыми полями выполняются в отдельных блоках, при этом повышается скорость работы, так как

блоки могут параллельно выполнять соответствующие операции, но значительно возрастают - 5 - затраты оборудования. В многофункциональных АЛУ операции для всех форм представления чисел выполняются одними и теми же схемами, которые коммутируются нужным образом в зависимости от требуемого режима работы. СТРУКТУРА И ФОРМАТ КОМАНД. КОДИРОВАНИЕ КОМАНД. Все возможные преобразования дискретной информации могут быть сведены к четырем основным видам 1 передача информации в пространстиве 2 хранение информации 3

логические операции 4 арифметические операции. ЭВМ, являющаяся универсальным преобразователем дискретной информации, выполняет все указанные виды преобразований. Обработка информации в ЭВМ осуществляется автоматически путем программного управления. Программа представляет собой алго- ритм обработки информации, записанный в виде последовательности команд, которые должны быть выполнены машиной для получения реше- ния задачи.

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

одной команды. Содержанием машинной операции могут быть запоминание в памяти, передача, арифметическое или логическое преобразование машинных слов, а также некоторые вспомогательные процедуры. По характеру выполняемых операций различают следующие основ- ные группы команд 1 команды арифметических операций для чисел с фиксированной и плавающей запятой 2 команды десятичной арифметики 3 команды логических операций 4 команды передачи кодов 5 команды ввода-вывода 6 команды передачи управления 7 команды задания

режима работы машины. В команде, как правило, содержатся не сами операнды, а информация об адресах ячеек памяти или регистрах, в которых они находятся. Код команды можно представить состоящим из нескольких частей или полей, имеющих определенное функциональное назначение при кодировании командной информации. Команда в общем случае состоит из операционной и адресной частей. В свою очередь, эти части - 6 - могут состоять из нескольких полей.

Операционная часть содержит код операции, который задает вид операции. Адресная часть команды содержит информацию об адресах операндов и результата операции, а в некоторых случаях информацию об адресе следующей команды. Структура команды определяется составом, назначением и рас- положением полей в команде. Форматом команды называют ее струк- туру с разметкой номеров разрядов бит , определяющих границы отдельных полей команды, или с указанием числа бит в определенных полях.

ПЕРВЫЙ СЕМЕСТР ЛЕКЦИЯ N 15 СПОСОБЫ АДРЕСАЦИИ Адресный код - это информация об адресе операнда, содержаща- яся в команде. Исполнительный адрес - это номер ячейки памяти, к которой производится фактическое обращение. В современных ЭВМ адресный код, как правило, не совпадает с исполнительным адресом. Выбор способов адресации, формирования исполнительного адре- са и преобразования адресов является одним из важнейших вопросов разработки ЭВМ. Рассмотрим способы адресации, используемые в современных

ЭВМ 1 2Подразумеваемый операнд0. В команде может не содержаться явных указаний об операнде в этом случае операнд подразумевается и фактически задается кодом опера- ции команды. 2 2Подразумеваемый адрес0. В команде может не содержаться явных указаний об адресе участвую- щего в операции операнда или адресе, по которому должен быть раз- мещен результат операции, но этот адрес подразумевается. 3 2Непосредственная адресация0. В команде содержится не адрес операнда, а непосредственно сам операнд.

При непосредственной адресации не требуется обращения к памяти для выборки операнда и ячейки памяти для его хранения. Это способствует уменьшению времени выполнения программы и занимаемо- го ею объема памяти. Непосредственная адресация удобна для хране- ния различного рода констант. 4 2Прямая адресация0. В адресной части команды может быть непосредственно указан испол- нительный адрес. 5 2Относительная базовая адресация0. При этом способе адресации исполнительный адрес определяется как

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

задаваемого базовым адресом. 6 2Укороченная адресация0. Для уменьшения длины кода команды часто применяется так называемая укороченная адресация. Суть ее сводится к тому, что в команде задаются только младшие разряды адресов, а старшие разря- ды при этом подразумеваются нулевыми. Такая адресация позволяет использовать только небольшую часть фиксированных ячеек в начале всей адресуемой области памяти, и поэтому применяется лишь сов- местно с другими способами

адресации. 2Регистровая адресация0 является частным случаем укороченной, когда в качестве фиксированных ячеек с короткими адресами исполь- зуются регистры ячейки сверхоперативной или местной памяти про- цессора. Например, если таких регистров 16, то для адреса доста- точно четырех двоичных разрядов. Регистровая адресация наряду с сокращением длины адресов операндов позволяет увеличить скорость выполнения операций, так как уменьшается число обрашений к опера- тивной памяти.

7 2Косвенная адресация0. Адресный код команды в этом случае указывает адрес ячейки памяти, в которой находится адрес операнда или команды. Косвенная адреса- ция широко используется в малых и микроЭВМ, имеющих короткое ма- шинное слово, для преодоления ограничений короткого формата ко- манды совместно используются регистровая и косвенная адресация . 8 2Адресация слов переменной длины0. Эффективность вычислительных систем, предназначенных для обработки данных, повышается, если имеется

возможность выполнять операции со словами переменной длины. В этом случае в машине может быть предусмотрена адресация слов переменной длины, которая обычно реализуется путем указания в команде местоположения в памяти начала слова и его длины. 9 2Стековая адресация0. Стековая память, реализующая безадресное задание операндов, особенно широко используется в микропроцессорах и миниЭВМ. Стек представляет собой группу последовательно пронумерован-

ных регистров или ячеек памяти, снабженных указателем стека, в котором автоматически при записи и считывании устанавливается номер адрес последней занятой ячейки стека вершины стека . При операции записи заносимое в стек слово помещается в следующую по порядку свободную ячейку стека, а при считывании из стека извле- кается последнее поступившее в него слово. 10 2Автоинкрементная и автодекрементная адресации0.

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

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

Автоинкрементная и автодекрементная адресации могут рассмат- риваться как упращенный вариант индексации - весьма важного механизма преобразования адресных частей команд и организации вычислительных циклов, поэтому их часто называют автоиндексацией. 11 2Индексация0. Для реализуемых на ЭВМ методов решения математических задач и обработки данных характерна цикличность вычислительных про- цессов, когда одни и те же процедуры выполняются над различными операндами, упорядоченно

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

Такой процесс называется моди- фикацией команд, и основан на возможности выполнения над кодами команд арифметических и логических операций. Управление вычислительным циклом должно обеспечивать повто- рение цикла нужное число раз, а затем выход из него. Автоматическая модификация команд и управление вычислитель- ными циклами в современных ЭВМ обеспечиваются механизмом индекса- ции. Это понятие включает в себя специальный способ кодирования команд, командные и аппаратурные средства

задания и выполнения модификации команд и управления вычислительными циклами. Упомяну- тые средства часто называют индексной арифметикой. Для выполнения индексации в машину вводятся так называемые индексные регистры. Исполнительный адрес при индексации формиру- ется путем сложения адресного кода команды смещения с содержи- мым индексного регистра индексом , а при наличии базирования - и с базовым адресом.

Для управления индексацией используются команды, задающие операции над содержимым индексных регистров - команды индексной арифметики. Можно отметить основные виды индексных операций - засылка в соответствующий индексный регистр начального значения индекса - изменение индекса - проверка окончания циклических вычислений. ПЕРВЫЙ СЕМЕСТР ЛЕКЦИЯ N 16-17 2МИКРОПРОЦЕССОР INTEL 8086 Структуру команд и методы адресации мы далее будем рас- сматривать на примере широко распространенного

микропроцессора Intel 8086. Рассмотрим аппаратную модель этого микропроцессора. АППАРАТНАЯ МОДЕЛЬ ПРОЦЕССОРА 8086 Выполнение программы в ЭВМ представляет собой циклическую последовательность приведенных ниже действий, образующих цикл команды 1 выборка команды из памяти и формирование адреса следующей по порядку команды 2 считывание операнда из памяти, если это требуется по смы- слу команды 3 собственно выполнение команды 4 запись результата в

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

Оба устройства могут работать парал- лельно и в большинстве случаев обеспечивают значительное совмеще- ние выборки и выполнения команд. В результате этого время выборки команды как-бы исчезает из цикла команды, так как операционное устройство выполняет команды, уже выбранные шинным интерфейсом. Операционное устройство содержит группу общих регистров, арифметико-логическое устройство АЛУ , основу которого составля- ет комбинированный 16-разрядный сумматор с последовательно-парал- лельным

переносом, регистр флажков и несколько регистров для временного хранения операндов и результата операции. Оно выполня- ет команды, обменивается данными и адресами с шинным интерфейсом, оперирует общими регистрами и флажками. В его составе имеется блок микропрограммного управления, который дешифрует команды и формирует необходимые управляющие сигналы. Операционное устрой- ство изолированно от внешней шины, за исключением нескольких внешних сигналов. Шинный интерфейс выполняет для операционного устройства все операции обмена.

Данные передаются между процессором и памятью или портами ввода-вывода по запросам операционного устройства. Когда операционное устройство занято выполнением команды, шинный интерфейс самостоятельно инициирует опережающую выборку из памяти очередных команд. Команды хранятся во внутренней регистровой - 2 - памяти, называемой очередью буфером команд. Очередь команд выполняет по существу функции регистра команды процессора. Длина очереди составляет 6 байт.

Очередь команд работает по принципу FIFO первым пришел, первым вышел , который сохраняет на выходе порядок поступления команд. Шинный интерфейс инициирует выборку из памяти следующего командного слова, когда в очереди оказываются два свободных пустых байта. В большинстве случаев очередь команд содержит минимум один байт потока команд, и операционное устройство не ожидает выборки команды. Конечно, очередь обеспечивает положительный эффект при естественном порядке

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

считывания или записи в память или порт ввода-вывода. В состав шинного интерфейса входят несколько регистров и сумматор, которые формируют 20-разрядный физический адрес памяти из двух 16-разрядных логических адресов сегмента базы и смеще- ния. При готовности операционного устройства выполнять команду оно считывает из очереди байт, а затем выполняет предписанную ко- мандой операцию. При многобайтных командах из очереди считываются и другие байты команды.

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

операционное устройство ожидает завершения те- кущего цикла шины. ПРОГРАММНАЯ МОДЕЛЬ ПРОЦЕССОРА 8086 Программная модель процессора - это функциональная модель, используемая программистом при разработке программ в кодах ЭВМ или на языке ассемблера. В такой модели игнорируются многие аппа- ратные особенности в работе процессора. В процессоре 8086 имеется несколько быстрых элементов памя- ти, которые называются регистрами.

Каждый из регистров имеет уникальную природу и предоставляет определенные возможности, которые другими регистрами или ячейками памяти не поддерживаются 3 - Регистры разбиваются на четыре категории регистры общего назначения, регистр флагов, указатель команд и сегментные регист- ры. Все регистры 16-разрядные. Формат регистров общего назначения 15 0 T AX AH AL

L T BX BH BL L T CX CH CL L T DX DH DL L SI L DI L BP L SP L Формат регистра флагов 15 0 T T T T T T T T T T T T T T T FLAGS OF DF IF TF SF ZF AF PF CF L Указатель команд 15 0 IP L 4 - Формат сегментных регистров 15 0 CS L DS L ES L SS L РЕГИСТР ФЛАГОВ Этот 16-разрядный регистр содержит всю необходимую информа- цию о

состоянии процессора 8086 и результатах выполнения послед- ней команды. 15 11 10 9 8 7 6 4 2 0 T T T T T T T T T T T T T T T FLAGS OF DF IF TF SF ZF AF PF CF L Битовые флаги 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 приводит к некоторым интересным моментам. Один из них состоит в том, что только блок памяти размером в 64К в любой момент может адресоваться

через сегментный регистр, так как 64К - это максимальный объем памяти, к которой можно адресоваться с помощью 16-битового смещения. Это может оказаться неприятным при работе с большим более 64К объ- емом памяти, так как и значение сегментного регистра, и смещение, придется часто изменять. Адресация к большим блокам памяти в процессоре 8086 может представлять еще большую трудность, поскольку, в отличие от регистров общего назначения, сегментные регистры не могут исполь- зоваться в качестве

источников или приемников в арифметических и логических команд. Фактически, единственная операция, которую можно выполнять с сегментными регистрами, состоит в копировании значений между сегментными регистрами и другими общими регистрами - 10 - или памятью. Вторая особенность использования сегментов состоит в том, что каждая ячейка памяти адресуется через многие возможные соче- тания сегмент смещение .

Например, адрес памяти 100h адресуется с помощью следующих значений сегмент смещение 0 100h, 1 F0h, 2 E0h и т.д так как при вычислении всех этих пар сегмент сме- щение получается значение адреса 100h. Аналогично регистрам общего назначения каждый сегментный регистр играет свою, конкретную роль. Регистр CS указывает на код программы, DS указывает на данные, SS - на стек. Сегментный регистр ES - это дополнительный сегмент, который может использо- ваться так,

как это необходимо. Рассмотрим сегментные регистры более подробно. Регистр CS указывает на начало блока памяти объемом 64К, или сегмент кода, в котором находится следующая выполняемая команда. Следующая команда, которую нужно выполнить, находится по смеще- нию, определяемому в сегменте кода регистром IP, то есть на нее указывает адрес в форме сегмент смещение CS IP. Процессор 8086 никогда не может извлечь команду из сегмента, отличного от того, который определяется

регистром CS. Регистр CS можно изменять с помощью многих команд, включая отдельные команды перехода, вызовы и возвраты управления. Ни при каких обстоятельствах регистр CS нельзя загрузить непосредствен- но. Никакие другие режимы адресации или указатели памяти, отлич- ные от IP, не могут нормально работать относительно регистра CS. Регистр DS указывает на начало сегмента данных, которые представляет собой блок памяти объемом 64К,

в котором находится большинство размещенных в памяти операндов. Обычно для ссылки на адреса памяти используются смещения, предполагающие использование регистров BX, SI или DI. В основном сегмент данных представляет собой то, о чем говорит его название как правило это сегмент, в котором находится текущий набор данных. Регистр ES указывает на начало блока памяти объемом 64К, который называется дополнительным сегментом.

Как и подразумевает его название, дополнительный сегмент не служит для какой-то конкретной цели, но доступен тогда, когда в нем возникает необхо- димость. Иногда сегмент ES используется для выделения дополни- тельного блока памяти объемом 64К для данных. Однако доступ к памяти в дополнительном сегменте менее эффективен, чем доступ к памяти в сегменте данных. Особенно полезен дополнительный сегмент, когда используются строковые команды.

Все строковые команды, которые выполняют запись в память, используют в качестве адреса, по которому нужно выполнить запись, пару регистров ES DI. Это означает, что регистр - 11 - ES особенно полезен при использовании его в качестве целевого сегмента при копировании блоков, сравнении строк, просмотре памяти и очистке блоков памяти. ПЕРВЫЙ СЕМЕСТР ЛЕКЦИЯ N 18-19 РАБОТА МИКРОПРОЦЕССОРА 8086

С ПАМЯТЬЮ И РЕГИСТРАМИ УСТРОЙСТВ ВВОДА-ВЫВОДА ОРГАНИЗАЦИЯ ПАМЯТИ Микропроцессор 8086 обеспечивает адресацию памяти емкостью 1 Мбайт. Адресное пространство памяти представляет собой одномер- ный массив байт, каждый из которых имеет 20-битный физический адрес. Минимальной адресуемой единицей памяти является байт. Любые два смежных байта в памяти образуют 16-битное слово.

16-битовое слово всегда заносится в память так, что старший байт находится в ячейке с большим номером. Адресом слова считается адрес его млад- шего байта. Четыре смежных байта памяти образуют 32-битное слово двой- ное слово , именуемое указателем и представляющее собой полный адрес памяти сегмент смещение . Старшее слово при этом задает базовый адрес начало сегмента , а младшее - смещение. Такие ука- затели применяются для адресации данных и команд, находящихся вне

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

Следовательно, указатель стека SP всегда необходимо инициализировать на четный адрес. Отметим, что выравнивание команд незначительно увеличивает производительность процессора, так как устройство шинного интер- фейса выбирает их в очередь команд с опережением. Сегментация Программы используют пространство памяти в 1 Мбайт в виде сегментов. Сегмент представляет собой логическую единицу памяти размером 64

Кбайт. Он состоит из смежных ячеек памяти и является независимой и отдельно адресуемой единицей памяти. Каждому сег- менту программой назначается базовый начальный адрес, являю- щийся адресом его первого байта в адресном пространстве памяти. Все сегменты начинаются на 16-байтных границах памяти, называемых границами параграфов. Других ограничений на размещение сегментов в памяти нет. Сегменты могут быть соседними смежными , неперекрывающимися непересесекающимися , частично или полностью

перекрывающимися 2 - Физическая ячейка памяти может принадлежать одному или нескольким сегментам. Зарезервированные области памяти Две области адресного пространства памяти зарезервированы для выполнения особых функций, связанных с обработкой прерываний и системным сбросом. Этими областями являются первые 128 байт физические адреса 0-0007F и последние 16 байт физические адреса FFFF0-F . Данные области использовать для других целей нельзя.

ВВОД-ВЫВОД Процессор 8086 имеет большое адресное пространство ввода- вывода, изолированное от пространства памяти, и специальные команды, которые передают данные между регистрами процессора и портами в пространстве ввода-вывода. Допускается также организа- ция ввода-вывода, отображенного на память, чтобы использовать для ввода-вывода всю систему команд и допустимые режимы адресации памяти. Для быстрых передач блоков данных применяются контроллеры прямого доступа к памяти и специализированные

процессоры ввода- вывода. Адресное пространство ввода-вывода содержит до 64К 8-битовых портов или до 32К 16-битовых портов. Команды IN ввод и OUT вывод передают данные между аккумуляторами AL байты или AX слова и адресуемыми портами. Восемь ячеек F8-FF в пространстве ввода-вывода зарезервиро- ваны для системных целей, и использовать их в прикладных програм- мах не рекомендуется. ОРГАНИЗАЦИЯ ПАМЯТИ ЭВМ

ТИПА IBM PC Память ЭВМ IBM PC организована следующим образом Первые 640 Кбайт адресного пространства с адресами от 0 до 9FFFF выделены под оперативную память, а остальные 384 Кбайт c адресами от A0000 до F используются для размещения ПЗУ и отображаемого на память ввода-вывода. В начале области ОЗУ размещена область векторов прерываний 256 векторов, занимающих по 4 байта памяти.

После них расположены области данных и программ операционной системы. Оставшуюся часть ОЗУ занимают программы пользователя. Адреса в области ПЗУ и отображаемого ввода-вывода распреде- лены следующим образом A0000-AFFFF - отображенная на память область ввода вывода дисплея в графическом режиме B0000-B7FFF - отображенная на память область ввода вывода дисплея в текстовом монохромном режиме -

3 - B8000-BFFFF - отображенная на память область ввода вывода дисплея в цветном текстовом режиме C0000-EFFFF - область ПЗУ жесткого диска, видеоадаптера и других устройств F0000-F - область ПЗУ программ тестирования ЭВМ при запуске, начальной загрузки операционной системы и базовой систе- мы ввода-вывода. В ЭВМ IBM PC используются порты с адресами 0000-03FF, причем адреса 0000-00FF используются системной платой, а остальная область выделена для устройств пользователей.

РЕЖИМЫ АДРЕСАЦИИ МИКРОПРОЦЕССОРА INTEL 8086 Команда разделяется на группы бит поля , причем поле кода операции КОП показывает, что должен делать процессор, а осталь- ные поля, называемые операндами, идентифицируют требуемую команде информацию. Операнд может содержать данное, часть адреса данного, косвенный указатель данного или другую информацию, относящуюся к обрабатываемым командой данным. Общий формат команды T T T Код операции Операнд Операнд

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

Рассмотрим наиболее типичные режимы адресации микропроцессора 8086. Они разделяются на два класса - режимы адресации данных и режимы адресации переходов. РЕЖИМЫ АДРЕСАЦИИ ДАННЫХ Различают следующие режимы адресации данных 1 Непосредственный - данное длиной 8 или 16 бит является частью команды. Операнд Данное L - 4 - 2 Прямой - 16-битный эффективный адрес данного является частью команды.

Операнд Память EA Данное L L 3 Регистровый - данное содержится в определяемом командой регистре. 16-битный операнд может находиться в регистрах AX, BX, CX, DX, SI, DI, SP или BP, а 8-битный - в регистрах AL, AH, BL, BH, CL, CH, DL или DH. Операнд Регистр Регистр Данное L L 4 Регистровый косвенный - эффективный адрес данного находится в базовом регистре

BX или одном из индексных регистров BX EA SI DI L - Операнд Регистр Память Регистр EA Данное L L L 5 Регистровый относительный - эффективный адрес равен сумме 8- или 16-битного смещения и содержимого базового или индексного регистров BX - EA BP 8-битное смещение SI 16-битное смещение DI L - L - Операнд 1 Регистр Операнд 2 Память Регистр

Адрес Смещение Данное L L L L - 5 - 6 Базовый индексный - эффективный адрес равен сумме содержимо- го базового и индексного регистров EA BX SI BP DI L - L - Операнд Регистр T Базовый Индексный Индекс регистр регистр L Память L T - EA Данное Регистр L-T L L Базовый адрес L 7 Относительный базовый индексный - эффективный адрес равен сумме 8- или 16-битного смещения и базово-

индексного адреса EA BX SI 8-битное смещение BP DI 16-битное смещение L - L - L - Операнд 1 Операнд 2 T Базовый Индексный Смещение регистр регистр L T T L Регистр Память - EA L Индекс Данное L L-T L Регистр L Базовый адрес L Допустим, что регистр BX содержит число 0158 в 16-ричном коде, регистр DI - число 10A5, смещение равно 1B57, сегментный регистр

данных DS содержит число 2100. Тогда, если в качестве сегментного регистра применяется DS 6 - различные режимы адресации дают следующие эффективные и физичес- кие адреса 1 Прямой Эффективный адрес EA 1B57, Физический адрес 1B57 21000 22B57. 2 Регистровый косвенный с участием регистра BX Эффективный адрес EA 0158, Физический адрес 0158 21000 21158. 3 Регистровый относительный с участием регистра

BX Эффективный адрес EA 0158 1B57 1CAF, Физический адрес 01CAF 21000 22CAF. 4 Базовый индексный с участием регистров BX и DI Эффективный адрес EA 0158 10A5 11FD, Физический адрес 011FD 21000 221FD. 5 Относительный базовый индексный с участием регистров BX и DI Эффективный адрес EA 0158 10A5 1B57 2D54, Физический адрес 02D54 21000 23D54.

РЕЖИМЫ АДРЕСАЦИИ ПЕРЕХОДОВ Различают следующие режимы адресации переходов 1 Внутрисегментный прямой - эффективный адрес перехода равен сумме 8- или 16-битного смещения и текущего содержимого IP. Когда смещение имеет длину 8 бит, этот режим называется коротким пере- ходом. Этот режим допустим в условных и безусловных переходах, но в команде условного перехода смещение может иметь длину только 8 бит. Операнд IP IP EA Смещение

L L L 2 Внутрисегментный косвенный - эффективный адрес перехода есть содержимое регистра или ячейки памяти, которые указываются в любом режиме кроме непосредственного адресации данных. Содержи- мое IP заменяется эффективным адресом перехода. Данный режим допустим только в командах безусловного перехода. 3 Межсегментный прямой - заменяет содержимое IP первым операн- дом команды, а содержимое

CS - вторым операндом. Назначение данного режима адресации - обеспечить переход из одного сегмента кода в другой 7 - Операнд 1 IP Операнд 2 CS Смещение Сегмент L L L L 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 - старший байт. Пример однобайтной команды с неявными операндами

КОП L Пример однобайтной команды с регистровым режимом адресации T КОП REG L Операция регистр-регистр T T КОП 1 1 REG R M L L Операция регистр-память без смещения T T КОП MOD REG R M L L Операция регистр-память со смещением T T КОП MOD REG R M DISP-LO DISP-HI L L L L Непосредственный операнд в регистр

T T КОП MOD КОП R M DATA-LO DATA-HI L L L L Непосредственный операнд в память с 16-битным смещением T T КОП MOD КОП R M DISP-LO DISP-HI DATA-LO DATA-HI L L L L L L В большинстве кодов операций имеются следующие однобитные индикаторы Бит 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-битная операция с 8-битным непосредственным операндом, который расширяется со знаком до 16 бит - S 1 и W 1. При работе с небольшими числами последний вариант допускает использование однобайтного

непосредственного операнда. Бит V. Применяется в командах сдвигов для определения числа сдвигов. Бит Z. Используется в команде REP. Сегментный регистр определяется двумя битами, а любой другой регистр - тремя. Таблица адресов регистров T T Адрес Регистры Адрес Сегментный регистра T регистра регистр W 1 W 0 00 ES 000 AX AL 01 CS 001 CX CL 10 SS 010 DX DL 11 DS 011

BX BL L 100 SP AH 101 BP CH 110 SI DH 111 DI BH L Если на код операции и режим адресации отводится два байта, то второй байт имеет одну из следующих форм T T T T MOD КОП R M или MOD REG R M L L Первая из них предназначена для однооперандных команд или для двухоперандных команд с неявным заданием одного из операндов. Вторая форма характерна для двухоперандных команд, причем поле

REG определяет регистр, который в зависимости от значения бита D является операндом-источником или операндом-получателем 10 - Операнд, указываемый полями MOD и R M, определяется в соот- ветствии со следующей таблицей T MOD T T T R M 11 00 01 10 T W 0 W 1 000 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 111 BX BX D8 BX D16 BH DI Сегментный регистр DS DS DS L 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. Чтобы изменить используемые в соответствии с таблицей сег- ментные регистры, предусмотрена специальная однобайтная команда, назывемая префиксом переопределения замены сегмента. Она имеет следующий формат T T 0 0 1 REG 1 1 0 L Если команде предшествует префикс переопределения сегмента, при обращении к данным в процессе ее выполнения участвует сег- ментный регистр

REG. Регистр DS можно заменить на CS, SS или ES, а регистр SS при участии регистра BP - на DS, CS или ES. Замену нельзя производить в следующих специальных случаях - при вычислении адреса следующей выполняемой команды в качестве сегментного регистра всегда применяется CS - при участии в адресации регистра SP сегментным регистром всег- да служит SS - в цепочечных командах в качестве сегментного регистра операн- да-получателя всегда используется

ES. ВРЕМЯ ВЫПОЛНЕНИЯ КОМАНД Затраты времени на выполнение одной команды можно опреде- лить, умножая число тактов синхронизации, необходимых для выпол- нения команды, на период синхронизации. Это время можно выразить в виде суммы базового времени выполнения которое зависит от команды и режима адресации и времени вычисления эффективного адреса, если привлекается операнд из памяти. Базовое время выполнения предполагает, что выполняемая команда уже выбрана и находится в очереди команд.

В противном случае требуется учесть дополнительные такты синхронизации, необходимые для выборки ко- манды. Базовое время выполнения некоторых типичных команд микропро- цессора 8086 8088 12 - T T КОМАНДА ЧИСЛО ЧИСЛО ТАКТОВ ПЕРЕДАЧ 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 - Время вычисления эффективного адреса зависит от режима адре- сации T ЭФФЕКТИВНЫЙ АДРЕС ЧИСЛО ТАКТОВ Прямой 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 2ЯЗЫК АССЕМБЛЕРА МИКРОПРОЦЕССОРА 8086 Язык ассемблера представляет собой машинный язык в символи- ческой форме, которая более понятна и удобна человеку. Язык ассемблера микропроцессора Intel 8086 является довольно сложным, что в первую очередь

объясняется сегментной организацией памяти и одновременной адресацией четырех сегментов. В языке имеется более 100 базовых символических команд, в соответствии с которыми ассемблер генерирует более 3800 машинных команд. Кроме того, в распоряжении программиста имеется более 20 директив, предназначенных для распределения памяти, инициализации перемен- ных, условного ассемблирования и т.д. Исходная программа на языке ассемблера представляет собой последовательность операторов.

Операторы обычно занимают одну строку. Ассемблер воспринимает операторы в свободном формате, т.е. элементам операторов не назначены фиксированные столбцы и между ними может быть любое число пробелов там, где это необходи- мо. Операторы в исходной программе классифицируются как команд- ные операторы, операторы распределения данных и директивы ассемб- лера. Командные операторы определяют генерируемые ассемблером ма- шинные команды они содержат мнемонику и, при необходимости, один или два операнда.

Каждый командный оператор порождает одну машин- ную команду, формат которой зависит от способа задания операндов. Операторы распределения данных резервируют ячейки памяти для данных программы. Директивы ассемблера содержат специальные указания для ассемблирующей программы и сами по себе не порождают никаких машинных кодов. Формат командных операторов Командные операторы записываются в следующем формате

Метка Префикс Мнемоника Операнд1 ,Операнд2 Комментарий где фигурные скобки обозначают необязательные поля. Рассмотрим назначение отдельных полей данного формата 1 Метка представляет собой определяемое пользователем имя, заканчивающееся двоеточием. Значением метки является текущее значение счетчика ячеек адресов в текущем сегменте кода, т.е. адрес отмеченной команды. Метки как операнды используются только в командах передачи управления, и при этом

двоеточие в конце ссылки на метку не ставится 2 - 2 Префикс заставляет ассемблер сформировать один из префиксных байт - блокировки LOCK или повторения REP, который непосредствен- но предшествует команде. 3 Мнемоника кода операции представляет собой заранее опреде- ленное и неизменяемое имя, которое идентифицирует тип генерируе- мой машинной команды. 4 Операнды задают адреса данных или сами данные, необходимые в

данной команде. 5 Комментарий предназначен только для документирования прог- раммы. Он всегда начинается с точки с запятой. Формат директив ассемблера и операторов распределения данных Директивы ассемблера и операторы распределения данных имеют несколько иной формат Имя Директива Операнды Комментарий Рассмотрим назначение отдельных полей данного формата 1 Имя директивы, в отличие от метки, никогда не заканчивается двоеточием.

Некоторые директивы требуют обязательного наличия метки. 2 Директива является одним из ключевых неизменяемых слов ассемблера и определяет его действия в процессе ассемблирования. Директивы используются программистом для распределения памяти, обеспечения связи между программными модулями и работы с символи- ческими именами. 3 Операнды конкретизируют действия, выполняемые по данной директиве.

4 Поле комментария аналогично такому же полю в командных опе- раторах. 2ЭЛЕМЕНТЫ ОПЕРАТОРОВ Дадим определения основных терминов, которые будут использо- ваны в дальнейшем. Ключевые зарезервированные слова представляют собой имена, имеющие для ассемблера строго определенный смысл. Их нельзя использовать в качестве идентификаторов. Идентификатор как общий термин для меток и имен переменных - это определяемая программистом последовательность

символов. Пер- вым символом в последовательности должна быть буква или один из символов , подчеркивание или знак вопроса. В качестве последую- щих символов можно также использовать цифры. Максимальная длина идентификатора 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 и заносит в него код 000A 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 символов и должна быть заключена в одиночные кавычки. 2СЕГМЕНТЫ И ПРОЦЕДУРЫ Программы, написанные на языке ассемблера процессора 8086, могут быть разделены

на один или несколько сегментов. Каждый логический сегмент имеет уникальное имя и однозначно отображается в сегментах памяти при загрузке программы для ее выполнения. Для определения начальной и конечной ячеек логического сегмента в макроассемблере предусмотрены директивы SEGMENT начало сегмента и ENDS конец сегмента . Обычно часть программы, содержащая коды машинных команд 5 - объединяется в кодовый сегмент. Переменные, константы, таблицы и другие данные объединяются в сегмент

данных. Для хранения проме- жуточных данных и при вызове подпрограмм используется сегмент стека. Иногда для хранения данных может использоваться четвертый, дополнительный сегмент. Директива ASSUME указывает ассемблеру, к какому сегментному регистру относится тот или иной логический сегмент. Если вся программа размещается в одном сегменте памяти, то эта директива указывает, что все сегментные регистры адресуют один и тот же сегмент.

В зависимости от используемой модели памяти в программе могут использоваться один или несколько сегментов кода и один или несколько сегментов данных. Стековый сегмент как правило один. 2СТЕМА КОМАНД МИКРОПРОЦЕССОРА 8086 Систему команд процессора 8086 образуют 113 базовых команд, многие из которых допускают использование разнообразных режимов адресации. По функциональному назначению выделяют спедующие группы ко- манд - команды передачи данных - команды

арифметических операций - команды логических операций и сдвигов - команды передачи управления - цепочечные команды - команды управления микропроцессором. 2КОМАНДЫ ПЕРЕДАЧИ ДАННЫХ Команды передачи данных разделяют на 4 подгруппы - общие команды передачи данных - стековые команды - команды ввода-вывода - команды передачи цепочек байт или слов. Команды передачи данных не модифицируют состояния флажков.

Исключение составляют команды POPF и SAHF, прямо воздействующие на регистр флажков. Далее будут использоваться следующие обозначения dst - получатель, src - источник, mem - адрес памяти смещение , заданный любым методом адресации, reg - регистр общего назначения, sreg - сегментный регистр, aс - регистр-аккумулятор AL или AX , data - непосредственные данные 6 - 2ОБЩИЕ КОМАНДЫ ПЕРЕДАЧИ ДАННЫХ В эту подгруппу входят команды, осуществляющие передачу регистр-регистр,

регистр-память и память-регистр. Наиболее мощной среди них является команда 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 2СТЕКОВЫЕ КОМАНДЫ Каждая команда занесения данных в стек

PUSH имеет соот- ветствующую ей команду извлечения из стека POP. Для адресации вершины стека используется стековый указатель SP. Все стековые команды манипулируют только словами и сопровождаются автоматичес- кой модификацией указателя стека при включении в стек произво- дится декремент, а при извлечении из стека - инкремент SP. До выполнения стековых команд регистры SP и SS должны быть инициализированы.

Команда PUSH включает в стек содержимое адресуемого регистра или ячейки памяти, а команда POP извлекает содержимое вершины стека и передает его в регистр или ячейку памяти. Команды POSHF и POPF предназначены для временного запомина- ния в стеке и последующего восстановления из стека содержимого регистра флагов. С их помощью можно изменять состояние флага трассировки TF, так как команд прямого воздействия на этот флаг нет 8 -

Формат команд PUSH mem reg POP mem reg PUSH sreg POP sreg PUSHF POPF 2КОМАНДЫ ВВОДА-ВЫВОДА Команда ввода IN и команда вывода OUT допускают работу как с байтами, так и со словами. Команда IN загружает данные из задан- ного порта в аккумулятор, а команда OUT выполняет передачу из аккумулятора в порт. Для портов ввода-вывода в диапазоне 00-FF можно использовать

прямую укороченную адресацию, а остальные порты в диапазоне 100-FFFF можно адресовать только косвенно через регистр DX. Формат команд IN ac,port OUT port,ac прямая укороченная адресация IN ac,DX OUT DX,ac косвенная адресация 2КОМАНДЫ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ Процессор 8086 имеет широкий набор команд, реализующих арифметические операции, что позволяет применять его в сложных системах обработки данных.

Арифметические операции выполняются над целыми числами четы- рех типов беззнаковыми двоичными, знаковыми двоичными, упакован- ными десятичными и неупакованными десятичными. Длина чисел может быть 8 или 16 бит. Диапазоны чисел беззнаковое 8-битное 0 - 255, беззнаковое 16-битное 0 - 65535, знаковое 8-битное -128 - 127, знаковое 16-битное -32768 - 32767. Команды арифметических операций влияют на состояние флажков

OF, SF, ZF, AF, PF и CF. Одни и те же команды сложения и вычитания могут использо- ваться для операций как над беззнаковыми, так и знаковыми числа- ми. Контроль над типами чисел должен выполнять сам программист. 2КОМАНДЫ СЛОЖЕНИЯ Команда 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 2КОМАНДА СРАВНЕНИЯ Команда сравнения CMP выполняет вычитание второго операнда из первого, но нигде не запоминает результат операции и влияет только на состояние флажков. Формат команды CMP mem reg1,mem reg2 CMP mem reg,data 2КОМАНДЫ УМНОЖЕНИЯ Микропроцессор 8086 имеет две команды умножения для беззна- ковых

и для знаковых двоичных чисел. Умножение десятичных чисел требует использования специальных команд коррекции, которые будут рассматриваться позднее. Команда MUL Команда умножения беззнаковых целых чисел MUL выполняет умножение адресуемого операнда на содержимое аккумулятора. Общее представление команды имеет вид MUL src При операции над байтами функции аккумулятора выполняет регистр

AL, а 16-битный результат операции помещается в регистр AX. При операции над словами функции аккумулятора выполняет регистр AX, а произведение длиной 32 бита формируется в регистрах DX старшее слово и AX младшее слово . Формат команды MUL reg MUL mem Команда IMUL Команда IMUL аналогична команде

MUL, но сомножители и произ- ведение интерпретируются как знаковые двоичные числа в дополни- тельном коде. Формат команды IMUL reg - 11 - IMUL mem 2КОМАНДЫ ДЕЛЕНИЯ Микропроцессор 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 2КОМАНДЫ ДЕСЯТИЧНОЙ АРИФМЕТИКИ - 12 - Микропроцессор 8086 допускает два представления десятичных чисел упакованный формат

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

десятичных операциях является регистр AL. Операции с числами в форматах BCD и ASCII выполняются в два этапа сначала над 8-битными операндами выполняются обычные операции двоичной арифметики, а затем осуществляется коррекция результата. Команды коррекции являются безадресными, так как работают с содержимым аккумулятора AL. Команды для формата BCD Команда десятичной коррекции для сложения

DAA выполняет кор- рекцию суммы, полученной в результате выполнения команд ADD и ADC и должна следовать непосредственно за ними. Команда десятичной коррекции для вычитания DAS выполняет коррекцию разности, полученной в результате выполнения команд SUB и SBB и должна следовать непосредственно за ними. Форматы команд DAA DAS Команды для формата ASCII Команда десятичной коррекции для сложения

AAA выполняет кор- рекцию суммы, полученной в результате выполнения команд ADD и ADC и должна следовать непосредственно за ними. Команда десятичной коррекции для вычитания AAS выполняет коррекцию разности, полученной в результате выполнения команд SUB и SBB и должна следовать непосредственно за ними. Команда десятичной коррекции для умножения AAM выполняет кор- рекцию произведения, полученного в результате

выполнения команды MUL и должна следовать непосредственно за ней. Старший разряд результата помещается в регистр AH, младший - в AL. Команда десятичной коррекции для деления AAD отличается тем, что должна выполняться перед командой деления DIV. Форматы команд AAA AAS AAM AAD - 13 - 2КОМАНДЫ ЛОГИЧЕСКИХ ОПЕРАЦИЙ И КОМАНДЫ СДВИГОВ 2КОМАНДЫ ЛОГИЧЕСКИХ

ОПЕРАЦИЙ Логические операции представлены командами 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 2КОМАНДЫ СДВИГОВ Команды сдвигов подразделяются на команды простых сдвигов и команды циклических

сдвигов. Циклические сдвиги влияют только на флаги 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 2КОМАНДЫ ПЕРЕДАЧИ УПРАВЛЕНИЯ Сегментная организация программной памяти определяет две

основные разновидности команд передачи управления. Передача управления в пределах текущего сегмента кода называется внутри- сегментной - при этом модифицируется только регистр IP и адрес перехода может быть представлен одним словом. Такая передача управления называется ближней тип NEAR , а ее вариант с сокра- щеннным диапазоном адресов переходов - короткой. Передача управ- ления за пределы текущего сегмента кода называется межсегментной

или дальней тип FAR - при этом необходимо модифицировать содер- жимое регистров IP и CS и адрес перехода представляется двумя словами сегмент смещение . Команды передачи управления процессора 8086 подразделяются на команды безусловных переходов, условных переходов, вызовов, возвратов, управления циклами и команды прерываний. Команды передачи управления не изменяет состояние регистра флагов за исключением команды

IRET . 2КОМАНДЫ БЕЗУСЛОВНЫХ ПЕРЕХОДОВ Команды безусловного перехода имеют общую мнемонику JMP. Команда короткого безусловного перехода содержит во втором байте смещение, которое интерпретируется как знаковое целое. Диапазон значений байта смещения составляет -128 - 127. Если смещение положительное, осуществляется переход вперед, а если отрицатель- ное - переход назад. Команда ближнего безусловного перехода может либо непосред- ственно содержать 16-битное смещение, либо

косвенный адрес 16-битного смещения. Диапазон смещения составляет -32768 - 32767 байт относительно адреса команды, находящейся после команды JMP. Команда дальнего безусловного перехода реализует прямой и - 15 - косвенный межсегментнные переходы. Форматы команд JMP dispL - короткий переход JMP disp - ближний прямой переход

JMP mem reg - ближний косвенный переход JMP addr - дальний прямой переход JMP mem - дальний косвенный переход 2КОМАНДЫ УСЛОВНЫХ ПЕРЕХОДОВ В системе команд процессора 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 - переход по четности. Форматы команд такие же, как у короткого безусловного пере- хода.

2КОМАНДЫ ВЫЗОВОВА ПОДПРОГРАММ Команда вызова подпрограммы 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 - косвенный дальний вызов. 2КОМАНДЫ ВОЗВРАТА ИЗ ПОДПРОГРАММ Каждая подпрограмма должна содержать минимум одну команду возврата RET, которая возвращает управление вызывающей программе. Такая передача управления осуществляется путем извлечения из стека адреса возврата, включенного в него

командой вызова под- программы. Команды внутрисегментного и межсегментного возврата имеют одну и ту же мнемонику RET. Тип команды, соответствующей этой мнемонике, определяется ассемблером автоматически. Формат команды RET - однобайтный вариант, RET data - трехбайтный вариант. Однобайтная команда RET с кодом операции C3 реализует внут- рисегментный возврат. Она передает слово из вершины стека в IP и увеличивает

SP на 2. Однобайтная команда RET с кодом операции CB осуществляет межсегментный возврат. Она передает слово из вершины стека в IP, увеличивает SP на 2. передает слово из вершины стека в CS и снова увеличивает SP на 2. Трехбайтные варианты команд возврата осуществляют те же действия, что и однобайтные, а затем прибавляют содержащиеся в них данные к указателю стека.

Эти команды предназначены для упро- щения возврата из тех подпрограмм, параметры которых передаются в стеке. Прибавление к SP данных из RET эквивалентно удалению пара 17 - метров из стека. 2КОМАНДЫ УПРАВЛЕНИЯ ЦИКЛАМИ Три команды управления циклами применяются для организации программных циклов. В них предусматривается использование регист- ра CX в качестве счетчика цикла. В поле операнда команд управления циклами находится метка первой команды

цикла 8-битовое смещение . Диапазон переходов этих команд составляет -128 - 127 байт от следующей команды. Команда LOOP производит декремент регистра CX и, если содер- жимое CX не равно нулю, происходит переход к началу цикла. В противном случае выполняется следующая по порядку команда. Мнемоники LOOPE LOOPZ определяют одну и ту же машинную команду, которая производит декремент регистра

CX, а затем пере- дает управление в начало цикла, если содержимое CX не равно нулю и ZF 1. В противном случае выполняется следующая по порядку команда. Мнемоники LOOPNE LOOPNZ также определяют одну и ту же машин- ную команду, которая производит декремент регистра CX, а затем передает управление в начало цикла, если содержимое CX не равно нулю и ZF 0. В противном случае выполняется следующая по порядку команда.

2КОМАНДЫ ПРЕРЫВАНИЙ В процессоре 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 2ЦЕПОЧЕЧНЫЕ КОМАНДЫ Под цепочкой понимается последовательность любых контекстно связанных байт или слов, находящихся

в смежных ячейках памяти. В системе команд процессора 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, но используются совместно с командами 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 КОМАНДЫ УПРАВЛЕНИЯ МИКРОПРОЦЕССОРОМ Команды данной группы обеспечивают программное управление различными функциями процессора.

Они делятся на две подгруппы команды установки флагов и команды синхронизации. 2КОМАНДЫ УСТАНОВКИ СОСТОЯНИЯ ФЛАГОВ Команды этой группы предназначены для управления состоянием отдельных флагов. Команды CLC, CMC и STC выполняют соответственно сброс, инвертирование и установку в состояние 1 флага CF. Они часто используются совместно с командами сдвига через перенос RCR и RCL. Форматы команд CLC CMC STC Команды CLD и

STD осуществляют сброс и установку флага нап 21 - равления DF. Состояние этого флага определяет автодекремент или автоинкремент индексных регистров SI и DI в цепочечных командах. Форматы команд CLD STD Команды CLI и STI осуществляют сброс и установку флага пре- рываний IF. После выполнения команды CLI маскируемые аппаратные прерывания будут запрещены.

Форматы команд CLI STI 2КОМАНДЫ СИНХРОНИЗАЦИИ Команда останова HLT переводит процессор в состояние остано- ва. Из этого состояния процессор может быть выведен или сигналом сброса, или аппаратным прерыванием. Команда ожидания WAIT переводит процессор в состояние ожида- ния, в котором он периодически через пять тактов проверяет нали- чие сигнала TEST и при его появлении переходит к выполнению сле- дующей команды.

Команда LOCK, именуемая также префиксом блокировки, блокиру- ет доступ других подсистем к шине процессора. Префикс LOCK может находиться перед любой командой. Команда ESC предназначена для передачи команд и данных мате- матическому сопроцессору. Команда NOP не производит никаких действий и применяется в основном в программных циклах задержки. СПИСОК ЛИТЕРАТУРЫ Курс Вычислительные машины и системы

Раздел 1. Теоретические основы проектирования ЭВМ. Элементы и узлы ЭВМ. Учебные пособия 1. Каган Б.М. Электронные вычислительные машины и системы. 2. Сыпчук П.П Яншин А.А Наумова Н.И. Цифровые вычислительные машины. Математические и логические основы ЦВМ, элементы ЦВМ.

3. Сыпчук П.П Наумова Н.И. Цифровые вычислительные машины. Узлы ЦВМ, элементы оперативных запоминающих устройств ЦВМ. 4. Димитрова М.И Пунджев В.П. 33 схемы с логическими элементами И-НЕ 1988. 5. Димитрова М.И Пунджев В.П. 33 схемы на триггерах 1990. 6. Зельдин Е.А. Импульсные устройства на микросхемах 1991. 7.

Хоровиц П Хилл У. Искусство схемотехники 1993. 8. Барнс Дж. Электронное конструирование Методы борьбы с помехами 1990. Справочники 1. Применение интегральных микросхем в электронной вычислительной технике Справочник. Под ред. Б.Н. Файзуллаева и Б.В. Тарабрина. 2. Шило В.Л. Популярные цифровые микросхемы Справочник,1987 3.

Горшков Б.И. Радиоэлектронные устройства Справочник 1985. 4. Горшков Б.И. Элементы радиоэлектронных устройств Справочник 1989. Раздел 2. Современная элементная база ЭВМ. Микропроцессорные наборы интегральных схем. Учебные пособия 1. Каган Б.М Сташин В.В. Основы проектирования микропроцессорных устройств автоматики. 2. Сташин В.В. и др. Проектирование цифровых устройств на однокристальных микроконтроллерах 1990.

Справочники 1. Полупроводниковые приборы. Диоды высокочастотные, диоды импульсные, оптоэлектронные приборы Справочник 1988. 2. Полупроводниковые приборы. Диоды выпрямительные, стабилитроны, тиристоры Справочник 1988. 3. Полупроводниковые приборы Транзисторы. Справочник Под ред. Н.Н. Горюнова 1982. 4. Полупроводниковые приборы. Транзисторы малой мощности Справочник Под ред. А.В.

Голомедова 1989. 5. Полупроводниковые приборы. Транзисторы средней и большой мощности Справочник Под ред. А.В. Голомедова 1989. 6. Микросхемы для бытовой радиоаппаратуры Справочник И.В.Новаченко и др. 1989. К справочнику издано 3 дополнения . 7. Пароль Н.В Кайдалов С.А. Знакосинтезирующие индикаторы и их применение Справочник. 1988. 8. Иванов В.И. и др. Полупроводниковые оптоэлектронные приборы

Справочник 1988. 9. Федорков Б.Г Телец В.А. Микросхемы ЦАП и АЦП Функционирование, параметры, применение. 1990. 10. Полупроводниковые БИС запоминающих устройств Справочник Под ред. А.Ю.Гордонова и Ю.Н. Дьякова. 1987. 11. Большие интегральные схемы запоминающих устройств Справочник Под ред. А.Ю.Гордонова и Ю.Н. Дьякова. 1990. 12.

Лебедев О.Н. Микросхемы памяти и их применение. 1990. 13. Применение интегральных микросхем памяти Справочник Под ред. А.Ю. Гордонова, А.А. Дерюгина 1994. 14. Шевкопляс Б.В. Микропроцессорные структуры. Инженерные решения Справочник 1990. 15. Левенталь Л Сейвилл У. Программирование на языке ассемблера для микропроцессоров 8080

и 8085. 16. Гуртовцев А.Л Гудыменко С.В. Программы для микропроцессоров. 17. Микропроцессоры и микропроцессорные комплекты интегральных микросхем Справочник в 2-х томах. Под ред. В.А. Шахнова. 18. Проектирование микропроцессорной электронно-вычислительной аппаратуры Справочник В.Г. Артюхов и др. 1988. 19. Однокристальные микроЭВМ.

М. МИКАП, 1994. Раздел 3. Микропропроцессоры серии Intel 80x86. Архитектура ПЭВМ IBM AT. Программирование на ассемблере. Учебные пособия 1. Скэнлон Л. Персональные ЭВМ IBM PC и XT. 2. Абель П. Язык ассемблера для IBM PC и программирования. 3 Дао Л. Программирование микропроцессора 8088 1988.

Справочники 1. Лю Ю-Чжен, Гибсон Г. Микропроцессоры семейства 8086 8088. Архитектура, программирование и проектирование микрокомпьютерных систем 1987. 2. Григорьев В.Л. Программирование однокристальных микропроцессоров 1987. 3. Григорьев В.Л. Микропроцессор i486. Архитектура и программирование в 4-х книгах , 1993. 4. Григорьев В.Л. Архитектура и программирование арифметического сопроцессора 1991. 5.

Брамм П. Брамм Д. Микропроцессор 80386 и его программирование. 1990. 6. Смит Б.Э Джонсон М.Т. Архитектура и программирование микропроцессора INTEL 80386 1992. 7. Паппас К Марри У. Микропроцессор 80386 Справочник 1993. 8. Фролов А.В Фролов Г.В. Защищенный режим процессоров Intel 80286, 80386, 80486 1993. 9. Петрухин В.С Степченков

Ю.А Филин А.В. Персональные ЭВМ на основе архитектуры Intel 80386. В двух книгах 1993. 10. Микропроцессорный комплект К1810 Структура, программирование, применение. Под ред. Ю.М. Казаринова. Раздел 4. Периферийные устройства ЭВМ. Учебные пособия 1. Печатающие устройства для персональных

ЭВМ Справочник Под ред. И.М. Витенберга 1992. 2. Сопряжение датчиков и устройств ввода данных с компьютерами IBM PC 1992. 3. Роджерс Д. Алгоритмические основы машинной графики. 1989. Справочники 1. Джордейн Р. Справочник программиста персональных компьютеров типа IBM PC, XT и AT. 2. Букчин Л.В Безрукий Ю.Л. Дисковая подсистема IBM-совместимых персональных компьютеров. 3. Фролов

А.В Фролов Г.В. Аппаратное обеспечение IBM PC В 2-х частях 1992. 4. Графические адаптеры EGA и VGA Руководство по программированию. 5. Фролов А.В Фролов Г.В. Программирование видеоадаптеров CGA, EGA и VGA 1992. 6. Уилтон Р. Видеосистемы персональных компьютеров IBM PC и PS 2. 1994. Раздел 5. Операционная система

MS DOS ПЕВМ IBM AT. Основные структуры данных. Учебные пособия 1. Кейслер С. Проектирование операционных систем для малых ЭВМ 1986. 2. Фигурнов В.Э. IBM PC для пользователя. 5-е изд. Справочники 1. Данкан Р. Профессиональная работа в MS-DOS. 2. ROM BIOS Справочное руководство. 3. Фролов

А.В Фролов Г.В. Операционная система MS-DOS В 3-х книгах 1991. 4. Богумирский Б.С. Руководство пользователя ПЭВМ В 2-х частях. Раздел 6. Журналы. 1. Библиотека информационной технологии. 2. Монитор. 3. Компьютер Пресс. 4. Мир ПК. 5. Журнал доктора Добба. 6. PC Magazine. Раздел 7. Научно-популярная литература.

1. Растригин Л.А Граве П.С. Кибернетика как она есть. 1975.



Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.