Logo GenDocs.ru

Поиск по сайту:  

Загрузка...

Дубинин Н.М. Организация ЭВМ и Систем - файл Глава 5.doc


Загрузка...
Дубинин Н.М. Организация ЭВМ и Систем
скачать (1177.9 kb.)

Доступные файлы (9):

Введение.doc24kb.10.03.2003 23:05скачать
Глава 1.doc439kb.27.11.2003 21:23скачать
Глава 2.doc868kb.27.11.2003 21:30скачать
Глава 3.doc1403kb.28.11.2003 12:28скачать
Глава 4.doc384kb.04.11.2003 20:36скачать
Глава 5.doc959kb.27.11.2003 21:52скачать
МАИ (серый).wmf
Оглавление.doc45kb.04.11.2003 20:41скачать
Титульный.doc62kb.28.11.2003 12:27скачать

Глава 5.doc

  1   2   3
Реклама MarketGid:
Загрузка...
Глава V. Архитектурные особенности организации ЭВМ различных классов
1. Учебная микроЭВМ "Электроника – 580"
Современные микроЭВМ строятся на базе интегральных схем с высокой степенью интеграции элементов. Их структура и принцип функционирования во многом определяются типом используемого микропроцессора. Широкое распространение получили учебные ЭВМ с микропроцессором фирмы Intel 8080 или его аналога 8-разрядного однокристального параллельного микропроцессора КР 580 ВМ 80А. Для изучения принципа работы ЭВМ и отладки программ для постоянных запоминающих устройств (ПЗУ) предназначено УОУ "Электроника – 580", блок-схема которого представлена на рисунке 5.1. УОУ содержит следующие блоки:

^ АЛУ – арифметико-логическое устройство;

А – аккумулятор – специальный 8-разрядный регистр, используемый для передачи в АЛУ операндов, приема результатов вычислений из АЛУ и временного хранения операндов;

^ ТЕМ – программно-недоступный регистр, хранящий промежуточные результаты выполнения операций;

F – регистр признаков (флажков), предназначенный для фиксации значений логических переменных, изменяющихся в результате выполнения команды;

^ БДК – блок двоично-десятичной коррекции результата операции;

УУ – устройство управления микропрограммного типа, формирующее последовательность управляющих сигналов, соответствующее коду обрабатываемой команды;

^ РК – однобайтный регистр команд, предназначенный для приема первого байта команды;

DСК – дешифратор команд;

DСА – дешифратор адреса ячейки памяти;

^ W, Z – программно-недоступные регистры краткосрочного хранения информации во время выполнения команды;

B, C, D, E, H, L – 8-разрядные регистры общего назначения (РОН);

^ SP – указатель стека, 16-разрядный счетчик адреса операндов и команд, находящихся в стековой памяти;

PC – счетчик команд, предназначенный для определения адреса следующей команды;

^ PA – регистр адреса, хранящий адрес команды или операнда, который передается на шину адреса;

ППЗУ, ОЗУ – полупостоянное и оперативное запоминающие устройства соответственно;

ПДП – узел прямого доступа, осуществляющий выборку информации для дисплея (8-разрядного буквенно-цифрового индикатора) из ячеек ОЗУ и ввод информации с клавиатуры с помощью специальной программы-монитора, хранящейся в ППЗУ;

Ак, Ад, Д – буферы (регистры) аккумулятора, адреса и данных соответственно, предназначенные для увеличения нагрузочной способности шин;

ША, ШД, ВШД – шины адреса, данных и внутренняя шина данных соответственно (16- ,8- , 8- разрядные).

Рис. 5.1. Блок-схема микроЭВМ "Электроника – 580"
УОУ расположено в корпусе, внешний вид которого представлен на
рис. 5.2.

На передней панели УОУ расположены:

- тумблер "Сеть" и сигнальная лампочка включения питания 220 В;

- тумблер "Прогон-отладка", изменяющий режим работы УОУ;

- лампочки "С", "Z", характеризующие состояния разрядов регистра F;

- дисплей (2);

- таблицы команд микропроцессора КР580 (1);

- клавиатура (3), состоящая из 25 управляющих клавиш;

- лампочки "Вход" и "Выход", характеризующие работу магнитофона (МФ) с УОУ.

Рис. 5.2. Внешний вид УОУ
1.1. Принцип работы микроЭВМ
Работу микроЭВМ рассмотрим на основе блок-схемы, представленной на рис. 5.1. МикроЭВМ содержит:

