![](/user_photo/1334_ivfwg.png)
- •Оглавление
- •Введение
- •Глава 1. МИКРОПРОЦЕССОРНЫЕ СИСТЕМЫ
- •1.1. Понятие архитектуры вычислительной системы. Структура аппаратной части и назначение основных функциональных узлов
- •1.2. Базовые параметры и технические характеристики ЭВМ
- •Контрольные вопросы к главе 1
- •Глава 2. СТРУКТУРА И ФУНКЦИОНИРОВАНИЕ ПРОЦЕССОРА
- •2.2. Устройство управления с программируемой логикой
- •2.3. Устройство управления с жесткой логикой
- •2.4. Слово состояния процессора
- •2.5. Микроконтроллеры
- •2.6. Особенности организации однокристальных и секционных микропроцессоров
- •2.8. Архитектура и функционирование микропроцессора
- •Контрольные вопросы к главе 2
- •Глава 3. СИСТЕМЫ КОМАНД МИКРОЭВМ
- •3.1. Язык микроопераций для описания вычислительных устройств
- •3.2. Структура и формат команд микропроцессора и МПС
- •3.3. Программирование микропроцессора
- •Контрольные вопросы к главе 3
- •Глава 4. ТЕНДЕНЦИИ РАЗВИТИЯ АРХИТЕКТУРЫ И АППАРАТНОГО ОБЕСПЕЧЕНИЯ ЭВС
- •4.1. Требования различных задач к вычислительным ресурсам и ограничения фон-Неймановской архитектуры
- •4.2. Распараллеливание процессов обработки информации
- •4.3. Принцип совмещения операций. Конвейерная обработка информации
- •4.4. Архитектура процессоров с сокращенным набором команд
- •4.5. Применение кэш-памяти и повышение пропускной способности
- •4.6. Транспьютеры
- •4.7. Развитие новых архитектурных принципов
- •4.8. Оценка производительности скалярного процессора
- •Контрольные вопросы к главе 4
- •Глава 5. ОПЕРАТИВНАЯ ПАМЯТЬ
- •5.1. Классификация и иерархическая структура памяти ЭВМ
- •5.2. Запоминающие элементы статических ОЗУ
- •5.3. Запоминающие элементы динамических ОЗУ
- •5.4. Структуры матриц накопителей информации
- •5.5. Структура построения БИС статических ОЗУ и модулей памяти
- •5.6. Структура построения БИС динамических ОЗУ
- •5.7. Элементная база и организация постоянных запоминающих устройств
- •Контрольные вопросы к главе 5
- •Глава 6. ВНЕШНИЕ ЗАПОМИНАЮЩИЕ УСТРОЙСТВА НА МАГНИТНЫХ НОСИТЕЛЯХ
- •6.1. Принцип записи двоичной информации на магнитную поверхность
- •6.3. Методы записи цифровой информации на магнитный носитель
- •6.4. Воспроизведение информации и повышение ее достоверности
- •6.5. Накопители на гибких магнитных дисках и их контроллеры
- •6.6. Накопители на жестких магнитных дисках типа винчестер и их контроллеры
- •6.7. Накопители на сменных магнитных дисках
- •6.8. Накопители на магнитной ленте
- •Контрольные вопросы к главе 6
- •Глава 7. ОПТИЧЕСКИЕ И МАГНИТООПТИЧЕСКИЕ ВЗУ
- •7.1. Лазерные системы и их применение в устройствах внешней памяти
- •7.2. Оптические диски
- •7.3. Магнитооптические диски
- •7.4.Устройство накопителя на оптических дисках
- •Контрольные вопросы к главе 7
- •Глава 8. ВЗУ НА ЦМД-СОДЕРЖАЩИХ МАТЕРИАЛАХ
- •8.1. Принципы возникновения цилиндрических магнитных доменов
- •8.2. Организация продвижения ЦМД
- •8.4. Структура ЦМД-микросхем памяти
- •8.5. Устройство ЦМД-накопителя
- •Контрольные вопросы к главе 8
- •Глава 9. ВЗУ НА ОСНОВЕ ГОЛОГРАФИИ
- •9.1. Носители информации голографических ЗУ
- •9.2. Создание голограмм
- •9.3. Воспроизведение голограмм
- •9.4. Голографические ЗУ двоичной информации
- •Контрольные вопросы к главе 9
- •Глава 10. ОРГАНИЗАЦИЯ БЕЗАДРЕСНОЙ И ВИРТУАЛЬНОЙ ПАМЯТИ
- •10.1. Стековая память
- •10.2. Ассоциативная память
- •10.3. Виртуальная память со страничной организацией
- •10.4. Структура виртуальной памяти при сегментном распределении
- •Контрольные вопросы к главе 10
- •Глава 11. НАЗНАЧЕНИЕ ПЕРИФЕРИЙНЫХ УСТРОЙСТВ
- •11.1. Классификация периферийных устройств
- •Контрольные вопросы к главе 11
- •Глава 12. УСТРОЙСТВА АВТОМАТИЧЕСКОГО СЧИТЫВАНИЯ ТЕКСТОВ
- •12.1. Устройства автоматического ввода печатных текстов
- •12.2. Методы распознавания образов печатных знаков
- •12.3. Устройства автоматического ввода рукописных текстов
- •12.4. Средства считывания и хранения графических изображений поврежденных рукописных текстов
- •12.5. Кодирование текстов для электронных публикаций
- •Контрольные вопросы к главе 12
- •Глава 13. УСТРОЙСТВА АВТОМАТИЧЕСКОГО ВВОДА ИЗОБРАЖЕНИЙ
- •13.1. Устройства автоматического ввода одноконтурных изображений
- •13.2. Устройства автоматического ввода многоконтурных и полутоновых изображений
- •13.3. Считывание цветных изображений
- •Контрольные вопросы к главе 13
- •Глава 14. УСТРОЙСТВА ПОЛУАВТОМАТИЧЕСКОГО ВВОДА ГРАФИЧЕСКОЙ ИНФОРМАЦИИ - ДИГИТАЙЗЕРЫ
- •14.1. Устройство рабочего поля планшета
- •14.2. Структурная схема дигитайзера и ее функционирование
- •Контрольные вопросы к главе 14
- •Глава 15. УСТРОЙСТВА ВВОДА - ВЫВОДА РЕЧЕВОЙ ИНФОРМАЦИИ
- •15.1. Модель речи
- •15.2. Структурная схема анализатора речи
- •15.3. Структура устройств ввода речи
- •15.4.Устройства вывода речевой информации - синтезаторы
- •Контрольные вопросы к главе 15
- •Глава 16. УСТРОЙСТВА ОТОБРАЖЕНИЯ ИНФОРМАЦИИ - ДИСПЛЕИ
- •16.1. Классификация дисплеев
- •16.2. Способы формирования изображения на экране телевизионного дисплея
- •16.3. Структурная схема текстового телевизионного дисплея
- •16.4. Структурная схема графического телевизионного дисплея
- •16.5. Устройство плоских экранов
- •Контрольные вопросы к главе 16
- •Глава 17. АВТОМАТИЧЕКИЕ УСТРОЙСТВА РЕГИСТРАЦИИ ГРАФИЧЕСКОЙ ИНФОРМАЦИИ - ГРАФОПОСТРОИТЕЛИ
- •17.1. Классификация и устройство графопостроителей
- •17.2. Принципы работы графопостроителя по вычерчиванию
- •17.3. Структурная схема планшетного графопостроителя
- •17.4. Структурная схема растрового графопостроителя
- •Контрольные вопросы к главе 17
- •Глава 18. АППАРАТУРА ПРИЕМА-ПЕРЕДАЧИ ИНФОРМАЦИИ
- •18.1. Обобщенная структурная схема аппаратуры передачи дискретной информации
- •18.2. Характеристики аппаратуры передачи данных
- •18.3. Принципы организации интерфейсов
- •18.4. Классификация интерфейсов
- •Контрольные вопросы к главе 18
- •Глава 19. АВТОМАТИЧЕСКИЕ УСТРОЙСТВА ВВОДА-ВЫВОДА АНАЛОГОВОЙ ИНФОРМАЦИИ В ЭВМ
- •19.1. Назначение устройств ввода-вывода аналоговой информации в ЭВМ
- •19.2. Принципы построения ЦАП и АЦП
- •19.3. Принципы построения и программирование системы ввода-вывода аналоговой информации в ЭВМ
- •Контрольные вопросы к главе 19
- •Глава 20. КАНАЛЫ ВВОДА-ВЫВОДА И АППАРАТУРА СОПРЯЖЕНИЯ
- •20.2. Организация обмена массивами данных
- •20.3. Мультиплексный канал
- •20.4. Селекторный канал
- •20.5. Устройства сопряжения - мультиплексоры передачи данных
- •Контрольные вопросы к главе 20
- •Глава 21. УСТРОЙСТВА ЗАЩИТЫ ОТ ОШИБОК В ПЕРЕДАВАЕМОЙ ИНФОРМАЦИИ
- •21.1. Причины возникновения ошибок в передаваемой информации
- •21.2. Краткая характеристика способов защиты от ошибок
- •21.3.Обнаруживающие коды - с проверкой на четность и итеративный код
- •21.4. Корректирующий код Хэмминга
- •21.5. Циклические коды
- •21.6. Циклический код Файра как средство коррекции пакетов ошибок
- •Контрольные вопросы к главе 21
- •ЗАКЛЮЧЕНИЕ
- •Приложение 2
- •Приложение 3
- •Приложение 4
- •Приложение 5
- •Приложение 6
- •Приложение 7
- •Приложение 8
- •Приложение 9
- •Приложение 10
- •Приложение 11
- •Приложение 12
- •Приложение 13
- •Приложение 14
- •Приложение 15
- •Приложение 16
- •Приложение 17
- •Приложение 18
- •Приложение 19
- •Приложение 20
- •Приложение 22
- •Приложение 23
- •Приложение 24
- •Приложение 25
- •Приложение 26
- •Предметный указатель
- •Список литературы
Глава 3. Системы команд микроЭВМ |
54 |
действию и объему занимаемой памяти они более эффективны. Так, команды упрощенного формата для работы с РОН являются однобайтовыми, а поле REG помещено в байт с кодом операции. При работе с данными в памяти используется регистр АХ, а данные в сегментах данных адресуются 2-м и 3-м байтами команды.
3.3. Программирование микропроцессора
Программа обработки информации, записываемая в память МП, составляется на основе набора команд, присущих данному конкретному типу микропроцессора. Рассмотрим особенности программирования на языке машинных команд микропроцессора КР580ИК80, для чего разберем несколько примеров.
Пример 3.5.
Подпрограмма 3.1 обеспечивает извлечение числа из адреса памяти 0В00, инвертирование его и запись
результата в адрес памяти 0В01: |
|
Подпрограмма 3.1 (в мнемокодах) |
|
Мнемокод |
Комментарий |
LDA 0В00 |
Загрузить в аккумулятор число из адреса 0В00 ОЗУ |
СМА |
Инвертировать число, находящееся в аккумуляторе |
SТА 0В01 |
Записать результат инвертирования по адресу 0В01 |
RSТ 1 |
Прервать выполнение программы 1 |
При записи программы все числа представляются в шестнадцатеричной системе счисления.
Для записи программы в память микроЭВМ необходимо перевести мнемокоды команд в машинные коды. Команды могут быть одно-, двухили трехбайтные и должны занимать в памяти соответственно один, два или три адреса: (рис. 2.8)
|
Подпрограмма 3.1 (размещение по адресам памяти) |
|
Адрес |
Число |
Комментарий |
0800 |
3А |
Код команды LDA |
0801 |
00 |
Младший байт адреса числа |
0802 |
0В |
Старший байт адреса |
0803 |
2F |
Код команды СМА |
0804 |
32 |
Код команды SТА |
0805 |
01 |
Младший байт адреса peзультата |
0806 |
0В |
Старший байт адреса |
0807 |
CF |
Код команды RST 1 |
Предварительную запись программ удобно проводить в более компактной форме: указать начальный адрес каждой команды, помня при этом, что команды в зависимости от -длины (одно-, двухили трехбайтовые) в памяти будут занимать от 1 до 3 последовательных ячеек памяти. При такой записи в левом столбце указываются лишь адреса команд. Это позволяет сократить объем при описании программ и сделать более простым их
анализ: |
|
|
|
|
|
Подпрограмма 3.1 (общий вид записи) |
|
||
Адрес |
Машинный код |
Мнемокод |
Комментарий |
|
0800 |
3A |
000ВА |
LDA 0В00 |
Получить число |
0803 |
2F |
|
СМА |
Инвертировать число |
0804 |
32 |
010В |
SТА 0В01 |
Запись по адресу 0В01 |
0807 |
CF |
|
RST 1 |
Прервать выполнение |
|
|
|
|
программы |
При написании сложных программ часто возникает необходимость выполнения одних и тех же вычислений в различных местах основной программы. Для упрощения программы повторяющиеся части оформляются в виде подпрограмм последовательностей команд, выполнение которых может быть вызвано из любого места программы любое коли-
![](/html/1334/288/html_lWzDNqkTWr.70HG/htmlconvd-VplQW_55x1.jpg)
Глава 3. Системы команд микроЭВМ |
55 |
чество раз. Для обращения к подпрограммам и возврата из них используются команды вызова подпрограмм САLL и возврата RET.
Пример 3.6.
Подпрограмма временной задержки. Алгоритм работы подпрограммы приведен на рис. 3.13. Общее время задержки вычисляется по формуле
TЦД=ТТ1+(ТТ2+ТТ3+ТТ4)*NI+TT5,
где NI - число, первоначально записанное в счетчике. В качестве счетчика используется один из РОН В, в который записывается число NI из регистра С. Команда NОР здесь используется для увеличения времени выполнения цикла, а следовательно, и общей задержки. Вместо команды NОР можно использовать любую последовательность команд, выполнение которых не изменяет содержимого регистров МП. Время записи числа NI в регистр В и возврата из подпрограммы фиксировано и в цикл не входит. Минимальная задержка определяется при NI=01 и равна
ТЦД мин=ТТ1+ТТ2+ТТ3+ТТ4+ТТ5;
максимальная задержка вычисляется по формуле
ТЦД макс=ТТ1+(ТТ2+ТТ3+ТТ4)*256+TT5,
где 256 - максимальное 8-ми разрядное двоичное число. Подпрограмма 3.2 реализует временную задержку,
записанную в соответствии с данным алгоритмом. |
|
|||
Подпрограмма 3.2 |
|
|
|
|
Адрес |
Машинный код |
Метка |
Мнемокод |
Комментарий |
0900 |
41 |
|
MOV B,C |
Записать число из регистра С в регистр В |
0901 |
00 |
DLY |
NOP |
Нет операции |
0902 |
05 |
|
DCR В |
Уменьшить число в регистре В на 1 |
0903 |
C2 0109 |
|
JNZ B DLY |
Если число, записанное в регистре В≠ 0, |
|
|
|
|
то идти на DLY |
0906 |
C9 |
RET |
|
|
|
|
Подпрограмма |
|
|
|
задержки |
|
|
|
Записать число N1 |
|
|
ТТ1 |
из регистра С в |
|
|
|
регистр В |
|
|
ТТ2 |
Нет операции |
|
|
ТТ3 |
Уменьшить |
|
|
содержимое рег. В |
|
|
|
|
на 1 |
|
|
|
Нет |
|
|
ТТ4 |
В=0 |
|
|
|
Да |
|
|
ТТ5 |
Выход из |
|
|
подпрограммы |
Рис. 3.13. Алгоритм подпрограммы задержки DLY
![](/html/1334/288/html_lWzDNqkTWr.70HG/htmlconvd-VplQW_56x1.jpg)
Глава 3. Системы команд микроЭВМ |
56 |
При написании программ с условными переходами и подпрограммами начальным командам подпрограмм и командам, к которым осуществляется программный переход, присваивается метка.
Метка используется для обозначения места перехода при написании программ в мнемокодах, как и на языках высокого уровня.
Пример 3.7. Использование подпрограммы временной задержки при организации звуковых сигналов в микроЭВМ.
В микроЭВМ звуковые сигналы могут формироваться простой схемой, представленной на рис. 3.14, на вход которой со звуковой частотой записывается по очереди «0» и «1». Будем считать, что устройство формирования звуковых сигналов имеет адрес 80. Схема алгоритма работы подпрограммы генерации звуковых колеба-
ний приведена на рис. 3.15.
+5 В
R2
|
с Д0 МД |
|
|
T |
Q |
R1 |
|
|
D |
|
|||
Зп |
|
1 |
|
Q |
|
|
& |
|
|
|
|||
|
|
|
|
|
|
|
от Сх |
|
|
C |
|
|
|
|
|
|
|
|
|
|
ДША |
|
|
|
|
|
|
Рис. 3.14. Схема формирования звуковых сигналов в микроЭВМ
CALL BPP
Записать в вых. устр. 0
Вызвать подпр. DLY
Записать в вых. устр. 1
Вызвать подпр. DLY
RETURN
Рис. 3.15. Алгоритм подпрограммы формирования звукового сигнала в микроЭВМ
При выполнении арифметических операций двоичное число можно представить как семиразрядный код со знаковым восьмым разрядом. Такое представление позволяет записывать числа в диапазоне ± 128, а отрицательные числа кодировать в обратном или дополнительном коде. В МП КР580ИК80 предусмотрены команды с числами, представленными в двоично-десятичной системе счисления и арифметические команды с числами двойной разрядности (16 разрядов). Рассмотрим простые примеры выполнения арифметических операций.
Глава 3. Системы команд микроЭВМ |
57 |
|||
|
Подпрограмма 3.3. |
|
||
АдресМашинный Метка Мнемокод |
Комментарий |
|||
|
код |
|
|
|
0А00 |
AF |
ВРР |
XRA А |
Очистить аккумулятор |
0А01 |
D3 80 |
|
OUT ВР |
Записать 00 в выходное устройство |
0А03 |
СD 0009 |
|
САLL DLY |
Вызвать подпрограмму задержки |
0А06 |
2F |
|
СМА |
Записать код в аккумулятор |
0А07 |
D3 80 |
|
OUT ВР |
Записать код в выходное устройство |
0А09 |
CD 0009 |
|
CALL DLY |
Вызвать подпрограмму задержки |
0А0С С9 |
|
RET |
Возврат из подпрограммы |
|
|
Пример 3.8. Сложение массива однобайтных чисел и получение двухбайтового результата. |
|||
|
Подпрограмма 3.4. |
|
||
АдресМашинный Метка Мнемокод |
Комментарий |
|||
|
код |
|
|
|
0800 |
21 000В |
MAIN LXI H,0B00 |
Записать в регистры H, L адрес первого слагаемого |
|
0803 |
06 05 |
|
MVI B,05 |
Загрузить в регистр В количество слагаемых |
0805 |
CD 090Z |
|
CALL ADDB Вызвать подпрограмму сложения |
|
0808 |
CF |
|
RST 1 |
Прервать выполнение программы |
0809 |
AF |
ADDB XRA A |
Очистить аккумулятор |
|
080А |
4F |
|
MOV C,A |
Очистить счетчик переносов |
080В |
86 |
INT |
ADD M |
Прибавить к содержимому аккумулятора число |
|
|
|
|
из массива слагаемых |
080С |
2 1008 |
|
JNC TRM |
Если переноса нет, то идти наTRM |
080F |
0C |
|
INR C |
Увеличить содержимое регистра С на 1 |
0810 |
23 |
TRM |
INX H |
Указать на следующий адрес слагаемого |
0811 |
05 |
|
DCR B |
Уменьшить содержание счетчика слагаемых |
0812 |
С2 0В08 |
|
JNC CNT |
Если не все слагаемые то идти на CNT |
0815 |
C9 |
|
RET |
Возврат |
Слагаемые располагаются в последовательных адресах памяти. Входными параметрами используемой подпрограммы ADD В являются адрес первого слагаемого, записанный в регистрах Н, L, и число слагаемых, записанное в регистре В. Выходным параметром программы MAIN является сумма, старший байт которой записан в регистре С, а младший - в аккумуляторе.
Алгоритм подпрограммы сложения состоит в том, что после прибавления каждого элемента массива определяется переполнение аккумулятора (разряд С=1); если это имеет место, то содержимое регистра С увеличивается на 1. Таким образом, за счет суммирования единиц переноса получается старший байт суммы (рис. 3.16).
МикроЭВМ может проводить арифметические операции с числами с двойной или большей длиной машинного слова. Так как МП БИС имеет 8-разрядное АЛУ, то операции с такими числами должны проводиться по байтам, начиная с младших. Так, операция сложения чисел 17F5 + 3411 имеет следующий вид:
Старший байт |
Флаг С |
Младший байт |
Числа |
00010111 |
|
11110101 |
17F5 |
+ |
|
+ |
+ |
00110100 |
|
00010001 |
3411 |
——————————————————————————
01001100 00000110 4C06
Операция вычитания чисел 6F5C - 13C5 осуществляется в виде:
Старший байт |
Флаг С |
Младший байт |
Числа |
01101111 |
|
01011100 |
6F5C |
- |
|
- |
- |
00010011 |
1 |
11000101 |
13C5 |
———————————————————————————
01011011 10010111
![](/html/1334/288/html_lWzDNqkTWr.70HG/htmlconvd-VplQW_58x1.jpg)
Глава 3. Системы команд микроЭВМ |
58 |
ADD B
Очистить рег. |
суммы А и счетчик |
переполн. С |
Прибавить к |
содерж. аккум. |
число из памяти |
С=1 |
Увеличить |
содержимое рег. С |
на 1 |
Уменьшить содерж. |
счетч. колич. |
слагаемых на 1. |
Указать на след. |
адрес |
Нет |
Последнее |
слаг.? |
Да |
RETURN |
Рис. 3.16. Алгоритм подпрограммы сложения
Из приведенных примеров видно, что для суммирования (вычитания) младших байтов чисел необходимо применять команду ADD, а для сложений вычитания остальных чисел -команду АDС, которая учитывает состояние разряда C регистра признаков МП БИС.
Пример 3.9. Нахождение разности чисел, имеющих одинаковую длину, показано в программе 3.5.
|
Подпрограмма 3.5. |
|
|
|
АдресМашинный Метка |
Мнемокод |
Комментарий |
||
|
код |
|
|
|
0900 |
АF |
SBN |
ХRА А |
Очистить аккумулятор и флаг С |
0901 |
IА |
CNT |
LDAX D |
Записать в аккумулятор уменьшаемое |
0902 |
9E |
|
SBB M |
Вычесть из содержимого аккумулятора |
|
|
|
|
вычитаемое |
0903 |
77 |
|
MOV М,А |
Записать разность на место вычитаемого |
0904 |
23 |
|
INX H |
Указать на следующий байт вычитаемого |
0905 |
13 |
|
INX D |
Указать на следующий байт уменьшаемого |
0906 |
0D |
|
DСР С |
Уменьшить содержимое счетчика длины числа |
0907 |
C2 0109 |
|
JNZ CNT |
Если не последний (старший) байт числа, то |
|
|
|
|
идти на СNT |
090А |
D0 |
|
RNC |
Если байт старший и результат без заема (С=0), |
|
|
|
|
то возврат |
090В |
СD1200 |
|
CALL ВЕЕР Если был заем (С=1), то подать сигнал |
|
090Е |
CF |
|
RSTI |
Прервать выполнение программы |