Реферат по предмету "Информатика, программирование"


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

Дон ГТУ
Лабораторнаяработа № 3
АКГ-05
АУТПТЭК
Программированиеарифметических задач на Ассемблере для микропроцессора К580

Цель лабораторной работы- рассмотреть особенности выполнения простейших арифметических операций надцелыми числами без знака на микропроцессорных установках МИКРОЛАБ КР580ИК80 иЭЛЕКТРОНИКА-580, познакомиться с программированием в машинных кодах имнемокодах, научиться пользоваться средствами управления и клавиатуройустройств.

1ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
 
1.1Представление чисел
При программированиимикро ЭВМ на МП БИС КР580ИК80 необходимо пользоваться способом представлениячисел с фиксированной десятичной точкой. При этом знак числа и количестворазрядов, занятых дробной частью числа, могут быть учтены при подготовке данныхили программным путем.
Следует помнить, что кодыкоманд, адреса и данные вводятся в микро ЭВМ числами в шестнадцатеричнойсистеме счисления. Некоторой особенностью в лабораторных установках МИКРОЛАБ иЭЛЕКТРОНИКА-580 является отображение чисел на дисплее (табл. I).
Для МП БИС КР580ИК80можно представлять данные в виде двоично-десятичного числа, при этом каждыйбайт рассматривается как две тетрады (два полубайта), а каждая тетрада кодируетодну десятичную цифру.
Такое представлениепозволяет закодировать в одном байте десятичные числа от 0 до 99. Обратитевнимание на то, что, используя для представления шестнадцатеричную системусчисления, в одном байте можно закодировать число от 0 до FF, чтосоответствует числам десятичной системы от 0 до 255.
Эти примеры показывают,что такое представление чисел более рационально: используется меньший объемпамяти, сокращается программа.
Таблица1- Представление чисел в различных системах счисления и отображение их на дисплее
Десятичная
система
счисления
Восьмеричная
система
счисления Двоичная сис­тема счисле­ния (по тетрадам) Шестнадцате-ричная систе­ма счисления
Символы
на дисплее 0000 1 1 0001 1 1 2 2 0010 2 2 3 3 0011 3 3 4 4 0100 4 4 5 5 0101 5 5 6 6 0110 6 6 7 7 0111 7 7 8 10 1000 8 8 9 11 1001 9 9 10 12 1010 А А 11 13 1011 В B 12 14 1100 С С 13 15 1101 D D 14 16 1110 Е E 15 17 1111 F F
1.2 Арифметическиекоманды
Основной арифметической функцией является сложение двухчисел. Команда, имеющая мнемокод ADD Rд, складывает данные регистра Rд и аккумулятора (регистра А) и результат сложения запоминает ваккумуляторе.
— CARRY — регистра признаков. Разряд (флаг) переноса играетбольшую роль при выполнении микропроцессором арифметических операций и работает девятым разрядом аккумулятора. По флагу командами IC и INC можно осуществить переход.Применяется он так же при сложении чисел длиннее восьми разрядов, выполняя функции связи между двумя байтами записи числа.
О состоянии флага переноса, как и других флаговрегистра признаков в МИКРОЛАБе может сообщить ячейка памятис адресом83ЕА, где флаги за­писываются в последовательности, приведенной на рисунке1.1.
В «ЭЛЕКТР0НИКЕ-580» разряд С высвечивается на панели установки.
/>

