Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторка.DOC
Скачиваний:
1
Добавлен:
10.09.2019
Размер:
90.62 Кб
Скачать

Лабораторная работа № 2 Система команд микроЭвм

1 Цель работы

Изучить систему команд УОУ , построенного на базе микропроцессора КР 580 ВМ 80 А, их структуру, процедуру их кодирования и ввода в ОЗУ, организацию командного управления и выполнить вычисления на УОУ .

2 Теоретические сведения

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

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

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)].

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

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

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

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

3 Порядок выполнения работы

НАЧАЛО

H,L Nя RAL (четные) A  (A-M(Nÿ ))

RAR (нечетные) ( четные )

А(A-M(Nя)-CÓ)

X  M(HL) 1 ( нечетные )

СУ = 1

HL+1 0

A (A+M(Nя+1)) HL  Nя+2

Y  M(HL)

1 0

RG..M(Nя) S=1 A  M(HL)

A  RG... RST 4*8

3.1 В регистровую пару HL ячейки 8200 заносятся значение адреса Nя = 820A, а в регистр этой же ячейки 53: REGL0AREGH82REGC53

3.2 В ячейку 8200 заносится код операции 71: МОV M,C

3.3 Который передает число 53 из регистра C в ячейку 810A:

ADDR8200MEM71STEP

3.4 В ячейку 8201 заносится код операции 2C. В регистре L значение увеличивается на единицу. В результате команды L получен 0B, H=82:

ADDR8201MEM2CSTEP

3.5 В регистр ячейки B заносим число E3, затем в ячейку 8202 заносим код операции 70 MOV M,B, который передает число из регистра B в регистровую пару HL. В результате в ячейке 820B находится число E3:

REGBE3ADDR8202MEM70STEP

3.6 В следующую ячейку 8203 заносим код операции 2D, который соответствует команду DCR L. Затем в следующую за ней ячейку код 53 MOV D,M

3.7 В результате этих операций регистр D содержит число 53,а в регистровой паре HL адрес 820A: ADDR8203MEM53STEP8204MEM56STEP

3.8 Чтобы перенести число из регистра в аккумулятор необходимо занести код операции 1F в ячейку 8205. В результате выполнения этой операции в аккумуляторе находится число 53. Т.к. в аккумуляторе находится нечетное число, то выполним команду RAR код операции 1E, которое заносится в ячейку 8206 и команда осуществляет сдвиги вправо.

3.9 Нахождение числа в аккумуляторе 53(16) 0101001(2) после выполнения операции станет - 00101001(2) = 29(16). В итоге в аккумуляторе содержится число 29: ADDR8206MEM1FSTEP

3.10 Используя команду JC КОП DA в ячейку 8207: ADDR8207MEMDAS7ED

SBB M(код 9E)

3.11 Заносимую ячейку памяти 820A вычитаем A=A-M(8240)-СУ:

ADDR820AMEM9ESTEP

3.12 Выполним инкрементацию регистровой пары HL 2 раза, с помощью команды INR L(код 2С). Заносятся в ячейки 820B и 820C, в результате команды в регистрах L=0C, L=82:

ADDR820BMEM2CSTEP8200MEM2CSTEP

3.13 Передаем число 29 из аккумулятора в ячейку 821C: MOV M,A(код 77), которую записываем в ячейки 820С: ADDR820CMEM77STEP

3.14 Чтобы расширить команду RST4*8 необходимо занести код E7 в ячейку 820C: ADDR820CMEME7STEP