основных узлов и блоков МП при выполнении программ по его структурной схеме.
2. Методические указания по вводной части.
Принять рапорт дежурного. Проверить наличие и внешний вид курсантов, подготовку класса к занятию. Дать указания на устранение выявленных недостатков.
Объявить тему, отрабатываемые вопросы, план занятия, учебные и воспитательные цели.
3. Методика проверки подготовки курсантов к занятию.
Проверку подготовки курсантов к занятию провести путем письменной «летучки» по восьми вариантам (см. Приложение1) по разработке линейных программ, в машинных кодах МП и на языке программирования "Ассемблер". Перед тем как раздать задания преподаватель кратко доводит требования по оформлению решений, отводимое время, дает команду дежурному раздать распечатки с системой команд МП, высвечивает слайд "Структурная схема микропроцессора".
4. Методические рекомендации по отработке учебных вопросов.
Прежде чем приступить к рассмотрению вопросов занятия, необходимо напомнить обучаемым назначение регистра флагов МП, его разрядов, организацию условных и безусловных переходов при выполнении МП соответствующих команд.
Практическое занятие №11фактически является продолжением практического занятия №10, поэтому методические рекомендации по отработке учебных вопросов аналогичны.
Учебная группа приступает к разработке программ в машинных кодах и на языке программирования «Ассемблер», используя распечатку системы команд МП.
Для каждой задачи, условия которой даются преподавателем под запись, составляется блок-схема алгоритма её выполнения, а затем вершинам алгоритма ставятся в соответствие команды из имеющегося набора. Данная работа проводится курсантами у доски, а также самостоятельно на местах. Преподаватель выдает задание по разработке нескольких программ, для того чтобы успевающие могли отработать максимально возможное количество задач, а также, в ходе занятия, выявляет отстающих и помогает им разобраться в вопросах вызывающих затруднения.
1.ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЯЮЩИХСЯ УЧАСТКОВ ПРОГРАММ
Задача № 1.
Составить программу для решения выражения:
при y = h'09, z = h'03. Результат записать в ОЗУ по адресу h'0030.
Решение:
Мнемоники ЯП "Ассемблер" |
№ яч.ОЗУ |
Машинный код |
Комментарии |
mvia, h'09 |
0 1 |
3е 09 |
РгА:=h’09 |
mvi b, h'03 |
2 3 |
06 03 |
РгВ:=h’03 |
sub b |
4 |
90 |
РгА:= (РгА) – (РгВ) |
jm m1 |
5 6 7 |
fa 0b 00 |
если результат < 0, перейти к метке m1, иначе к следующей команде. |
mvi a, h'09 |
8 9 |
3e 09 |
РгА:=h’09 (восстановление аккумулятора) |
addb |
a |
80 |
РгА:= (РгА) + (РгВ) |
m1: sta h'0030 |
b c d |
32 30 00 |
ОЗУ[h’0030]:= (РгА)результат |
hlt |
e |
76 |
ОСТАНОВ |
Вопрос: Как изменится программа, если вместо команды SUBB для сравнения Z и У использовать команду CMPB?
Ответ: Программа станет короче на одну команду mvia, h'09, так как не будет необходимости восстанавливать аккумулятор.
Мнемоники ЯП "Ассемблер" |
№ яч.ОЗУ |
Машинный код |
Комментарии |
mvia, h'09 |
0 1 |
3е 09 |
РгА:=h’09 |
mvi b, h'03 |
2 3 |
06 03 |
РгВ:=h’03 |
cmp b |
4 |
b8 |
(РгА)–(РгВ); (РгА)- не изменяется |
jm m1 |
5 6 7 |
fa 0b 00 |
если результат < 0, перейти к метке m1, иначе к следующей команде. |
addb |
9 |
80 |
РгА:= (РгА) + (РгВ) |
m1: sta h'0030 |
a b c |
32 30 00 |
ОЗУ[h’0030]:= (РгА)результат |
hlt |
d |
76 |
ОСТАНОВ |
Задача № 2.
В машинных кодах МП КР580 и на языке программирования «Ассемблер» составить программу (подпрограмму), уменьшающую содержимое регистра А на единицу. Если полученный результат окажется равным 0, сдвигающую содержимое регистра А на 1 разряд влево и завершающую программу без сохранения результата, иначе записывает результат по адресу h’2002.
Решение:
Мнемоники ЯП "Ассемблер" |
№ яч.ОЗУ |
Машинный код |
Комментарии |
dcra |
0 |
90 |
РгА:= (РгА) – 1 |
jzm1 |
1 2 3 |
ca 08 00 |
если результат = 0, перейти к метке m1, иначе к следующей команде. |
sta h’2002 |
4 5 6 |
32 02 20 |
ОЗУ[h’2002]:= (РгА)результат |
hlt |
7 |
76 |
ОСТАНОВ |
m1: rlc |
8 |
07 |
РгА:=Сдв (РгА)на 1разряд влево. |
hlt |
9 |
76 |
ОСТАНОВ |
2. Программирование циклических программ
Задача № 3.
Составить программу циклического уменьшения числа Х = h'14 с шагом = h'02 N=5 раз. Результат записать в ОЗУ по адресу h'0030.
Решение:
Мнемоники ЯП "Ассемблер" |
№ яч.ОЗУ |
Машинный код |
Комментарии |
mvia, h'14 |
0 1 |
3e 14 |
РгА:= h’14 |
mvi b, h'02 |
2 3 |
06 02 |
РгВ:=h’02 |
mvi c, h'05 |
4 5 |
0e 05 |
РгС:= h’05 |
m1: sub b |
6 |
90 |
РгА:= (РгА) – (РгВ) |
dcr c |
7 |
0d |
РгС:= (РгС) -1 |
jnz m1 |
8 9 a |
c2 06 00 |
если результат ¹ 0, перейти к меткеm1 ,иначе к следующей команде. |
sta h'0030 |
b c d |
32 30 00 |
ОЗУ[h’0030]:= (РгА)результат |
hlt |
e |
76 |
ОСТАНОВ |
Задача № 4.
В машинных кодах микропроцессора МП КР580 и на языке программирования «Ассемблер» составить программу циклического сдвига содержимого регистра А=h’80 вправо до тех пор, пока результат не станет меньше h’10. Результат записать в ОЗУ по адресу h’5489.
Решение:
Мнемоники ЯП "Ассемблер" |
№ яч.ОЗУ |
Машинный код |
Комментарии |
mvi a, h'80 |
0 1 |
3e 80 |
РгА:= h’80 |
mvi b, h'10 |
2 3 |
06 10 |
РгB:=h’10 |
m1: rrc |
4 |
0f |
РгА:=Сдв (РгА)на 1разряд вправо |
cmp b |
5 |
b8 |
(РгА)–(РгВ); (РгА)- не изменяется |
jp m1 |
6 7 8 |
f2 04 00 |
если результат ³ 0, перейти к меткеm1, иначе к следующей команде. |
sta h'5489 |
9 a b |
32 89 54 |
ОЗУ[h’5489]:= (РгА)результат |
hlt |
c |
76 |
ОСТАНОВ |
Вопрос: Как изменить программу, чтобы подсчитать количество
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.