- микропроцессор КР 580 ВМ 80А, выполненный на одной БИС, включающей в себя АЛУ, БДК, А, ТЕМ, Ак, Д, Ад, РК, РОН, РА, ДСК, SP, РС;

- программируемый параллельный интерфейс КР580 ВВ 55;

- шинный формирователь К589 АП16;

- многорежимный буферный регистр К589 ИР12;

- статический ОЗУ на микросхемах К585РУ2А (емкость каждой 1024х1 бит);

- ППЗУ К573РФ2 (2048х8 бит) и микросхем серии К 155.

БИС КР 580 ВМ 80А представляет собой 8-разрядный микропроцессор, включающий в себя операционное и управляющее устройства. УУ содержит управляющую память, в которую записаны микропрограммы выполнения операций. Каждая из микропрограмм, предназначенная для реализации определенной команды, содержит от 4 до 17 микрокоманд, управляющих приемом из ОЗУ операндов, выполнением над ними простейших действий, выдачей в ОЗУ операндов и извлечением из ОЗУ очередной команды. В КР580 ВМ 80А не предусмотрена возможность изменения содержимого управляющей памяти, поэтому он относится к числу не микропрограммируемых с фиксированной системой команд. С использованием управляющей памяти микропроцессор реализует первый уровень управления ЭВМ – микропрограммное управление, предназначенное для обработки каждой команды, располагаемой в РК.

Второй уровень управления ЭВМ – командный, организуется хранимой в ОЗУ программой. Программа занимает определенную область ОЗУ, имеет обязательную начальную и конечную команды. Обращение к начальной команде с пульта управления ЭВМ или с помощью другой программы способствует передаче ее в РК и циклической обработке следующих команд, поступающих друг за другом в РК (естественный порядок) до извлечения конечной команды программы. Последняя команда заканчивает процесс программного управления ЭВМ, устанавливает блоки ЭВМ в начальное состояние и осуществляет прерывание вычислений по данной программе.

Каждая команда содержит поле кода операции (КОП) и поле адреса устройств (РОН, ячейки ОЗУ или ПЗУ, порт I/O), участвующих в операции. Если устройством является один из РОН, то для указания адреса любого из них достаточно поля длиною в 3 двоичных разряда. Если операция выполняется с участием ячейки ОЗУ, то необходимая разрядность поля адреса для определения номера ячейки характеризуется емкостью памяти ППЗУ и ОЗУ. При максимальной их размерности 64К ячеек для определения номера любой из них требуется 16-разрядное поле адреса. Поэтому в зависимости от разновидности операции и участвующих в ней устройств в микроЭВМ используются 1-, 2- и 3-байтные команды. В 1-байтной команде 5 разрядов отводится под КОП и 3 разряда – под адрес устройства микропроцессора. В 2- и 3-байтных командах под поле КОП отводится первый байт команды. Вторые и третьи байты используются или под операнд (непосредственная адресация), или под код адреса ячейки в ПЗУ или ОЗУ (прямая адресация).

Первый байт команды всегда располагается в РК, другие – в РОН, в которые они заносятся в последующие такты извлечения команды. После извлечения любого байта команды счетчик РС инкрементируется (РС=РС+1) и является адресом следующей команды или байта. Для указания адреса следующей команды, отличной от естественного порядка, используют команды условного и безусловного переходов. Они догружают счетчик команд содержимым двух РОН (W, Z) безусловно или при выполнении условия. Иногда содержимое 2-го и 3-го байтов команды заносится в Н и L в качестве адреса операнда (косвенная адресация), используемого следующей командой при выполнении операции.

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

- передача текущего адреса из РС в РА;

- инкрементация РС, т.е. установление адреса следующей команды;

- поступление адреса команды из РА через ША на адресные входы схемы памяти (ДСА), что обеспечивает выборку адресуемой ячейки памяти и передачу ее содержимого через ШД в буфер Д;

- занесение из буфера Д команды в РК;

- дешифрирование поля КОП команды ДСК и поступление унитарного кода в УУ, запуск в нем соответствующей микропрограммы, с помощью которой формируются управляющие сигналы, обеспечивающие настройку микропроцессора на выполнение заданной в команде операции (сложения);

- поступление адреса операнда из РОН (Н и L) в РА, передача операнда в АЛУ и сложение его с А, занесение результата в А;

- извлечение следующей команды по адресу, расположенному в РС.

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

Она осуществляется в такой последовательности:

- выдача текущего адреса из РА в ДСА;

- увеличение РС на единицу (инкрементация РС);

- выбор первого байта команды из памяти по коду адреса в РА;