Рисунок 1.1 — Флаги № ШС КР580ИКБ0
Вычитание содержимого регистра Rд из содержимого аккумулятора производит команда SUB Rд. Например, командаSUB B вычитаетиз аккумулятора данныерегистра В.
Командавычитания использует флаг переноса как разрядзаема. Если флаг переноса устанавливается после команды SUB Rд, значит, число в регистре Rд больше,чем в аккумуляторе.
После выполнения командыSUB Rд результат остается в аккумуля­торе, вызов содержимого которого на индикатор регистра данных осущест­вляется адресом 83ЕВ в «МИКРОЛАБе» и клавишами REC, А в «ЗЛЕКТРОНИКЕ-580».
1.3 ПрограммасложениядвуходнобайтныхчиселXиУ
Задачасостоит в том, чтобы, выполнив занесение однобайтных чисел в регистры А и Rд, сложитьих и поместить результат сложения в аккумулятор.
Задайтесь числовыми значениями Х = 38,Y = А3 и начальным адресомпрограммы, принявего равным8200.
Обратите внимание на то,что все приведенные числа записаны в шестнадцатеричной системе счисления.
Включите лабораторнуюустановку и, пользуясь листингом программы, приведенным в табл. 2, запишите впамять ЭВМ по указанным адресам коды команд.
Таблица 1.2 — Программа PRG 1 сложения двух однобайтных чиселАдрес Код команды Метка Мнемокод Комментарий 8200 AF PRG 1: ХRА А Очистить аккумулятор 8201 ЗЕ MVI A, 38 Записать в аккумулятор 8202 38 число X 8203 06 MVI B, A3 Записать в регистр В 8204 A3 число У 8205 80 ADD 8 Сложить X и Y 8206 E7 RST 7 Прервать выполнение программы
Выполнив записьпрограммы, установите начальный адрес и запустите программу. После еёисполнения на дисплее установится запись: 8207 DB_ _, показывающая результат вычисления DB по адресу 8207.
Для получения разностидвух чисел X и Y можно использовать программу PRG 1, заменив в ней по адресу 8205 код команды 80 (ADD B) кодом90 (SUB В) команды вычитания содержимого регистра В из содержимогоаккумулятора, разместив предварительно в регистрах В и А соответственновычитаемое и уменьшаемое. Разность будет записана в аккумуляторе.
1.4Сложение массива однобайтных чисел
Массив однобайтныхшестнадцатеричных чисел, например, 31, АВ, 86, разместите в последовательныхадресах памяти, например, 8250, 8251, 8252, 8253.
В качестве входныхпараметров для выполнения программы необходи­мо иметь адрес первого слагаемого,например, 8250, записанный в регистрах H, L, и числослагаемых — в регистре С. Выходным параметром будет являться сумма, старшийбайт которой записан в регистре В, а младший байт — в аккумуляторе.

