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

Посмотреть архив целиком

Дон ГТУ






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

АКГ-05

АУТПТЭК

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



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


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


1.1 Представление чисел


При программировании микро ЭВМ на МП БИС КР580ИК80 необходимо пользоваться способом представления чисел с фиксированной десятичной точкой. При этом знак числа и количество разрядов, занятых дробной частью числа, могут быть учтены при подготовке данных или программным путем.

Следует помнить, что коды команд, адреса и данные вводятся в микро ЭВМ числами в шестнадцатеричной системе счисления. Некоторой особенностью в лабораторных установках МИКРОЛАБ и ЭЛЕКТРОНИКА-580 является отображение чисел на дисплее (табл. I).

Для МП БИС КР580ИК80 можно представлять данные в виде двоично-десятичного числа, при этом каждый байт рассматривается как две тетрады (два полубайта), а каждая тетрада кодирует одну десятичную цифру.

Такое представление позволяет закодировать в одном байте десятичные числа от 0 до 99. Обратите внимание на то, что, используя для представления шестнадцатеричную систему счисления, в одном байте можно закодировать число от 0 до FF , что соответствует числам десятичной системы от 0 до 255.

Эти примеры показывают, что такое представление чисел более рационально: используется меньший объем памяти, сокращается программа.


Таблица 1- Представление чисел в различных системах счисления и отображение их на дисплее

Десятичная

система

счисления

Восьмеричная

система

счисления

Двоичная сис­тема счисле­ния (по тетрадам)

Шестнадцате-ричная систе­ма счисления

Символы

на дисплее

0

0

0000

0

0

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

Прервать выполнение программы


Случайные файлы

Файл
70975.rtf
101067.rtf
MPRAVO2.DOC
60709.rtf
141433.rtf




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.