- передача его через ШД, буфер Д, ВШД в РК;

- дешифрация в ДСК поля команды КОП и формирование в УУ последовательности управляющих сигналов;

- извлечение второго байта команды (младших 8 разрядов кода адреса следующей команды) по адресу в РС, занесение его в Z, инкрементация РС;

- извлечение третьего байта команды безусловного перехода (старших 8 разрядов кода адреса следующей команды) по адресу РС и занесение его в W;

- передача содержимого группы регистров W,Z в РС и РА.

В результате выполнения команды в РС устанавливается адрес следующей команды, отличный от естественного порядка, равный коду адреса, расположенного в третьем и втором байте команды безусловного перехода. Заметим, что команда безусловной передачи управления выполняется за 10 тактов и при частоте тактового генератора 2 МГц затрачивается 5,0 мкс.

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

Для организации процесса вычислений в ЭВМ необходимо разместить в ОЗУ команды, программы и операнды, к которым команды будут обращаться для выполнения предписанных операций. Операнды и программы размещаются в разных рабочих областях ОЗУ в зависимости от структуры памяти ЭВМ. Рабочая (незаштрихованная) область памяти УОУ представлена на рис. 5.3.

Ячейки монитора

Рис. 5.3. Распределение памяти в микроЭВМ
Ячейки памяти с адресами 0000-:-03FF(16) расположены в ППЗУ. В эти ячейки для облегчения процесса занесения программы и данных в ОЗУ, а также для контроля и организации вычислений введены («прошиты» на длительное хранение) команды программы «Монитор», являющейся простейшей операционной системой. «Монитор» в процессе своей работы использует оперативную информацию, которую хранит в ячейках ОЗУ с адресами 83Е0-:-8400. Поэтому эта область, хотя и является рабочей областью памяти, программистом не используется. Область памяти с адресами 0400-:-7FFF и 87FF-:-FFFF является нерабочей, так как по данным адресам отсутствуют ИС памяти.
1.2. Представление информации в микроЭВМ
Данные и команды в ЭВМ кодируются в двоичной системе счисления и имеют обычно формат, кратный одному байту. Для кодирования чисел запятую чаще всего фиксируют после младшего разряда, знак ("1"("-"), "0"("+")) размещают в позиции самого старшего разряда. При этом все дробные числа, с учетом предварительного сдвига влево, представляют целыми, а величину, на которую они сдвигаются (коэффициент фиксации), в дальнейшем используют для получения правильного результата вычислений. Так, если числа размещаются в восьмиразрядных ячейках памяти и имеют вид В= b6b5b4b3b2b1b0,0...0 с учетом коэффициента фиксации, то в разрядной сетке ячейки памяти они представляются следующим образом:


ст



















мл




b7

b6

b5

b4

b3

b2

b1

b0

, где разряд b7 является

старшим (ст), и в нем размещается знак числа. Запятая располагается после младшего (мл) разряда b0, а все нули после запятой отбрасываются. Например, число В=-7,51(10) для представления в разрядной сетке сначала кодируется в двоичной системе счисления в прямой код числа со знаком в старшем разряде В=-7,51(10)=1.111,100110011… Затем представляется "целым" – путем сдвига на величину коэффициента фиксации, разряд влево В*=-1111,0(2), затем размещается в разрядной сетке

ст



















мл

1

0

0

0

1

1

1

1

Для упрощения операции сложения чисел с разными знаками или замены операции вычитания чисел с одинаковыми знаками числа в ЭВМ чаще всего представляются (переводятся программно) в дополнительном коде. Дополнительный код положительного числа В совпадает с прямым [В]пр, а отрицательного числа – равен результату, получаемому путем инвертирования всех разрядов числа В, кроме знакового, и прибавления единицы в разряд с весом 20 (см. п. 1.4).Так, число

[В*]пр=1.000 1111;

[В*]д =1.111 0000,+20 =1111 0001.

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

В одном байте ячейки памяти могут размещаться числа, представленные в дополнительном коде, в диапазоне от 1000 0000(2)=-128(10) до 0111 1111(2)=+127(10). Если такой диапазон представления мантиссы числа недостаточен для получения необходимой точности вычислений, так как в 8 разрядах можно разместить только 7 разрядов мантиссы, а остальные младшие разряды отбрасываются, то для представления числа следует использовать 2 или более ячейки памяти. Так, при размещении числа в двух ячейках памяти ЭВМ работает с "целыми" числами следующего формата:



ст






















b15

b14

b13

b12

b11

b10

b9

b8

ст. байт





мл






















b7

b6

b5

b4

b3

b2

b1

b0

мл. байт



При этом диапазон чисел, представленных в дополнительном коде, равен от -32768 до +32767 с учетом знакового разряда числа, имеющего вес -215 .

Кроме двоичной системы, в ЭВМ часто используется шестнадцатеричная система счисления. Более компактная запись чисел в этой системе позволяет уменьшить вероятность ошибок и увеличить скорость ввода информации, уменьшить число индикаторов контроля правильности преобразования информации и расширить диапазон представления чисел. В этой системе алфавит состоит из 16 символов: 0,...,9,A,B,C,D,E,F, каждый из которых может быть размещен в одной из позиций числа. Ввиду кратности оснований систем счисления правила перевода чисел из двоичной системы счисления в шестнадцатеричную и обратно весьма просты (см. п. 1.2). Сначала двоичное число разбивается на тетрады, затем каждая тетрада заменяется соответствующим шестнадцатеричным символом. Например, разбиение целого числа 11110111 на тетрады справа налево даст 1111 0111, а в результате замены шестнадцатеричным эквивалентом получаем число F7(16). Обратное преобразование шестнадцатеричного числа осуществляется заменой символов 0,1,...,F тетрадами двоичного эквивалента. Например, 6FD(16)= 0110 1111 1101(2) .
^ 1.3. Работа на УОУ "Электроника – 580"
Для работы с микроЭВМ используется 25 клавиш, из которых верхний ряд и правый столбец являются командными. Нажатие командных клавиш способствует вызову программы «Монитор» и выполнению соответствующих действий УОУ. Остальные 16 клавиш (клавиши кодов) служат для ввода в УОУ шестнадцатеричных цифр (0,...,F). Назначение клавиш следующее:

RST (сброс) – способствует установке УОУ в исходное состояние;

ADDR (адрес) – устанавливает УОУ в режим задания адреса ячейки памяти;

MEM (память) – служит для перевода УОУ в режим записи данных и команд в ячейку памяти;

NEXT (следующий) – увеличивает на 1 адрес, инициируемый на дисплее ячейки памяти, или обращается к следующему регистру УУ;

CLR (восстановление) – восстанавливает начальное значение адреса или данных, если после их ввода не задействовались командные клавиши;

REG (регистр) – инициирует содержимое регистра УУ;

STEP (шаг) – осуществляет пошаговый (ручной) режим выполнения команд;

RUN (прогон) – запускает выполнение программы в автоматическом режиме до команды останова либо до введенной контрольной точки;

BRK (контрольная точка) – служит для задания адреса контрольной точки в программе.

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

A, B, C, D, E, 8/H, 9/L, F – для обозначения регистров от A до L и F;

1/P – для указателя стека SP;

2/T – для индикации содержимого вершины стека SГ.
^ 1.4. Индикатор адреса и данных
Индикатор адреса и данных состоит из 8 разрядов. Каждый разряд является семисегментной ячейкой на светодиодах и отображает цифры 0-9; буквы A,C,E,F и буквы B,D,R, которые обозначаются соответственно символами , , г. При отображении ячейки памяти в разрядах 1-4 индикатора в шестнадцатеричной системе счисления высвечивается адрес, в разрядах 7, 8 – данные, хранящиеся по этому адресу. В других случаях в разрядах 1, 2, 3, 4 отображается, например, содержимое счетчика команд, а в разрядах 7, 8 – очередная команда либо содержимое регистра микропроцессора. В последнем случае в пятом разряде инициируется наименование регистра. Например, при чтении содержимого ячейки памяти В9(16) с адресом 817А(16) мы увидим на индикаторе 817А В9, где 817А отображает состояние счетчика команд, а В9 – содержимое ячейки при этом состоянии. Если при этом состоянии необходимо инициировать содержимое какого-либо регистра (например, В), то на индикаторе высвечивается 817А В-А6.
1.5. Ввод команд и данных в микроЭВМ
Программа в микроЭВМ размещается в рабочей незанятой области ОЗУ (рис.5.3) и содержит последовательность закодированных в двоичной системе команд. Каждая программа имеет начальную и конечную команды. Последовательность команд внутри программы определяется естественным порядком. Поэтому для записи программы нужно определить ее объем в ячейках памяти и выбрать адрес начальной команды. При свободной ОЗУ программу размещают с первой рабочей ячейки ОЗУ, т.е. с адреса 8000(16); если эта ячейка занята другой программой или данными, выбирают другую свободную область ОЗУ и начинают запись программы с другого начального адреса и изменяют адреса всех команд.

