|
Программирование циклических и типовых программ на Ассемблере для микропроцессора КР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 | | |
|
|