Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР1_122 .doc
Скачиваний:
3
Добавлен:
20.11.2018
Размер:
137.22 Кб
Скачать

Лабораторная работа №122 арифметические операции в мкс

1.Сложение двух многобайтных чисел без знака (adn1)

1.1. Выполнить сложение двух четырехбайтных чисел в шестнадцатеричной системе счисления

Номера байт

5

4

3

2

1

1-ое слагаемое

AA

BB

CC

DD

2-ое слагаемое

99

22

66

44

Сумма

D Dh+44h+0=1 21h 1-е байты

байты cуммы

CCh+66h+1=1 33h 2-е байты

ADDC A,@R1

Выводы: Сложение многобайтных чисел рационально проводить командой ADDC A,@R1, реализующей основное действие цикла. При сложении двух четырехбайтных чисел, во избежание потери переноса в 5-ый байт, необходимо выполнение пяти циклов. Перед входом в первый цикл C<=0.

1.2. Задача 1. Разработать программу ADN1 для следующих исходных данных: слагаемые расположены в соответствии с табл.1, байты суммы должны замещать соответствующие байты 2-го слагаемого.

Таблица 1

Подпрограмма выполняет:

M@R1<=[M@R0]+[M@R1]

M=РПД(IRAM)

Ст.

Адреса байт

Мл.

1-е слагаемое

20h

. . .

2Dh

2Eh

2Fh

2-е слагаемое

30h

. . .

3Dh

3Eh

3Fh

Здесь 2Fh и 3Fh конечные адреса (адреса младших байт) областей расположения первого и второго слагаемых. Для удобства наблюдения за ходом выполнения программы в окне РПД(IRAM), байты слагаемых располагаются по принципу «старший адрес – младший байт». Из приведенного, слева от табл.1, выражения следует, что программа использует 2 адресных регистра.

Решение поставленной задачи должно использовать «Простейший цикл» (см.рис 1), с ключевой командой ADDC A,@R1 в поле 2В (в блоке

основное действие цикла (см.строка 2 рис.1)).

Обосновать и привести в отчете последнее утверждение.

ADDC A,@R1 выполняет A1<=[A0]+[M@R1]+[C], где [A1]-сумма слагаемых([A]-после выполнения команды); [A0]- первое слагаемое; [M@R1]-второе слагаемое; [C]-бит переноса (обнуляется перед первым циклом).

Приведенное описание команды сложения позволяет заполнить поле 2Г(см. рис.2) недостающими комментариями. Обосновать словесно появление последних и записать соответствующие команды в поле 2В (см.рис.1).

Записать комментарии в полях 1Г и 3Г, затем заполнить поля 1В и 3В командами, реализующими соответствующие комментарии.

1

Установка

параметров

первого

цикла и др.

М:

2

Основное

действие

цикла

М:

ADDC A,@R1

A<=[M@R0]

A<=[A]+[M@R1]+[C]

M@R1<=[A]

3

Установка

параметров

следующего

цикла

нет

4

Проверка:

Циклы все?

DJNZ R2, M(rel)

DEC R2, если NZ идти на М, иначе NOP

да

5

NOP

Выход из цикла

а) блок- б)назначение в) программа г) комментарии

схема блоков

Рис.1.Программная конструкция «Простейший цикл»

для программы ADN1

1.3.Составить (используя рис.1,в и 1,г) исходный текст программы (с комментариями) ADN1.asm, получить ADN1.lst и ADN1.hex.

Проиллюстрировать в ADSIM работу программы ADN1 для слагаемых: CC DD EE FF h и 66 11 55 44 h, первый цикл прокрутить пошагово, остальные с точкой останова по адресу первой команды в поле 3В. Все остановки отображать в отчете копиями фрагментов окон ADSIM.

1.4. Задача 2. В отличие от задачи 1, байты суммы заносятся в строку 4 РПД, как показано в табл.2.

Расположение слагаемых и суммы в РПД

Таблица 2

Программа ADN2 выполняет: @R1,Б2<=[@R0,Б0]+

+[@R1,Б0], т.е. требуются

3 адресных регистра: R0,Б0;

Ст.

Адреса байт

Мл.

1-е слагаемое

20h

. . .

2Dh

2Eh

2Fh

2-е слагаемое

30h

. . .

3Dh

3Eh

3Fh

сумма

40h

. . .

4Dh

4Eh

4Fh

R1,Б0; R1,Б2(R1 банка 2 с прямым адресом 11h).

Здесь 2Fh и 3Fh конечные адреса областей расположения первого и второго слагаемых, а 4Fh-конечный адрес области суммы. Для удобства наблюдения за ходом выполнения программы в окне РПД(IRAM), байты слагаемых и суммы располагаются по принципу «старший адрес – младший байт». Банк 1 здесь не задействован, т.к.,по умолчанию, это область стека.

1

Установка

параметров

первого

цикла и др.

М:

2

Основное

действие

цикла

М:

ADDC A,@R1

A<=[M@R0]

A<=[A]+[M@R1]+[C]

3

Установка

параметров

следующего

цикла

нет

4

Проверка:

Циклы все?

DJNZ R2, M(rel)

DEC R2, если NZ идти на М, иначе NOP

да

5

NOP

Выход из цикла

а) блок- б)назначение в) программа г) комментарии

схема блоков

Рис.2.Программная конструкция «Простейший цикл»

для программы ADN2

1.5. Исходя из соображений обеспечения нормальной работы основного действия цикла (см.строку 2, рис.2) заполнить поле 1Г (3Г) и затем комментарии записать в виде команд в поле 1В (3В).

Составить (используя рис.2,в и 2,г) исходный текст программы (с комментариями) ADN2.asm, получить ADN2.lst и ADN2.hex.

Проиллюстрировать в ADSIM работу программы ADN для слагаемых: CC DD EE FF h и 66 11 55 44 h, первый цикл прокрутить пошагово, остальные с точкой останова по адресу команды в поле 4В. Все остановки отображать в отчете копиями фрагментов окон ADSIM.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]