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, но и значение займа. Итоговое значение займа в результате выполнения операции фиксируется в разряде переноса регистра признаков.
... = 5 е – ( t2 / t2 ) ; t2 = - t2 ln 0.5 = 0.144 мкс. При R = 1 кОм С = t / R » 144 пФ. 2. Определение общего алгоритма функционирования устройства Работу цифрового фильтра определяет программа, состоящая из инструкций, предназначенных для микропроцессора, и хранящаяся в ПЗУ независимо от наличия питающего напряжения. Поскольку ПЗУ – единственное устройство, способное хранить информацию при ...
... , В 3. Активное сопротивление, Ом «1» «10» «100» «1000» «1» «10» «100» «1000» «1» «10» «100» «1000» «10м» 2.2 Программное обеспечение тестирования устройства Программа тестирования ПЗУ по методу контрольной суммы LXI B 0040h ; Загрузить в ВС начальный адрес ПЗУ MVI D ...
0 комментариев