- •Лабораторная работа №122 арифметические операции в мкс
- •1.Сложение двух многобайтных чисел без знака (adn1)
- •2.Сложение трех многобайтных чисел без знака (adn3)
- •2.3.Решение задачи 2 (см.П. 1.4) программой adn21
- •Вопросы по защите лабораторной работы
- •Вопросы по допуску к выполнению лабораторной работы
2.Сложение трех многобайтных чисел без знака (adn3)
2.1.ВЫДЕЛЕНИЕ ПОДПРОГРАММЫ AD2 ИЗ ADN2 И СОСТАВЛЕНИЕ ПРОГРАММЫ ADN21 (ЭКВИВАЛЕНТНОЙ ADN2) С ВЫЗОВОМ AD2
Делим ADN2 по линии раздела блоков 1 и 2. Блоки 2,3,4 (образуют цикл) относим к подпрограмме (см.рис.3), которая в блоке 5 завершается командой RET (возврат из подпрограммы). RET в блоке 5 (выход из цикла) замещает вспомогательную команду NOP. Блок 1 (установка параметров первого цикла и другие настройки) относим к вызывающей (основной) программе. Основная программа (блок 1) и подпрограмма (блоки 2,3,4,5) объединяются в единое целое командой LCALL ad16 или ACALL ad11 (вызов подпрограммы).
ADN21: ● |
1 |
Установка параметров первого цикла и др. |
|
1В |
Основная программа |
|
● ● |
|
|
|
LCALL AD2 NOP |
|
|
|
||||||
AD2: ● |
|
|
|
AD2: CLR C |
Вызываемая подпрограмма |
|
● М: |
2 |
Основное действие цикла |
|
М: ADDC A,@R1 |
|
|
|
3 |
Установка параметров следующего цикла |
|
3В |
|
|
нет
|
4 |
Проверка: Циклы все? |
|
DJNZ R2, M(rel) |
|
|
● да |
5 |
|
RET |
|
а) блок- б)назначение в) программа
схема блоков
Рис.3.Выделение подпрограммы AD2 и взаимодействие
основной программы ADN21 и подпрограммы
2.2.Составление спецификации к подпрограмме AD2
Правильно составленная спецификация облегчает работу с подпрограммой. Можно не знать, как работает подпрограмма, но с помощью спецификации грамотно её (подпрограмму) использовать.
Имя: AD2
Назначение: Сложение двух многобайтных чисел без знака
Расположение слагаемых и суммы: Занимают три строки (X, Y и Z –номера строк 1-го, 2-го слагаемых и суммы) РПД (см.табл.3), младшие байты занимают столбец 0Fh, байты постарше – 0Eh и т. д.
Параметры передаваемые от основной программы подпрограмме:
▪Адрес младшего байта 1-го слагаемого (XFh передается через R0,Б0).
▪Адрес младшего байта 2-го слагаемого (YFh передается через R1,Б0).
▪Адрес младшего байта суммы (ZFh передается через R1,Б2).
▪Формат слагаемых (число циклов - N) передается через R2,Б0.
Используемый способ передачи: через регистры банка 0 и банка 2 РПД.
Местонахождение результата:
Подпрограмма выдает байты суммы в строку Z РПД.