Если программа может быть размещена в любой области ОЗУ, то данные непременно размещаются по адресам, указанным в программе.

Рассмотрим ввод программы и данных на примере. Пусть фрагмент программы состоит из 3 последовательных команд CNZ 8200, SBB D, MOV A, M, закодированных C4, 00, 82, 9A, 7E. Причем первая команда может передать управление ячейке 8200. Следовательно, ячейка под номером 8200(16) будет занята, и программу надо разместить в свободной области. Выберем область памяти для фрагмента программы, начиная с ячейки памяти под номером 820А(16) и введем последовательно команды в ОЗУ, для чего подключим «Монитор» в режим записи символов в ОЗУ. Такой режим обеспечивается нажатием клавиши ADDR (фиксация адреса ячейки, в которой будет производиться запись). Так как адрес ячейки 820А, то последовательно нажимаем клавиши 8,2,0,А. При этом после каждого нажатия этих клавиш на индикаторе в разрядах 1-:-4 будет высвечиваться ххх8, хх82, х820, 820А, где х – произвольный символ предыдущего состояния индикатора. Таким образом, монитор подключился к ячейке памяти 820А, однако чтобы происходила запись в эту ячейку необходимо нажатием клавиши МЕМ включить режим записи. При срабатывании этого режима в шестом слева индикаторе дисплея высвечивается символ "," (запятая). Теперь можно первый байт команды CNZ 8200 вводить в ячейку 820А. Введем его нажатием клавиш С, 4. При этом на индикаторе дисплея разрядах 7,8 последовательно появится информация хС, С4. Таким образом, ячейка 820А занимается КОП команды, которая должна быть продолжена в последующих двух ячейках (команда трехбайтная). Для повышения скорости ввода в мониторе предусмотрена подпрограмма автоматического подключения следующей (предыдущей) ячейки памяти нажатием клавиши NEXT или подключения предыдущей ячейки памяти нажатием клавиши МЕМ. При этом в режиме записи информации в ячейку должна обязательно быть запятая в 6-м разряде индикатора.

Нажмем клавишу NEXT счетчик адреса увеличится на единицу; и на индикаторе дисплея в разрядах от 1 до 4 появится 820В. Теперь введем второй байт команды нажатием клавиши 0 дважды. На индикаторе в двух разрядах справа последовательно появится х0, 00. Нажмем вновь NEXT, в разрядах от 1 до 4 индикатора отобразится 820С. Введем 8, 2. Затем аналогично введем коды 9А и 7F в ячейки 820D и 820Е соответственно. Таким образом, программа разместилась в ячейках 820А-820Е. Содержимое программы можно проверить многократным нажатием клавиши МЕМ, при этом ячейки будут просматриваться в обратном порядке. При наличии неправильного кода в ячейке и "," в 6-м разряде индикатора код команды можно исправить путем ввода необходимых символов.

Ввод данных выполняется аналогично записи команд программы, только данные размещаются по адресам, указанным в программе. В нашем случае программа работает с командой по адресу 8200. Нажимаем клавишу ADDR, клавиши 8,2,0,0, клавишу МЕМ и вводим код команды в шестнадцатеричной системе счисления.

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

При попытке ввести информацию в ячейку без предварительного нажатия клавиши МЕМ, а также при адресе ячейки ППЗУ либо нерабочей ячейки ОЗУ на дисплее отображается сигнал ошибки "E r r".
1.6. Чтение и запись информации в регистры
Для записи данных в регистры микропроцессора необходимо нажать последовательно клавиши REG и Ri, где Ri – клавиша обозначения регистра (см. гл.V п.1.3).

После нажатия клавиш в разряде 5-го индикатора отобразится имя регистра, а в разрядах 7,8 – его содержимое (осуществляется режим чтения). Пусть необходимо осуществить запись информации в аккумулятор, например, рассмотрим число А8(16). Нажимаем клавишу REG, затем клавишу А, при этом на дисплее отобразится REG А-хх. Нажимаем клавишу А, затем 8, на экране последовательно инициируется REG А-хА, REG А-А8. Нажатие клавиши NEXT устанавливает адрес следующего регистра. При этом в регистре с новым именем можно прочитать или изменить содержимое нажатием клавиш данных.

