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

Программирование циклических и типовых программ на Ассемблере для микропроцессора КР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 + + 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 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
Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

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

Слов:1077
Символов:13239
Размер:25.86 Кб.