Таблица 1.3 – Программа PRG 2 сложения массива однобайтных чиселАдрес
Код
команды Метка Мнемоника Комментарий
8200
8201
8202
21
50
82 PRG 2: LXI H,8250 Загрузить в регистры HL, адрес первого слагаемого
8203
8204
0E
04 MVI C, 04 Загрузить в регистр С количество слагаемых 8205 AF XRA A Очистить аккумулятор 8206 47 MOV B, A Очистить регистр В 8207 86 M1: ADD M Прибавить к содержимому аккумулятора число из массива слагаемых
8208
8209
820А
D2
0D
82 INC M2 Если переноса нет, то идти на М2
820В
820С
04
B7
INR B
ORA A
Увеличить содержимое регистра В на I
Очистить флаг переноса 820D 23 M2: INX H Указать на следующий адрес слагаемого 820E 0D DCR C Уменьшить содержимое регистра С на I
820F
8210
8211
C2
07
82 INZ Если не все слагаемые, то идти на MI 8212 FF RST 7 Прервать выполнение программы
Выполнение программы сименем PRG 2 начинается с команды загрузки регистровойпары HL, 16-битным числом 8250 (адреспервого слагаемого). После выполнения второй команды (адреса 820З, 8204) врегистре С запишется число 4 (число слагаемых). Командами 8205 и 8206производится обнуление регистров А, В и регистра признаков.
Командой 8207 с меткой MI начинается первый цикл этапа суммирования.В результате выполнения этой команды в регистр А заносится первое слагаемое(число 31) по адресу 8250, записанное в регистровой паре HL.
Так как переполненияаккумулятора нет, по команде 8208 осуществляется переход на метку М2 (адрескоманды 820С), и к содержимому регистровой пары HL прибавляется I.Теперь здесь записан адрес 8251 второго слагаемого.
После выполнения команды820Е число слагаемых (содержимое регистра С) становится равным 3 и по команде 820F осуществляется переход на MI- начало следующего цикла этапа суммирования.
Во втором цикле в регистрА записывается сумма DC чисел 31 и АВ,флаг переноса не устанавливается, уменьшается число слагаемых регистра С до 2.
В третьем цикле ваккумулятор записывается 62 (младший байт суммы чисел DC и 86) и устанавливается флаг переноса С. По команде 8208осуществляется переход по адресу 820В и в регистр В записывается I. Содержимое регистровой пары HL равно 8253, содержимое регистра С – I.
В четвертом цикле послевыполнения команды 8207 в аккумулятор записывается 56, флаг переносаустановлен, содержимое регистра В равно 2.
По команде 820(Е)содержимое регистра С становится равным 0, и ко­манда 820F передает управление адресу 8212 — конец выполнения програм­мы.
1.5Вычитание одинаковых по длине чисел
Рассмотрите программуполучения разности двух чисел X и Y, имеющих одинаковую длину. Листингпрограммы приведен в табл. 1.4.
Входными параметрамипрограммы будут являться: длина чисел в байтах, записанная в регистре В, адресмладшего байта вычитаемого — в регистровой паре HL, адрес младшего байта уменьшаемого — в регистровой паре DE. Результат вычисления заносится вобласть памяти, отведенную под вычитаемое.
Положим X = А304 и Y = 7E2I,
B области памяти записывается поадресам
8250 — 04 (младший байтуменьшаемого);
8251 — A3 (старший байтуменьшаемого);
8252 — 21 (младший байтвычитаемого);
8253 – 7E (старший байт вычитаемого).
В регистре B записано 2 — длина чисел X и Y в байтах.
Таблица 1.4 – Программа PRG 3 вычитание чиселАдрес
Код
команды Метка Мнемоника Комментарий
8200
8201
06
02 PRG 3: MVI B, 02 Загрузить счетчик длины числа
8202
8203
8204
I I
50
82 LXI D, X Загрузить в регистры D, E адрес младшего байта уменьшаемого
8205
8206
8207
21
52
C2 LXI M, V Загрузить в регистры H, L адрес младшего байта вычитаемого 8208 AF XRA A Очистить аккумулятор 8209 IA M1: LDAX D Загрузить в аккумулятор уменьшаемое 820A 9E SBB M Вычесть из содержимого аккумулятора вычитаемое 820В 77 MOV M, A Записать разность на место вычитаемого 820C I3 INX D Указать на следующий байт уменьшаемого 820D 23 INX H Указать на следующий байт вычитаемого 820E 05 DCR B Уменьшить содержимое счетчика длины числа
820F
8210
8211
02
09
82 INZ M1 Если не последний (старший) байт, то идти на MI 8212 FF RST 7 Прервать выполнение программы
Обратите внимание на то,что по адресу 820А записана команда SBB. Она отличаетсяот аналогичной команда SUB М тем, что из содержимого аккумуляторавычитается не только число, записанное в ячейке М по адресу, хранящемуся врегистровой паре HL, но и значениезайма. Итоговое значение займа в результате выполнения операции фиксируется вразряде переноса регистра признаков.
1.6Сложение многобайтовых десятичных чисел
В табл. 1.5 приведенлистинг программы сложения чисел, представляемых в МП БИС КР580ИК80 в видедвоично-десятичных чисел. Так как такое представление чисел требует от ЭВМпреобразования данных, в программу необходимо ввести оператор DAA, который выполняет коррекциюрезультата операции по следующим правилам:
если значение младших 4бит аккумулятора больше девяти или если признак дополнительного переноса АСравен I, то к содержимому аккумуляторадобавляется число 6;
если значение старших 4бит аккумулятора больше девяти или если признак переноса С равен I, то к содержимому старших 4 битаккумулятора добавляется число 6.
Заметьте, что впредлагаемой программе, как и в предыдущей, рассматриваются числа с длинойбольше машинного слова. Поэтому операции с такими числами МП БИС проводят побайтам, начиная с младших байтов.
Рассмотрите программу сименем PRG 4 для слагаемого Х=3045,размещенного побайтно в ячейках памяти 8050 и 8051, и слагаемого Y = 2071 — в ячейки памяти 8052 и8053. Результат сложения размещается в ячейках, отведенных для второгослагаемого.
После выполненияпрограммы вызовите последовательно ячейки 8053 и 8052 и запишите их содержимое.Это результат решения. Он должен быть равен десятичному числу 5116.

Таблица 1.5 — Программа PRG 4 сложения двух десятичных чиселАдрес
Код
команды Метка Мнемоника Комментарий
8200
8201
8202
21
50
82 PRG 4: LXI H, X Загрузить в регистры младшие два разряда числа Х
8203
8204
8205
I I
52
80 LXI D, Y Загрузить в регистры младшие два разряда числа Y 8206 AF XRA A Очистить аккумулятор
8207
8208
0E
02 MVI C, 02 Загрузить счетчик числа байтов 8209 IA M1: LDAX D Загрузить в аккумулятор два разряда числа Y 820A 8E ADC M Прибавить к содержимому аккумулятора два разряда числа Х с учетом переноса 820В 27 DAA Преобразовать результат в десятичный код 820C 12 STAX D Передать результат в ячейку памяти, адресуемой регистровой парой DE 820D 13 INX D Указать на адрес следующих двух разрядов числе Y 820E 23 INX H Указать на адрес следующих двух разрядов числе Х 820F OD DCR C Уменьшить содержимое счетчика числа байтов
8210
8211
8212
C2
09
82 INZ M1 Если не последний (старший) байт, то идти на MI 8213 FF RST 7 Прервать выполнение программы

