Главная Учебники - Разные Лекции (разные) - часть 35
Дон ГТУ
Лабораторная работа № 4
Программирование циклических и типовых программ на Ассемблере для микропроцессора КР580ИК80
Цель лабораторной работы - изучить программирование циклических и типовых программ на Ассемблере для микропроцессора КР580Ик80. 1 ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
1. Команды, необходимые для организации разветвлений и циклических структур в программах
1.1 Логические команды над аккумулятором и регистром (табл.1.1)
Имеем в виду, что главным назначением команд этой группы является выработка признаков. Результат логической операции записывается в аккумулятор, заменяя первый операнд. Таблица 1.1 – Логические команды Условные обозначения: 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 ^ 1→0 0 1 ^ 0→0 1 1 ^ 0→0 1 Команда CMP вычитает из содержимого аккумулятора второй операнд (не изменяя оба), формирует признаки по правилам команд вычитания. 1.2 Команды инкрементирования и декрементирования (табл.1.2)
Примите к сведению, что команда INR (инкрементирование) увеличивает на единицу содержимое регистра или байта памяти, а команда DCR (декрементирование) уменьшает на единицу это содержимое. Эти команды не используют и не изменяют значение бита переноса, а остальные биты признаков вырабатывают по общим правилам. Таблица 1.2 – Инкрементирование и декрементирование 1.3 Команды изменения содержимого аккумулятора (табл. 1.3)
Команды этой группы работают только с содержанием аккумулятора, поэтому адресной команды не имеют. Таблица 1.3 – Изменение содержания аккумулятора Обратите внимание, что команда RLC устанавливает бит переноса в состояние, равное значению старшего разряда сумматора. Содержимое сумматора циклически сдвигается влево на одну позицию с переносом значения самого старшего разряда в самый младший разряд сумматора. 1.4 Команды изменения признака (флага) переноса
Примите к сведению, что для изменения флага переноса используются две команды: STS – установка в один; CMC – установка в 0. 1.5 Команды условных переходов
Команды условных переходов используют раннее выработанные значения признаков, сами их не изменяют. Имейте в виду, что если заданное в операции условие выполняется, адрес из второго и третьего блока команды заносится в счетчик команд, т.е. выполнение программы начинается с команд расположенных по этому адресу, в противном случае выполняется следующая по порядку команда Таблица 1.4 – Команды условных переходов 2 ЭКСПЕРИМЕНТАЛЬНЫЕ ИСЛЕДОВАНИЯ
Задание: Найти Заносим в ячейку памяти, начиная с номера 8500, четыре числа I1=4, I2=8, I3=6, I4=3. Используя полученные числа, составим программу, наберем программу на ЭВМ, и получим результат. 8500 04 8501 08 8502 06 8503 03 Таблица 2.1 – Программа на ассемблере. Код команды 8200 8201 06 04 8202 8203 8204 21 00 85 8207 8208 8209 CA 12 82 820C 820D 820E DA 05 82 820F 8210 8211 C3 06 82 8214 8215 8217 8218 8219 21 00 08 821A 821B DE 00 8222 8223 8224 D2 26 82 822C 822D 822E C2 13 82
|