Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Shamrov_M_I_Telnov_G_G_Organizatsia_ustroystv_na_baze_protsessorov_maloy_razryadnosti

.pdf
Скачиваний:
58
Добавлен:
28.03.2016
Размер:
2.27 Mб
Скачать

20 –

3.ПРОГРАММА-МОНИТОР УМК

3.1.Общие сведения о мониторе УМК

ВУМК реализовано два уровня управления. Первый уровень

уровень команд полностью определяется микропроцессором К580ВМ80. Вторым уровнем управления УМК является монитор, предназначенный для организации процедур взаимодействия пользователя с УМК при вводе, редактировании и отладке программ. «Командами» второго уровня управления являются директивы монитора, задаваемые с помощью директивных клавиш. «Программа» второго уровня не заносится в память УМК, а выполняется по мере ввода директив.

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

ВУМК предусмотрено шесть директив монитора:

«П» – просмотр и изменение содержимого памяти;

«РГ» – просмотр и изменение содержимого регистров микропроцессора;

«СТ» – передача управления программе пользователя;

«КС» – определение контрольной суммы массива памяти;

«ЗК» – заполнение массива памяти константой;

«ПМ» – перемещение массива в памяти.

– 21 –

Команду монитора в общем виде можно представить следующим образом (квадратные скобки здесь и далее обозначают необязательные параметры):

КОП [ПАР1] [└─┘ПАР2] [└─┘ПАР3] ВП

где

КОП – одна из шести директивных клавиш: П, РГ, СТ, КС, ЗК, ПМ;

ПАР1, ПАР2, ПАР3 – параметры директив. Возможно наличие до трех параметров в зависимости от директивы. Параметры могут быть однобайтными (две шестнадцатеричные цифры) и двухбайтными (четыре шестнадцатеричные цифры). Параметры отделяются друг от друга клавишей «└─┘» (пробел);

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

ввода.

При неверном задании параметров директивы на дисплей выводится символ «?» в крайней правой позиции, и управление передается основной программе монитора с выдачей приглашения (знака «–») в крайней левой позиции. После этого можно снова начинать вводить директиву обычным образом (не нажимая клавишу СБ).

Системные вызовы (подпрограммы) монитора, к которым возможно обращение из программы пользователя, приведены в приложении Б.

22 –

3.2.Директивы монитора для ввода и редактирования программ и данных

3.2.1.Просмотр и изменение содержимого памяти

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

Для исполнения директивы необходимо набрать следующее:

П АДРЕС └─┘ [D1] └─┘ [D2] … └─┘ [Dn] ВП

где

АДРЕС – адрес начальной ячейки памяти, состоящий из четырех шестнадцатеричных цифр, задаваемых нажатием соответствующих информационных клавиш. При нажатии большего числа клавиш в качестве адреса фиксируются последние четыре цифры. Цифры отображаются на левых четырех индикаторах дисплея УМК;

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

После первого нажатия клавиши «└─┘» на два правых индикатора дисплея выдается содержимое памяти по заданному адресу. Для изменения содержимого ячеек памяти необходимо после нажатия клавиши «└─┘» ввести новое содержимое ячейки (две шестнадцатеричные цифры). Каждое последующее нажатие клавиши «└─┘» увеличивает адрес на единицу и осуществляет вывод содержимого памяти по новому адресу. Нажатие клавиши ВП прекращает выполнение директивы.

23 –

3.2.2.Просмотр и изменение содержимого регистров микропроцессора

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

РГ R1 [D1] └─┘ R2 [D2] … └─┘ Rn [Dn] ВП

где

R1…Rn – клавиши-идентификаторы регистров:

«А» – регистр-аккумулятор А;

«В» – регистр В;

«С» – регистр С;

«D» – регистр D;

«Е» – регистр Е;

«Н» – регистр Н;

«L» – регистр L;

«F» – регистр признаков (флагов);

«SL» – младший байт указателя стека;

«SH» – старший байт указателя стека;

«PL» – младший байт программного счетчика;

«PH» – старший байт программного счетчика;

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

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

– 24 –

перехода к просмотру содержимого другого регистра необходимо нажать клавишу «└─┘». Для прекращения исполнения директивы необходимо нажать клавишу ВП.

3.2.3. Определение контрольной суммы области памяти

Контрольная сумма области памяти представляет собой сумму содержимого всех байт массива по модулю 256.