2ЭКСПЕРИМЕНТАЛЬНАЯ ЧАСТЬ
2.1Выполним программу получения суммы двух чисел
 X=A+B, имеющих одинаковую длину. Листингпрограммы приведен в таблице 2.1.
A=/>          B=/>
Результат сложениязаносится в область памяти, отведенную под второе слагаемое.
В области памяти записываетсяпо адресам
8250 – 87 (младший байтпервого слагаемого)
8251 – 35 (старший байтпервого слагаемого)
8252 – 87 (младший байтвторого слагаемого)
8253 – 02 (старший байтвторого слагаемого)
Таблица 2.1 – Программасложения массива однобайтных чиселАдрес
Код
команды Метка Мнемоника Комментарий
8200
8201
8202
21
50
82 PRG 1: LXI H, X Загрузить в регистры младшие два разряда числа А
8203
8204
8205
11
52
80 LXI D, Y Загрузить в регистры младшие два разряда числа В 8206 AF XRA A Очистить аккумулятор
8207
8208
OE
02 MVI C, 02 Загрузить счетчик числа байтов 8209 1A M1: LDAX D Загрузить в аккумулятор два разряда числа А 820А 8E ADC M Прибавить к содержимому акумулятора два разряда числа В с учетом переноса 820В 27 DAA Преобразовать результат в десятичный код 820C 12 STAX D Передать результат в ячейку памяти, адресуемой регистровой парой DE 820D 13 INX D Указать на адрес следующих двух разрядов числа В 820E 23 INX H Указать на адрес следующих двух разрядов числа А 820F OD DCR C Уменьшить содержимое счетчика числа байтов
8210
8211
8212
C2
09
82 INZ M1 Если не последний (старший) байт, то идти на МI 8213 E7 RST 7 Прервать выполнение программы
2.2Выполним программу получения разности двух чисел Cи D
Листинг программыприведен в таблице 2.2.
Входными параметрамипрограммы будут являться: длина чисел в байтах, записанная в регистре В, адресмладшего байта вычитаемого – в регистровой паре HL, адрес младшего байта уменьшаемого – в регистровой паре DE. Результат вычисления заносится вобласть памяти, отведенную под вычитаемое. C=/>, D=/>. В регистре В записано 2 – длиначисел C и D в байтах. В области памяти записывается по адресам
8250 – Е1 (младший байтуменьшаемого);
8251 – 37 (старший байтуменьшаемого);
8252 – 75 (младший байтвычитаемого);
8253 – 08 (старший байтвычитаемого);
В регистре В записано 2 –длина чисел C и D в байтах.
Таблица 1.4 – Программа PRG 2 вычитание чиселАдрес
Код
команды Метка Мнемоника Комментарий
8200
8201
06
02 PRG 2: MVI B, 02 Загрузить счетчик длины числа
8202
8203
8204
I I
50
82 LXI D, X Загрузить в регистры D, E адрес младшего байта уменьшаемого
8205
8206
8207
21
52
C2 LXI M, V Загрузить в регистры H, L адрес младшего байта вычитаемого 8208 AF XRA A Очистить аккумулятор 8209 IA M1: LDAX D Загрузить в аккумулятор уменьшаемое 820A 9E SBB M Вычесть из содержимого аккумулятора вычитаемое 820В 77 MOV M, A Записать разность на место вычитаемого 820C I3 INX D Указать на следующий байт уменьшаемого 820D 23 INX H Указать на следующий байт вычитаемого 820E 05 DCR B Уменьшить содержимое счетчика длины числа
820F
8210
8211
02
09
82 INZ M1 Если не последний (старший) байт, то идти на MI 8212 Е7 RST 7 Прервать выполнение программы

ВЫВОД
В ходе лабораторнойработы рассмотрели особенности выполнения простейших арифметических операцийнад целыми числами без знака на микропроцессорных установках МИКРОЛАБ КР580ИК80и ЭЛЕКТРОНИКА -580, познакомились с программированием в машинных кодах имнемокодах, научились пользоваться средствами управления и клавиатуройустройств.


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.