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

Посмотреть архив целиком

Дон ГТУ










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

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


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



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


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


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

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


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

Команды

Признаки

Выполняемые функции

Команды

Признаки

Выполняемые функции

Z

N

C

H

P



Z

N

C

H

P


ANAR

+

+

0

+

+

(A)^(R)→A








ANAM

+

+

0

+

+

(A)^(M)→A

ANI Im

+

+

0

0

+

(A)^Im→A

XRAR

+

+

0

0

+

(A)(R)→A

XRI Im

+

+

0

0

+

(A)Im→A

XRAM

+

+

0

0

+

(A)(M)→A








ORAR

+

+

0

0

+

(A)(R)→A

ORI Im

+

+

0

0

+

(A)Im→A

ORAM

+

+

0

0

+

(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 00→0 00→0

0 ^ 1→0 01→1 01→1

1 ^ 0→0 10→1 10→1

1 ^ 0→0 11→0 11→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

AgC2K(безусловный переход к команде Ag)

JC Ag

(C)=1, то AgC2K, иначе (С2К)+3→ С2К

JNC Ag

(C)=0, то AgC2K, иначе (С2К)+3→ С2К

JZ Ag

(Z)=1, то AgC2K, иначе (С2К)+3→ С2К

JNZ Ag

(Z)=0, то AgC2K, иначе (С2К)+3→ С2К

JP Ag

(N)=0, то AgC2K, иначе (С2К)+3→ С2К(переход по «+»)

JM Ag

(N)=1, то AgC2K, иначе (С2К)+3→ С2К(переход по «-»)

JPE Ag

(P)=1, то AgC2K, иначе (С2К)+3→ С2К(переход по четности)



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


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

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

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

  1. 04

  2. 08

  3. 06

  4. 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


Случайные файлы

Файл
124038.rtf
I.DOC
90719.rtf
28931.rtf
7002-1.rtf




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.