Инструкции по выполнению работы

Микропроцессор КР580ВМ80А имеет фиксированный набор команд. Каждая команда имеет свой машинный код – слово длиной 8, 16 или 24 бит, занимающее соответственно 1, 2 или 3 ячейки памяти в запоминающем устройстве микроЭВМ. Микропроцессор работает по программе, интерпретируя содержимое ячейки памяти как код команды или как данные.

Задание №1

Исследовать работу программы 2.1

Рассмотрим программу 2.1, извлекающую число из ячейки памяти с адресом 0010h, осуществляющую инверсию этого числа и записывающую результат по адресу 0011h.

Программа 3.1 (в мнемокодах)

Мнемокод Комментарий

LXI H, 0010 загрузить адрес 0010h

MOV A,M передать данные из 0010h в аккумулятор

CMA инвертировать содержимое аккумулятора

INX HL сформировать адрес для результата

MOV M,A записать число из аккумулятора в память

HLT прервать выполнение программы

Для начала работы программы, необходимо в рабочую ячейку 0010 занести любое шестнадцатиричное число от 01 до FF.

При записи программ все числа представляются в шестнадцатеричной системе счисления.


Задание 1: Исследование программы 2.1

1.1 Ввести программу 2.1 в микро – ЭВМ

1.2 Записать исследуемое число по адресу 0010

1.3 Проверить результат выполнения программы по числу записанному в ячейке 0011

1.4 Составьте таблицу 1 содержимого регистров микропроцессора при выполнении программы 3.1 с командой CMA при выполнении программы по шагам.

Таблица 1

Содержимое регистров после выполнения каждой команды программы 3.1
Регистры МП Шаг программы (команда, после которой анализируется содержимое регистров)
0 шаг (начало) 1шаг LXI H 2 шаг MOV A,M 3шаг CMA 4 шаг INX HL 5 шаг MOV M,A 6 шаг HLT  
A              
FL              
H              
L              
M1=0010              
M2=0011              

Задание 2: Исследование программы 2.2

2.1Вызвать окно выбора задания и в меню выбрать программу 2.2

2.2 Занести в ячейки 0010 и 0011 сравниваемые числа

2.3 Результат выполнения программы находится в регистре В

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

2.5 Графически отобразить выполнение команды lda 0010

Инструкции по выполнению работы - student2.ru

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

Задание 3: Исследовать работу программы 2.3

3.1 Загрузить программу 2.3 в память

3.2 Записать данные в ячейки памяти 0010 и 0011

3.3 Результирующее число находится в ячейке, адресуемой парой регистров ВС

3.4 Составьте таблицу 2 содержимого регистров микропроцессора при выполнении программы 3.3 с командой ADD M при выполнении программы по шагам.

Таблица 2

Команда A FL HL М1/данные М2/данные М3/данные ВС DE
lxi hl 0010                
lxi bc, 0011                
ldax bc                
add m                
inx bc                
stax bc                
hlt                

Задание 4: Исследование программы 2.4

4.1 Записать программу 2.4 в микро – ЭВМ

4.2 Записать исследуемые числа по адресам 0010 и 0011

4.3 Проверить результат выполнения программы по числу, записанному в регистр В

Задание 5: Исследование программы 2.5

5.1 Занести шестнадцать любых однобайтных чисел в ячейки памяти, начиная с 0000

5.2 Убедится в выполнении последовательного сдвига этих чисел проверкой содержимого адресов 0010

Задание 6: Используя программы 2.2; 2.3; 2.5; составить программу пересылки двух операндов двойной длины, хранящихся в ячейках 0010, 0011, 0012, 0013 в регистрах пары BC и DE

Задание 7: Исследовать выполнение программы 2.6

7.1 Преобразуемое число записать по адресу 0010

7.2 Результат инверсии находится в регистре D

При выполнении заданий №№ 6 и 7 требуется воспользоваться программой EDITOR из пакета SHELLКР580,

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

Приложение №1

Программа №2.1

lxi hi,0010 записать адрес 0010 в паре HL

mov a,m передать данные в аккумулятор

cma инвертировать содержимое аккумулятора

lnx hl инвертировать содержимое HL

mov m,a передать содержимое регистра А в ячейку памяти

hit прервать выполнение программы

Программа №2.2

lda 0010 передать данные из ячейки 0010 в аккумулятор и

mov d,a в регистр D

lhtd 0011 данные из ячейки 0011 передать в регистр HL

sub l вычесть содержимое регистра L из содержимого А

jnc cnt если есть заем, идти на CNT

mov b,l передать содержимое L в регистр В

jmp done перейти на конец программы

cnt:mov b,d передать содержимое D в регистр B

done:hlt остановить выполнение программы

Программа №2.3

lxi hl,0010 записать адрес 0010 в регистр HL

lxi bc,0011 записать адрес 0011 в регистр ВС

ldax bc передать данные из ячейки по адресу ВС в аккумулятор

add m сложить содержимое аккумулятора и ячейки 0010

inx bc увеличить содержимое ВС на 1

stax bc передать содержимое аккумулятора в ячейку ВС

hlt завершить выполнение

Программа №2.4

start:lxi hl,0010 записать адрес 0010 в регистр HL

lxi bc,0011 записать адрес 0011 в регистр ВС

ldax bc передать данные из ячейки ВС в аккумулятор

xra m проверка числа

iz start если 0, то идти на начало

mov b,a записать в регистр В значение аккумулятора

hlt завершить выполнение

Программа №2.5

lxi hl,0000 загрузить адрес в регистр HL

lxi de,0010 загрузить адрес в регистр DE

mvl b,10 записать в регистр число 10

cnt:mov a,m передать данные из ячейки HL в аккумулятор

stax de передать число из аккумулятора в ячейку DE

inx hl инкрементировать HL

inx de инкрементировать DE

dcr b деинкрементировать B

jnz cnt если b≠, идти на CNT

hlt завершить выполнение

Программа №2.6

lxi hl,0010 записать в регистр HL адрес 0010

mov a,m передать данные в аккумулятор из ячейки HL

cma инвертировать число в аккумуляторе

mov d,a передать содержимое аккумулятора в регистр D

hlt останов программы

Наши рекомендации