Реферат: Программирование циклических и типовых программ на Ассемблере для микропроцессора КР580ИК80

Дон ГТУ

Лабораторнаяработа № 4

Программированиециклических и типовых программ на Ассемблере для микропроцессора КР580ИК80


Цель лабораторной работы- изучить программирование циклических и типовых программ на Ассемблере длямикропроцессора КР580Ик80.


1ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

 

1.Команды, необходимые для организации разветвлений и циклических структур впрограммах

 

1.1Логические команды над аккумулятором и регистром (табл.1.1)

Имеем в виду, что главнымназначением команд этой группы является выработка признаков. Результатлогической операции записывается в аккумулятор, заменяя первый операнд.

Таблица 1.1 – Логическиекоманды

Команды Признаки Выполняемые функции Команды Признаки Выполняемые функции Z N C H P Z N C H P ANAR + + + + (A)^(R)→A ANAM + + + + (A)^(M)→A ANI Im + + + (A)^Im→A XRAR + + +

(A)/>(R)→A

XRI Im + + +

(A)/>Im→A

XRAM + + +

(A)/>(M)→A

ORAR + + +

(A)/>(R)→A

ORI Im + + +

(A)/>Im→A

ORAM + + +

(A)/>(M)→A

CMPR + + + + + (A)~(R) CPI Im + + + + + (A)~Im CMPM + + + + + (A)~(M)

Условные обозначения: R –общее обозначение одного из регистров общего назначения(РОН) – A, B, C, D, E,H, L; M – адрес ячейки памяти, хранящийся в двух смежных РОН H и L; SP – стек;YSP – указатель стека; CzK – счетчик команд; Im – непосредственный операнд; Ag– адрес ячейки памяти, с которой работает данная команда. Запись (R) означаетсодержимое регистра, нуль в графике «признаки» — установку в нуль привыполнении команды, а плюс – установку признака в соответствии с правиломустановки флага.

Помните, что логическиеоперации работают с каждыми из восьми битов независимо.

ANA «и»                      XRA«искл. или»                            ORA «или»

0 ^ 0→0                         0/>0→0                                  0/>0→0

0 ^ 1→0                         0/>1→1                                  0/>1→1

1 ^ 0→0                        1/>0→1                                 1/>0→1

1 ^ 0→0 1/>1→0           1/>1→1                                 1 ^ 1→0

Команда CMP вычитает из содержимого аккумуляторавторой операнд (не изменяя оба), формирует признаки по правилам командвычитания.

1.2Команды инкрементирования и декрементирования (табл.1.2)

Примите к сведению, чтокоманда INR (инкрементирование) увеличивает наединицу содержимое регистра или байта памяти, а команда DCR (декрементирование) уменьшает наединицу это содержимое. Эти команды не используют и не изменяют значение битапереноса, а остальные биты признаков вырабатывают по общим правилам.

Таблица 1.2 –Инкрементирование и декрементирование

Команды Признаки Выполняемые функции Z N C H P INR R + + - + + (R)+1→R INR M + + - + + (M)+1→R DCR R + + - + + (R)-1→R DCR M + + - + + (M)-1→R

1.3 Командыизменения содержимого аккумулятора (табл. 1.3)

Команды этой группыработают только с содержанием аккумулятора, поэтому адресной команды не имеют.

Таблица 1.3 – Изменениесодержания аккумулятора

Команды Признаки Выполняемые функции Z N C H P RLC - - + - - Am→Am+1, A7→Ao, A7→C RRC - - + - - Am+1→Am, Ao→A7, Ao→C RAL - - + - - Am→Am+1, C→Ao, A7→C RAR - - + - - Am+1→Am, Ao→C1, C→A7 CMA - - + - -

/>, инвертирование

Обратите внимание, чтокоманда RLC устанавливает бит переноса всостояние, равное значению старшего разряда сумматора. Содержимое сумматорациклически сдвигается влево на одну позицию с переносом значения самогостаршего разряда в самый младший разряд сумматора.

1.4Команды изменения признака (флага) переноса

Примите к сведению, чтодля изменения флага переноса используются две команды: STS – установка в один; CMC – установка в 0.

1.5Команды условных переходов

Команды условныхпереходов используют раннее выработанные значения признаков, сами их неизменяют.

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

Таблица 1.4 – Командыусловных переходов

Команды Пояснение JMP Ag Ag→C2K(безусловный переход к команде Ag) JC Ag (C)=1, то Ag→C2K, иначе (С2К)+3→ С2К JNC Ag (C)=0, то Ag→C2K, иначе (С2К)+3→ С2К JZ Ag (Z)=1, то Ag→C2K, иначе (С2К)+3→ С2К JNZ Ag (Z)=0, то Ag→C2K, иначе (С2К)+3→ С2К JP Ag (N)=0, то Ag→C2K, иначе (С2К)+3→ С2К(переход по «+») JM Ag (N)=1, то Ag→C2K, иначе (С2К)+3→ С2К(переход по «-») JPE Ag (P)=1, то Ag→C2K, иначе (С2К)+3→ С2К(переход по четности)

2ЭКСПЕРИМЕНТАЛЬНЫЕ ИСЛЕДОВАНИЯ

Задание: Найти />

Заносим в ячейку памяти,начиная с номера 8500, четыре числа I1=4, I2=8, I3=6, I4=3.

Используя полученныечисла, составим программу, наберем программу на ЭВМ, и получим результат.

8500   04

8501   08

8502   06

8503   03

Таблица 2.1 – Программа на ассемблере.

Адрес

Код

команды

Метка Мнемоника

8200

8201

06

04

PRG 1: MVI B, 4

8202

8203

8204

21

00

85

LXI H, 8500 8205 7E M1: MOV A, M 8206 05 M2: DCR B

8207

8208

8209

CA

12

82

JZ M3 820А 23 INR H 820В BE CMP H

820C

820D

820E

DA

05

82

JC M1

820F

8210

8211

C3

06

82

JMP M2 8212 7E M3: MOV A, M 8213 5F MOV E, A

8214

8215

16 MVI D, 03 03 8216 A7 ANA A

8217

8218

8219

21

00

08

LXI H, 0008

821A

821B

DE

00

MVI C, 0 821C 7B MOV A, E 821D 17 RAL 821E 5A MOV E, D 821F 79 MOV A, C 8220 17 RAL 8221 92 SUB D

8222

8223

8224

D2

26

82

JNC M5 8225 82 ADD D 8226 4F M5: MOV C, A 8227 3F CMC 8228 7E MOV A, M 8229 17 RAL 822A 67 MOV H, A 822B 2D DCR L

822C

822D

822E

C2

13

82

JNZ M4 822F RST /> /> /> /> />
еще рефераты
Еще работы по информатике, программированию