При чтении содержимого регистровой пары надо нажать последовательно три клавиши ADDR, RP, МЕМ, где RP{I/P, 8/H, B, D, 2/T}. При нажатии клавиши I/P, 8/H, B, D, 2/T в регистрах 5-, 6-го индикатора отобразится имя регистровой пары SP, HL, BC, DE, SГ соответственно, а в разрядах от 1 до 4 – ее содержимое.
^ 1.7. Чтение содержимого ОЗУ и индикация ошибок
Чтение содержимого ячейки памяти по адресу NIKM(16) осуществляется нажатием командной клавиши ADDR и последовательным нажатием клавиш данных N, I, K, M{0,1,…,F}. При этом на экране сигнализируется адрес ячейки и ее содержимое (ХХ): NIKM xx. Для чтения содержимого следующей ячейки нажимается клавиша NEXT, предыдущей – МЕМ.

При неверных действиях оператора на индикаторе появится код ошибки Err хххх. Он высвечивается в следующих случаях:

- при попытке записи в несуществующую ячейку ОЗУ или в ППЗУ, а также если была блокирована возможность ввода данных в память (не нажата клавиша МЕМ);

- при попытке установить несуществующее имя регистра;

- при попытке нажать клавишу RP {В, D, 8/H, 1/P, 2/T}, отличную от обозначений символов регистровых пар для операций ADDR RP МЕМ или ADDR RP BRK (RP {В, D, 8/H, 1/P, 2/T});

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

Если появится сигнал ошибки Err, то нажатием CLR или ADDR можно восстановить предыдущее состояние счетчика команд и саму команду. Нажатием клавиши МЕМ восстанавливается предыдущее значение ячейки памяти и ее адрес.
^ 2. Система команд микроЭВМ "Электроника – 580"
Последовательность (закон) преобразования информации в ЭВМ задается программой. Программа размещается в ОЗУ в виде команд, представленных в машинных кодах. Представление программ в машинных кодах требует много времени на ввод команд и их проверку. Поэтому для уменьшения времени на программирование, вероятности ошибок кодирования, повышения наглядности представления команд для задания закона преобразования информации используется машинно-ориентированный язык Ассемблер. Поскольку различные микроЭВМ отличаются структурой и конструктивными особенностями, изменяется содержание и языка Ассемблер. Однако эти изменения имеют преемственность, а представление программы на языке Ассемблер позволяет получать наиболее короткие программы, занимающие меньший объем памяти по сравнению с программами, написанными на языках высокого уровня (БЕЙСИК, СИ). Программа, представленная в мнемонике Ассемблера, также должна быть оттранслирована, т.е. переведена и размещена в машинных кодах в ОЗУ. Для такого перевода необходима программа-транслятор, которой в «Мониторе» УОУ не имеется. Поэтому, хотя здесь и изучается язык Ассемблер и команды представляются в его мнемонике, запись команд в ОЗУ осуществляется в шестнадцатеричной системе счисления вручную с клавиатуры УОУ.

Система команд микропроцессора КР 580 ВМ 80А приведена в табл. 5.1. Команды условно разбиты на 5 групп, в первом столбце таблицы представлены наименования команд в мнемонике Ассемблера, где

Ri, Rj {A, B, C, D, E, H, L, M};

V - 8-битное данное [V(16) ];

aa – 16-битный адрес памяти [aa(16)];

RP – регистровая пара B,C; D,E; H,L или указатель стека SP;

ap – 8-битный адрес порта [ap(16)].

Во втором столбце таблицы указано содержание первого байта команды (ПБ), где Т означает ссылку на дополнение к таблице 5.1, в котором ПБ конкретизирован в зависимости от типа команды. В третьем столбце таблицы 5.1 размещена размерность команды в байтах, в четвертом – её функциональное назначение, в последующих столбцах указано содержание поименованных разрядов регистра F после выполнения команды:

" + " – возможно изменение в состоянии, зависящее от результата выполнения команды;

" – " – состояние не меняется;

" 0 ", " 1 " – состояние нуля или единицы.

2.1. Команды передачи данных
Первая группа команд в табл. 5.1 обеспечивает выполнение операций размещения, обмена, загрузки и перемещения данных. Число команд – 84. Наибольшее число команд пересылки типа MOV Ri,Rj. Команды однобайтные, предназначены для пересылки операндов из одного регистра в другой или обмена информацией между РОН и ОЗУ. Например, команда MOV A,B имеет код 78(16) (дополнение к таблице 5.1); адресация – регистровая, выполняет операцию передачи содержимого регистра B в регистр A (AB).

