Программирование циклических и типовых программ на Ассемблере для микропроцессора КР580ИК80
Команды, необходимые для организации разветвлений и циклических структур в программах, условных переходов, изменения признака переноса, изменения содержимого аккумулятора. Логические команды над аккумулятором и регистром. Программа на ассемблере.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 03.03.2009 |
Размер файла | 25,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Дон ГТУ
Лабораторная работа № 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 |
Подобные документы
Создание и компиляция программ на ассемблере. Структура программ, использование специальных директив резервирования и инициализации данных. Организация ввода-вывода на ассемблере и организация вычислений. Команды передачи управления и обработки строк.
методичка [104,8 K], добавлен 02.12.2009Программирование микро ЭВМ на МП БИС КР580ИК80. Арифметические команды. Представление чисел в различных системах счисления и отображение их на дисплее. Сложение массива однобайтных чисел. Вычитание одинаковых чисел. Сложение двух десятичных чисел.
лабораторная работа [263,8 K], добавлен 03.03.2009Моделирование цифровых узлов комбинационного и последовательностного типа electronic work bench. Основы программирования на Ассемблере: арифметические команды, манипуляции над битами, строковые операции. Программирование с использованием пакета MASM.
отчет по практике [1,9 M], добавлен 10.01.2015Ассемблер как символический аналог машинного языка. Архитектура микропроцессора: организация памяти, способы адресации операндов, правила использования регистров. Текст программы. Этапы программирования на ассемблере, алгоритмы выполнения задач.
контрольная работа [515,1 K], добавлен 20.01.2016Программирование оконных Windows-приложений, средства TASM для их разработки. Углубленное программирование на ассемблере для Win32, минимальная программа. Организация высокоуровневого консольного ввода-вывода. Наборы символов и функции Wlndows APL.
курсовая работа [51,6 K], добавлен 23.06.2015Моделирование цифровых узлов комбинационного и последовательного типа. Арифметические команды. Манипуляции над битами. Совместное использование Ассемблер с другими языками программирования. Вывод на экран в текстовом режиме. Команды работы со строками.
отчет по практике [1,7 M], добавлен 11.03.2014Описание особенностей программирования циклических алгоритмов на С/С++. Использование операторов цикла для организации повтора в программе определенных действий. Создание и реализация программы приближенного вычисления интеграла методом трапеций.
лабораторная работа [86,3 K], добавлен 25.03.2019Цель создания системы и критерии эффективности ее функционирования. Состав типовых проектных решений и пакетов прикладных программ, применяемых в системе. Описание алгоритма вывода координат и отправки команды. Описание программы формирования команды.
дипломная работа [2,9 M], добавлен 08.07.2012Изучение архитектуры персонального компьютера на примере микропроцессора фирмы Intel. Регистры общего назначения. Оперативная память; форматы данных и команд. Команд пересылки с различными способами адресации операндов. Структура программы на Ассемблере.
курс лекций [506,4 K], добавлен 03.05.2014Арифметические команды языка Assembler в архитектуре x86. Организация ветвлений и циклов в программах. Ввод строк с клавиатуры и команды пакетной обработки (строковые команды). Алгоритм вывода на экран в текстовом режиме с использованием средств BIOS.
контрольная работа [18,0 K], добавлен 05.07.2014