Для исполнения директивы необходимо набрать следующее: КС АДРЕС1 └─┘ АДРЕС2 ВП

где

АДРЕС1 – начальный адрес области памяти; АДРЕС2 – конечный адрес области памяти.

После исполнения директивы в двух крайних правых позициях дисплея указывается контрольная сумма. Если значение АДРЕС1 превышает значение АДРЕС2, в крайней правой позиции дисплея выдается знак «?», и управление передается основной программе монитора.

3.2.4. Заполнение области памяти константой

Для исполнения директивы необходимо набрать следующее: ЗК АДРЕС1 └─┘ АДРЕС2 └─┘ D0 ВП

где

АДРЕС1 – начальный адрес области памяти; АДРЕС2 – конечный адрес области памяти;

D0 – константа, заносимая в каждый байт массива.

Если значение АДРЕС1 превышает значение АДРЕС2, в крайней правой позиции дисплея выдается знак «?», и управление передается основной программе монитора.

25 –

3.2.5.Перемещение программ и данных в памяти

Для исполнения директивы необходимо набрать следующее: ПМ АДРЕС1 └─┘ АДРЕС2 └─┘ АДРЕС3 ВП

где

АДРЕС1 – начальный адрес исходной области памяти; АДРЕС2 – конечный адрес исходной области памяти; АДРЕС3 – новый начальный адрес области памяти.

Исходная и конечная области памяти не должны пересекаться, в противном случае может произойти потеря информации: пересылка осуществляется побайтно начиная с младших адресов. Если значение АДРЕС1 превышает значение АДРЕС2, в крайней правой позиции дисплея выдается знак «?», и управление передается основной программе монитора.

3.3. Директивы монитора для исполнения и отладки программ

3.3.1. Передача управления программе пользователя

Для исполнения директивы необходимо набрать следующее: СТ [АДРЕС1] [└─┘ АДРЕС2 [└─┘ АДРЕС3]] ВП

где

АДРЕС1 – начальный адрес программы пользователя. Указывает на первый байт первой исполняемой команды;

АДРЕС2, АДРЕС3 – адреса выполнения прерывания (программного) при исполнении программы пользователя. Указывают на первые байты команд, перед исполнением которых необходимо прерывание. Указание в качестве АДРЕС2, АДРЕС3 адреса второго или третьего байта команды может привести к

– 26 –

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

При исполнении директивы осуществляется загрузка всех регистров из рабочей области (доступной для директивы «РГ») и передача управления программе с начальным адресом АДРЕС1. Если параметр АДРЕС1 отсутствует, управление передается по адресу, находящемуся в программном счетчике. После прерывания (программного или внешнего) содержимое программного счетчика указывает на команду, перед которой произошло прерывание. Указание параметров АДРЕС2 и АДРЕС3 (одного или двух) приводит к установке точек программного прерывания перед исполнением команд с указанными адресами. При прерывании (программном или внешнем) все установленные точки сбрасываются.

Установка точек программного прерывания выполняется монитором путем записи по адресам АДРЕС2 и АДРЕС3 команд RST 7 (единственное прерывание, возможное в УМК) с сохранением затираемого байта в рабочей области монитора. Там же сохраняется адрес, по которому установлена точка прерывания. При достижении команды RST 7 (программное прерывание) или нажатии клавиши ПР, которое приводит к принудительной установке на шине данных команды RST 7 (внешнее прерывание), управление передается программе обработки прерывания. Эта программа выполняет следующее:

запрещает пошаговый режим;

запоминает содержимое всех регистров микропроцессора

врабочую область (доступную для директивы «РГ»);

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

27 –

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

RST 7;

в случае программного прерывания уменьшает на единицу содержимое программного счетчика;

выводит на дисплей содержимое программного счетчика (если прервана программа-монитор, вместо содержимого программного счетчика на дисплей выдается символ «?»);

передает управление основной программе монитора, в результате чего монитор приводится в исходное состояние с выдачей приглашения для ввода директив (знака «–»).

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

