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




Дон ГТУ

 

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

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


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

 


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

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

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 устанавливает бит переноса в состояние, равное значению старшего разряда сумматора. Содержимое сумматора циклически сдвигается влево на одну позицию с переносом значения самого старшего разряда в самый младший разряд сумматора.

 

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

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

 

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

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

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

 

Таблица 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К(переход по четности)

 




Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-10-17 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: