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

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (5 оценок, среднее: 4,80 из 5)
Загрузка...
Контрольные рефераты

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

Дон ГТУ

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

АКГ-05

АУТПТЭК

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

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

1 ТЕОРЕТИЧЕСКАЯ часть

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

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

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

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

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

Эти примеры демонстрируют, что такое программка.

Таблица 1- 1.2
Арифметические
команды

Главный арифметической функцией является сложение 2-ух чисел. Команда, имеющая мнемокод ADD Rд, складывает данные регистра Rд и аккума (регистра А) и итог сложения запоминает в аккуме.

— CARRY — регистра признаков. Разряд (флаг) переноса играет огромную роль при выполнении процессором арифметических операций и работает девятым разрядом аккума. По флагу командами IC и INC можно выполнить переход. Применяется он так же при сложении чисел длиннее восьми разрядов, выполняя функции связи меж 2-мя б записи числа.

О состоянии флага переноса, как и остальных флагов регистра признаков в МИКРОЛАБе может сказать ячейка памяти с адресом 83ЕА, где флаги за­писываются в последовательности, приведенной на рисунке 1.1.

В «ЭЛЕКТР0НИКЕ-580» разряд С высвечивается на панели установки.

Набросок 1.1 — Флаги № ШС КР580ИКБ0

Вычитание содержимого регистра Rд из содержимого аккума производит команда SUB Rд. к примеру, команда SUB B вычитает из аккума данные регистра В.

Команда вычитания употребляет флаг переноса как разряд заема. Если флаг переноса устанавливается опосля команды SUB Rд, означает, число в регистре Rд больше, чем в аккуме.

Опосля выполнения команды SUB Rд итог остается в аккумуля­торе, вызов содержимого которого на индикатор регистра данных осущест­вляется адресом 83ЕВ в «МИКРОЛАБе» и кнопками REC, А в «ЗЛЕКТРОНИКЕ-580».

1.
3
программка
сложения
2-ух
однобайтных
чисел
X
и
У

Задачка заключается в том, чтоб, выполнив занесение однобайтных чисел в регистры А и Rд, сложить их и поместить итог сложения в аккумулятор.

Задайтесь числовыми значениями Х = 38, Y = А3 и исходным адресом программки, приняв его равным 8200.

Обратите внимание на то, что все приведенные числа записаны в шестнадцатеричной системе счисления.

Включите лабораторную установку и, пользуясь листингом программки, приведенным в табл. 2, запишите в память ЭВМ (Электронная вычислительная машина — комплекс технических средств, предназначенных для автоматической обработки информации в процессе решения вычислительных и информационных задач) по обозначенным адресам коды установок.

Таблица 1.2 — программка PRG 1 сложения 2-ух однобайтных чисел

Адресок

Код команды

Метка

Мнемокод

Комментарий

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.

Для получения разности 2-ух чисел 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 (адресок первого слагаемого). Опосля выполнения 2-ой команды (адреса 820З, 8204) в регистре С запишется число 4 (число слагаемых). Командами 8205 и 8206 делается обнуление регистров А, В и регистра признаков.

Командой 8207 с меткой MI начинается 1-ый цикл шага суммирования. В итоге выполнения данной команды в регистр А заносится 1-ое слагаемое (число 31) по адресу 8250, записанное в регистровой паре HL.

Потому что переполнения аккума нет, по команде 8208 осуществляется переход на метку М2 (адресок команды 820С), и к содержимому регистровой пары HL прибавляется I. сейчас тут записан адресок 8251 второго слагаемого.

Опосля выполнения команды 820Е число слагаемых (содержимое регистра С) становится равным 3 и по команде 820F осуществляется переход на MI- начало последующего цикла шага суммирования.

Во 2-м цикле в регистр А записывается сумма DC чисел 31 и АВ, флаг переноса не устанавливается, миниатюризируется число слагаемых регистра С до 2.

В 3-ем цикле в аккумулятор записывается 62 (младший б суммы чисел DC и 86) и устанавливается флаг переноса С. По команде 8208 осуществляется переход по адресу 820В и в регистр В записывается I. содержимое регистровой пары HL равно 8253, содержимое регистра С – I.

В четвертом цикле опосля выполнения команды 8207 в аккумулятор записывается 56, флаг переноса установлен, содержимое регистра В равно 2.

По команде 820(Е) содержимое регистра С становится равным 0, и ко­манда 820F передает управление адресу 8212 — конец выполнения програм­мы.

1.5 Вычитание схожих по длине чисел

Разглядите программку получения разности 2-ух чисел 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, который делает корректировку результата операции по последующим правилам:

если признак доп переноса АС равен I, то к содержимому аккума добавляется число 6;

если признак переноса С равен I, то к содержимому старших 4 бит аккума добавляется число 6.

Заметьте, что в предлагаемой программке, как и в предшествующей, рассматриваются числа с длиной больше машинного слова. Потому операции с таковыми числами МП БИС проводят по б, начиная с младших байтов.

Разглядите программку с именованием PRG 4 для слагаемого Х=3045, расположенного побайтно в ячейках памяти 8050 и 8051, и слагаемого Y = 2071 — в ячейки памяти 8052 и 8053. Итог сложения располагается в ячейках, отведенных для второго слагаемого.

Опосля выполнения программки вызовите поочередно ячейки 8053 и 8052 и запишите их содержимое. Это итог решения. Он должен быть равен десятичному числу 5116.

Таблица 1.5 — программка PRG 4 сложения 2-ух десятичных чисел

Адресок

Код

команды

Метка

Мнемоника

Комментарий

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

Указать на адресок последующих 2-ух разрядов числе Y

820E

23

INX H

Указать на адресок последующих 2-ух разрядов числе Х

820F

OD

DCR C

Уменьшить содержимое счетчика числа байтов

8210

8211

8212

C2

09

82

INZ M1

Если не крайний (старший) б, то идти на MI

8213

FF

RST 7

Оборвать выполнение программки

2 ЭКСПЕРИМЕНТАЛЬНАЯ часть

2.1 Выполним программку получения суммы 2-ух чисел

X=A+B, имеющих схожую длину. Листинг программки приведен в таблице 2.1.

A= B=

Итог сложения заносится в область памяти, отведенную под 2-ое слагаемое.

В области памяти записывается по адресам

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

Указать на адресок последующих 2-ух разрядов числа В

820E

23

INX H

Указать на адресок последующих 2-ух разрядов числа А

820F

OD

DCR C

Уменьшить содержимое счетчика числа байтов

8210

8211

8212

C2

09

82

INZ M1

Если не крайний (старший) б, то идти на МI

8213

E7

RST 7

Оборвать выполнение программки

2.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, познакомились с программированием в машинных кодах и мнемокодах, научились воспользоваться средствами управления и клавиатурой устройств.

]]>