После прерывания можно просматривать любые ячейки памяти, а также регистры, сохраняемые монитором в своей рабочей области. Благодаря этому возможно и задание исходных данных, и просмотр результатов работы программ, как в памяти, так и в регистрах. Стек пользователя отделен от стека монитора, поэтому при просмотре стека пользователя в нем обнаруживаются только те данные, которые занесены в стек программой пользователя. Таким образом, монитор создает у пользователя впечатление, что все регистры, стек и ОЗУ (кроме последних 54 ячеек) находятся в исключительном распоряжении пользователя и монитором не изменяются.

– 28 –

Если пользователем случайно затерта область ОЗУ монитора, необходимо нажать клавишу СБ – область будет восстановлена.

Если программа была запущена с установленными точками прерываний, исполнение такой программы нельзя завершать нажатием клавиши СБ: байты программы, находящиеся по адресам указанных точек прерывания восстановлены не будут. Для

прерывания (завершения) исполнения программы необходимо использовать клавишу ПР: при внешнем прерывании установленные точки программного прерывания сбрасываются.

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

Перечень всех директив монитора УМК приведен в табл. 3.

Таблица 3

Директивы монитора УМК

Действие директивы

Способ исполнения

1. Просмотр содержимого

П АДРЕС└─┘ └─┘ └─┘ └─┘ВП

памяти

 

2. Изменение

П АДРЕС└─┘D1└─┘D2 … └─┘Dn ВП

содержимого памяти

 

3. Просмотр содержимого

 

регистров

РГ R1└─┘R2 … └─┘ Rn ВП

микропроцессора

 

4. Изменение

 

содержимого регистров

РГ R1 D1└─┘R2 D2 … └─┘ Rn Dn ВП

микропроцессора

 

 

– 29 –

 

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

 

 

5. Определение

 

контрольной суммы

КС АДРЕС1└─┘АДРЕС2 ВП

массива памяти

 

6. Заполнение массива

ЗК АДРЕС1└─┘АДРЕС2└─┘D0 ВП

памяти константой

 

7. Перемещение массива в

ПМ АДРЕС1└─┘АДРЕС2└─┘АДРЕС3 ВП

памяти

 

8. Передача управления

СТ АДРЕС1 ВП

программе пользователя

 

9. Передача управления

 

программе пользователя с

СТ АДРЕС1└─┘АДРЕС2 ВП

установкой одной точки

 

прерывания

 

10. Передача управления

 

программе пользователя с

СТ АДРЕС1└─┘АДРЕС2└─┘АДРЕС3 ВП

установкой двух точек

прерывания

 

11. Продолжение

 

исполнения программы

СТ ВП

пользователя

 

12. Продолжение

 

исполнения программы

 

пользователя с

СТ└─┘АДРЕС2 ВП

установкой одной точки

 

прерывания

 

13. Продолжение

 

исполнения программы

 

пользователя с

СТ└─┘АДРЕС2└─┘АДРЕС3 ВП

установкой двух точек

 

прерывания

 

30 –

4.РАБОТА ПОЛЬЗОВАТЕЛЯ С УМК

Вданном разделе приводятся краткие сведения о взаимодействии пользователя с УМК, большинство из которых уже приведены

впредыдущих разделах.

Работу с УМК следует начинать в следующей последовательности:

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

вцепи питания и все содержимое ОЗУ теряется;

включить питание, нажав клавишу «~». Если после этого горит один из индикаторов аварии цепи питания (+5В, –5В, +12В), необходимо выключить УМК, дождаться гашения всех индикаторов, и только после этого вновь включить питание;

привести монитор УМК в исходное состояние, нажав клавишу СБ. При этом управление передается основной программе монитора и на дисплей выдается приглашение для ввода директив

(знак «–»).

Дальнейшая работа может заключаться во вводе программы и ее отладке. Ввод и редактирование программ и данных в ОЗУ осуществляется с помощью директивы монитора «П» (см. разд. 3 настоящего учебного пособия). Исходные данные можно также задавать в регистрах микропроцессора с помощью директивы «РГ».

Программы, данные и стек пользователя размещаются в ОЗУ по адресам 0800Н–0ВС9Н. Стек пользователя расположен начиная с ячейки 0ВС9Н в сторону уменьшения адресов (указатель стека инициализирован значением 0BCAH). В качестве команды,

– 31 –

завершающей исполнение программы, в УМК рекомендуется использовать команду RST 7 (код FFH), вызывающую единственное возможное в УМК прерывание с передачей управления монитору и выдачей приглашения для ввода директив (знака «–»). Выполнять