Команды MOV M,Rj осуществляют передачу содержимого одного из РОН в ячейку памяти с адресом, указанным в регистровой паре H,L. Поэтому перед выполнением данных команд необходимо предварительно поместить младший байт адреса ячейки М в регистр L, старший байт адреса в регистр H. Такая операция выполняется командой LHLD аа, которая из ячейки с адресом аа загружает содержимое в L, а из ячейки аа+1 загружает содержимое в H. Например, после загрузки этой командой регистра Н содержимым 82(16), L – 40(16) выполняется команда MOV M, A: код команды 77(16) загружается в РК и из аккумулятора информация передается в ячейку с адресом 8240(16).

Команды MOV Ri,M осуществляют передачу содержимого ячейки памяти М с адресом, указанным в регистровой паре H,L, в один из РОН.

Рассмотрим назначение других команд:

MVI Ri,V осуществляют непосредственную передачу операнда, находящегося во втором байте команды, в РОН или ячейку памяти.

MVI B,V (код – 06(16)) загружает в регистр В второй байт команды, равный V.

MVI M,V (код – 36(16)) осуществляет непосредственную передачу второго байта команды V в ячейку с адресом, указанным в регистровой паре H,L.

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

STA аа осуществляет передачу содержимого аккумулятора в ячейку с адресом аа , т.е. М (байт3, байт2)А.

LHLD аа загружает регистровую пару H,L содержимым ячеек памяти с адресами аа, аа+1, т.е. НМ (аа+1), LМ (аа).

LDAX B, LDAX D загружают аккумулятор содержимым ячейки по адресу, находящемуся в регистровой паре B,C; D,E соответственно.

STAX B, STAX D передают содержимое аккумулятора в ячейку памяти по адресу, находящемуся в регистровой паре B,C; D,E соответственно.

XCHG осуществляет обмен данными между регистрами H и D, L и E.

SHLD аа загружает две соседние ячейки памяти содержимым регистров H,L: М(байт3, байт2 = аа(16))L, М(аа+1)H.

Т
Таблица 5.1

аблица 5.1.

Система команд К580


Мнемоника

ПБ

Байт

Описание команды

RG F

Z

S

P

СУ

АС

1

2

3

4

5

6

7

8

9

1. Команды передачи данных

MOV Ri,Rj

T

1

RiRj

-

-

-

-

-

MVI Ri,V

T

2

RiV

-

-

-

-

-

LXI P,VV

T

3

RPVV

-

-

-

-

-

LDA aa

3A

3

AM(aa)

-

-

-

-

-

STA aa

32

3

M(aa) A

-

-

-

-

-

LHLD aa

2A

3

LM(aa), HM(aa+1)

-

-

-

-

-

SHLD aa

22

3

M(aa) L, M(aa+1) H

-

-

-

-

-

LDAX B

0A

1

AM(B,C)

-

-

-

-

-

LDAX D

1A

1

AM(D,E)

-

-

-

-

-

STAX B

02

1

M(B,C) A

-

-

-

-

-

STAX D

12

1

M(D,E) A

-

-

-

-

-

XCHG

EB

1

HD,LE

-

-

-

-

-

2. Арифметические команды

ADD Ri

T

1

A(A+Ri)

+

+

+

+

+

ADI V

C6

2

A(A+V)

+

+

+

+

+

ADC Ri

T

1

A(A+Ri+СУ)

+

+

+

+

+

ACI V

CE

2

A(A+V+СУ)

+

+

+

+

+

DAD RP

T

1

HL(HL+RP)

-

-

-

+

-

SUB Ri

T

1

A(A-Ri)

+

+

+

+

+

SUI V

D6

2

A(A-V)

+

+

+

+

+

SBB Ri

T

1

A(A-Ri-СУ)

+

+

+

+

+

SBI V

DE

1

A(A-V-СУ)

+

+

+

+

+

INR Ri

T

1

RiRi+1

+

+

+

-

+

INX RP

T

1

RPRP+1

-

-

-

-

-

DCR Ri

T

1

RiRi-1

+

+

+

-

+

DCX RP

T

1

RPRP-1

-

-

-

-

-

DAA

27

1

Десятичная коррекция

+

+

+

+

+

3. Логические команды

ANA Ri

T

1

A(A & Ri)

+

+

+

0

+

ANI V

E6

2

A(A & V)

+

+

+

0

+

XRA Ri

T

1

A(A Ri)

+

+

+

0

0

XRI V

EE

2

A(A V)

+

+

+

0

0

ORA Ri

T

1

A(A V Ri)

+

+

+

0

0

ORI V

F6

2

A(A V V)

+

+

+

0

0

CMP Ri

T

1

AA(Z=1, если A=Ri;

СУ=1, если A<Ri)

+

+

+

+

+

CPI V

FE

2