принудительное завершения программы рекомендуется нажатием клавиши ПР. Перед запуском программы пользователя прерывания разрешаются монитором.

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

В пошаговом режиме (клавиша РБ/ШГ в положении ШГ – нажата) возможна отладка в покомандном (клавиша КМ/ЦК в положении КМ – не нажата) и поцикловом (клавиша КМ/ЦК в положении ЦК – нажата) режимах. В пошаговом режиме при однократном нажатии клавиши ШГ исполняется одна команда или один машинный цикл, после этого микропроцессор переходит в состояние ожидания. При этом на светодиодах «АДРЕС», «ДАННЫЕ», «СОСТОЯНИЕ» присутствуют сигналы

– 32 –

соответствующих шин микропроцессора и слова состояния машинного цикла. В покомандном режиме на светодиоды выдается информация, соответствующая машинному циклу выборки первого байта команды. Переход к следующей команде или следующему машинному циклу осуществляется нажатием клавиши ШГ. Прерывание в пошаговом режиме (как и в непрерывном) можно выполнить нажатием клавиши ПР. После этого автоматически исполняется команда RST 7, и происходит прерывание (с запрещением пошаговых режимов). Нажав после отпускания клавиши «ПР» еще несколько раз клавишу ШГ, можно, не отменяя пошагового режима (клавиша РБ/ШГ остается в положении ШГ), выйти в монитор (с выдачей на дисплей адреса команды, перед которой произошло прерывание, и приглашения для ввода директив). После этого можно просматривать и изменять содержимое ОЗУ и регистров. Далее можно продолжить исполнение программы с точки прерывания директивой «СТ» без первого параметра. Если при этом клавиша РБ/ШГ остается в положении ШГ, пошаговый режим автоматически восстанавливается.

При исполнении программы можно в любой момент переходить из одного режима в другой. Нужно только помнить, что при переходе из пошагового режима в непрерывный, после перевода клавиши РБ/ШГ в положение РБ необходимо однократное нажатие клавиши ШГ.

Необходимо помнить, что при установке точек прерывания, по соответствующим адресам ОЗУ записываются команды RST 7. Если после запуска программы с точками прерывания выполнить сброс (нажать клавишу СБ), не дождавшись прерывания, исходное содержимое ОЗУ восстановлено не будет.

33 –

5.ИЗУЧЕНИЕ ЯДРА УМК

5.1.Изучение приемов работы на УМК

ЦЕЛЬ РАБОТЫ: изучение органов управления, режимов работы и монитора УМК.

ПОДГОТОВКА К РАБОТЕ

1.Используя разд. 4 настоящего учебного пособия, изучить органы управления и индикации, а также режимы работы УМК.

2.Изучить программу секундомера, приведенную на рис. 7. РАБОЧЕЕ ЗАДАНИЕ

1.Включить УМК. Для этого убедиться, что клавиша «~» не

нажата, подключить УМК к сети 220В и нажать клавишу «~». Если после этого горит один из индикаторов аварии цепи питания (+5В, –5В, +12В), необходимо выключить УМК, дождаться гашения индикаторов, и только после этого включать питание: повторное включение УМК возможно только при погашенных индикаторах.

2.Используя директивы «ЗК», «П» осуществить заполнение ОЗУ константой 00Н и выборочно проверить правильность очистки ОЗУ. Проделать ту же операцию для любой другой константы.

3.Проверить правильность исполнения директивы «РГ» путем записи и чтения содержимого регистров микропроцессора.

4.Используя директиву «П», занести в память УМК программу секундомера, начиная с адреса 0800Н. Программа в символических и шестнадцатеричных кодах приведена на рис. 7. В левой колонке приведены адреса, а справа от адресов – машинные коды команд, располагаемые по этим адресам. Передать управление программе и убедиться в ее функционировании в непрерывном режиме. Программа выдает результат работы на дисплей. Точность работы секундомера зависит от частоты генератора УМК.

– 34 –

02C0

 

 

 

ERSIND

ASEG

02C0H

 

 

 

EQU

0BFA

 

 

 

BUFCO

EQU

0BFAH

028B

 

 

 

COBYTE

EQU

028BH

035B

 

 

 

DELAY

EQU

035BH

0800

CD C0 02

 

ORG

0800H

 

CALL

ERSIND

0803

0E

00

 

LOOP:

MVI

C,0

0805

06

26

 

MVI

B,38

0807

C5

 

 

NEXT:

PUSH

B

0808

CD 8B 02

 

CALL

COBYTE

080B

AF

F8

 

 

XRA

A

080C

D3

 

 

OUT

0F8H

080E

3A

FA 0B

 

LDA

BUFCO

0811

D3

F9

 

 

OUT

0F9H

0813

3E

20

 

 

MVI

A,20H

0815

D3

F8

 

 

OUT

0F8H

0817

CD 5B 03

 

CALL

DELAY

081A

AF

F8

 

 

XRA

A

081B

D3

 

 

OUT

0F8H

081D

3A

FB 0B

 

LDA

BUFCO+1

0820

D3

F9

 

 

OUT

0F9H

0822

3E

10

 

 

MVI

A,10H

0824

D3

F8

 

 

OUT

0F8H

0826

CD 5B 03

 

CALL

DELAY

0829

C1

 

 

 

POP

B

082A

05

07

08

 

DCR

B

082B

C2

 

JNZ

NEXT

082E

79

 

 

 

MOV

A,C

082F

3C

 

 

 

INR

A

0830

27

 

 

 

DAA

C,A

0831

4F

05

08

 

MOV

0832

C3

 

JMP

LOOP

 

 

 

 

 

END

 

Рис. 7. Программа секундомера

35 –

5.Перевести УМК в пошаговый режим. Выполнить прерывание программы, исполняемой в пошаговом режиме, нажатием клавиши ПР. Определить адрес команды, перед которой произошло прерывание. Возвратить УМК в непрерывный режим.

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

5.2.Программирование вычислительных алгоритмов

ЦЕЛЬ РАБОТЫ: изучение программирования в машинных

кодах для микропроцессора К580ВМ80. Освоение способов отладки программ на УМК.

ПОДГОТОВКА К РАБОТЕ

1.Повторить структурную организацию и систему команд микропроцессора К580ВМ80. Для этого можно использовать источники [1–16].

2.Используя разд. 1 – 3 настоящего учебного пособия изучить структурную организацию, директивы монитора и режимы работы процессора УМК.

3.В соответствии с заданным вариантом написать и закодировать в шестнадцатеричных кодах программу для УМК. Программа должна располагаться в памяти начиная с адреса 0800Н. Все многобайтные данные должны храниться в памяти следующим образом: младший байт – по меньшему адресу, старший байт – по большему адресу. Адресом многобайтных данных является младший (меньший) адрес. Программа должна быть работоспособна

– 36 –

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

РАБОЧЕЕ ЗАДАНИЕ Ввести в память УМК программу, подготовленную по

варианту задания и отладить ее, используя возможности УМК и монитора.

СОДЕРЖАНИЕ ОТЧЕТА

текст варианта задания;

тексты и коды (листинг) программы (по форме рис. 7). ВАРИАНТЫ ЗАДАНИЯ К ЛАБОРАТОРНОЙ РАБОТЕ № 2 1. Произвести циклический сдвиг влево на один разряд

многобайтного кода, находящегося начиная с адреса 0900Н. Количество байт в коде находится по адресу 0А00Н.

2.Даны два 4-байтных числа в обратном коде. Адреса – 0900Н и 0904Н. Найти их сумму (в обратном коде) и записать по адресу 0908Н. Переполнение не фиксировать.

3.Даны два 4-байтных числа в обратном коде. Адреса – 0900Н и 0904Н. Найти их разность (в обратном коде) и записать по адресу 0908Н. Переполнение не фиксировать.

4.Дан массив однобайтных чисел в дополнительном коде. Подсчитать их сумму (в формате два байта). Начальный адрес массива 0900Н. Количество байт в массиве указано по адресу 0А00Н. Результат записать, начиная с адреса 0А01Н.

5.Даны два 4-байтных числа в дополнительном коде. Адреса – 0900Н и 0904Н. Найти их сумму. Результат записать по адресу 0908Н. Переполнение не фиксировать.

37 –

6.Даны два 4-байтных числа в дополнительном коде. Адреса – 0900Н и 0904Н. Найти их разность. Результат записать по адресу 0908Н. Переполнение не фиксировать.

7.Даны два 4-байтных положительных числа в двоичнодесятичном коде (без знака). Адреса – 0900Н и 0904Н. Найти их сумму (в двоично-десятичном коде). Результат записать по адресу 0908Н. Переполнение не фиксировать.