AA(Z=1, если A=V;

СУ=1, если A<Ri)

+

+

+

+

+


Продолжение табл. 5.1



1

2

3

4

5

6

7

8

9

RLC

07

1

L1(A.b7), СУb7

-

-

-

+

-

RAL

17

1

L1(A,СУ),СУb7

-

-

-

+

-

RAR

1F

1

R1(СУ,A),СУb0

-

-

-

+

-

RRC

0F

1

R1(b0.A),СУb0

-

-

-

+

-

STC

37

1

СУ1

-

-

-

1

-

CMC

3F

1

СУ

-

-

-

+

-

CMA

2F

1

А

-

-

-

-

-

4. Команды передачи управления

JMP aa

C3

3

PCaa безусловный переход

-

-

-

-

-

JNZ aa

C2

3

PCaa при Z=0, иначе PCPC+1

-

-

-

-

-

JZ aa

CA

3

Pcaa при Z=1, иначе PCPC+1

-

-

-

-

-

JNC aa

D2

3

PCaa при СУ=0, иначе PCPC+1

-

-

-

-

-

JC aa

DA

3

PCaa при СУ=1, иначе PCPC+1

-

-

-

-

-

JPO aa

E2

3

PCaa при P=0, иначе PCPC+1

-

-

-

-

-

JPE aa

EA

3

PCaa при P=1, иначе PCPC+1

-

-

-

-

-

JP aa

F2

3

PCaa при S=0, иначе PCPC+1

-

-

-

-

-

JM aa

FA

3

PCaa при S=1, иначе PCPC+1

-

-

-

-

-

PCHL

E9

1

PC(HL)

-

-

-

-

-

CALL aa

CD

3

PCaa, M(SP-1) PCH,

M(SP-2) PCL, SPSP-2

-

-

-

-

-

RET

C9

1

PCHM(SP+1),
PCLM(SP), SPSP+2

-

-

-

-

-

RST i*8

T

1

PC(8*i)(10),

M(SP-1) PCH,

M(SP-2) PCL, SPSP-2

-

-

-

-

-

5. Команды ввода/вывода, организации прерываний

IN ap

DB

2

A[ap]

-

-

-

-

-

OUT ap

D3

2

[ap] A

-

-

-

-

-

PUSH RP

T

1

[M(SP-1), M(SP-2)] RP, SPSP-2

-

-

-

-

-

POP RP

T

1

RP[M(SP+1), M(SP)],

SPSP+2

-

-

-

-

-

XTHL

E3

1

HM(SP+1), LM(SP)

-

-

-

-

-

SPHL

F9

1

SP(H,L)

-

-

-

-

-

О
Окончание табл. 5.1
кончание табл. 5.1.


1

2

3

4

5

6

7

8

9

EI

FB

1

Разрешение прерывания

-

-

-

-

-

DI

F3

1

Запрещение прерывания

-

-

-

-

-

NOP

00

1

Пустая команда

-

-

-

-

-

HLT

76

1

Останов

-

-

-

-

-



Дополнение к таблице 5.1



Дополнение к таблице 5.1.


Ri

Rj

A

B
C

D

E
H

L

M

1

2

3

4

5

6

7

8

9

MOV Rj, Ri

A

7F

78

79

7A

7B


7C

7D

7E

B

47

40

41

42

43

44

45

46

C

4F

48

49

4A

4B

4C

4D

4E

D

57

50

51

52

53

54

55

56

E

5F

58

59

5A

5B

5C

5D

5E

H

67

60

61

62

63

64

65

66

L

6F

68

69

6A

6B

6C

6D

6E

M

77

70

71

72

73

74

75

-

ADD Ri

87

80

81

82

83

84

85

86

ADC Ri

8F

88

89

8A

8B

8C


8D

8E

ANA Ri

A7

A0

A1

A2

A3

A4

A5

A6

1

2

3

4

5

6

7

8

9

CMP Ri

BF

B8

B9

BA

BB

BC

BD

BE

DCR Ri

3D

05

0D

15

1D

25

2D

35

INR Ri

3C

04

0C

14

1C

24

2C

34

MVI Ri,V

3E

06

0E

16

1E

26

2E

36

ORA Ri

B7

B0

B1

B2

B3

B4

B5

B6

SUB Ri

97

90

91

92

93

94

95

96

SBB Ri

9F

98

99

9A

9B

9C

9D

9E

XRA Ri

AF

A8

A9

AA

AB

AC

AD

AE




DAD B

09
  1   2   3



Скачать файл (1177.9 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации
Рейтинг@Mail.ru