8.Даны два 4-байтных положительных числа в двоичнодесятичном коде (без знака). Адреса – 0900Н и 0904Н. Найти их разность (в двоично-десятичном коде). Результат записать по адресу 0908Н. Переполнение не фиксировать.

9.Произвести арифметический сдвиг влево (умножить на 2N) 4-байтного числа в дополнительном коде, находящегося по адресу 0900Н. Сдвигать на число разрядов (N), хранящееся по адресу 0904Н.

10.Произвести арифметический сдвиг вправо (разделить на 2N) 4-байтного числа в дополнительном коде, находящегося по адресу 0900Н. Сдвигать на число разрядов (N), хранящееся по адресу 0904Н.

11.Подсчитать число двоичных единиц (бит) в массиве. Начальный адрес массива 0900Н. Число байт в массиве указано по адресу 0А00Н. Результат занести по адресу 0А01Н (один байт).

12.Дан массив однобайтных положительных чисел (без знака). Найти минимальный и максимальный элементы массива. Начальный адрес массива 0900Н, количество байт в массиве указано по адресу 0А00Н, минимальный элемент массива переслать по адресу 0А01Н, максимальный – по адресу 0А02Н.

13.Дан массив однобайтных положительных чисел (без знака). Упорядочить массив в порядке убывания. Начальный адрес

– 38 –

массива 0900Н, количество байт в массиве указано по адресу

0А00Н.

14.Дана квадратная двоичная матрица 8×8. Матрица расположена в памяти по строкам: количество столбцов равно разрядности байта. Матрица занимает 8 байт, начиная с адреса 0900Н. Определить контрольную сумму матрицы (по модулю 2): сумму по модулю 2 всех строк матрицы записать по адресу 0А00Н; сумму по модулю 2 всех столбцов матрицы записать по адресу

0А01Н.

15.Дан двухбайтный код, находящийся по адресу 0900Н. Подсчитать число цепочек 0-1 (считая и межбайтовые) и записать по адресу 0902Н.

16.Дан двухбайтный код, находящийся по адресу 0900Н. Подсчитать число цепочек 1-0 (считая и межбайтовые) и записать по адресу 0902Н.

17.Произвести циклический сдвиг вправо 4-байтного кода, находящегося по адресу 0900Н. Сдвигать на число разрядов, находящееся по адресу 0904Н.

18.Даны два двухбайтных числа в дополнительном коде, находящиеся по адресу 0900Н и 0902Н. Меньшее из них записать по адресу 0900Н, большее – по адресу 0902Н (упорядочить по возрастанию).

19.Дан массив однобайтных положительных чисел (без знака). Упорядочить массив в порядке возрастания. Начальный адрес массива 0900Н, количество байт в массиве указано по адресу

0А00Н.

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

– 39 –

ное число сдвигов означает направление сдвигов – влево; отрицательное число сдвигов обозначает направление сдвигов – вправо.

5.3. Организация машинного цикла однокристального микропроцессора

ЦЕЛЬ РАБОТЫ: изучение машинного цикла микропроцессора путем снятия и анализа временных диаграмм шин адреса, данных и управления микропроцессора при исполнении различных команд.

КРАТКИЕ СВЕДЕНИЯ ОБ ОРГАНИЗАЦИИ МАШИННОГО ЦИКЛА МИКРОПРОЦЕССОРА

Машинный цикл процессора УМК полностью определяется особенностями организации машинного цикла однокристального микропроцессора К580ВМ80, достаточно подробно описанного в литературе. Особенностью цикла исполнения команд этого микропроцессора (называемого также рабочим циклом) является его представление в виде нескольких (1–5) более простых циклов обращения к памяти или к портам ввода/вывода для считывания или записи данных. При описании микропроцессора эти простые циклы принято называть машинными. Таким образом, цикл исполнения команды, или рабочий цикл микропроцессора К580ВМ80 состоит из одного или нескольких последовательно исполняемых машинных циклов. В К580ВМ80 11 различных типов машинных циклов. Каждый машинный цикл однозначно идентифицируется словом состояния, выдаваемым в начале цикла на шину данных и затем загружаемым в системный контроллер. Каждое слово состояния включает значения восьми управляющих сигналов, используемых

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]