Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Программа № 17.
Программа сложения массива однобайтных чисел с получением двухбайтного результата - программа MAIN (программа 17). Слагаемые должны быть расположены в последовательных адресах памяти. Входными параметрами для подпрограммы ADDB являются адрес первого слагаемого, записанный в регистрах Н, L, и число слагаемых, записанное в регистре В. Выходным параметром программы MAIM является сумма, старший байт которой записан в регистре С, а младший - в аккумуляторе А. Алгоритм программы сложения состоит в том, что после прибавления каждого элемента массива проверяется переполнение аккумулятора (разряд С-1) и, если это имеет место, то содержимое регистра C увеличивается на 1. Таким образом, за счет суммирования единиц переноса формируется старший байт суммы (рис. 2.7, а). МикроЭВМ может проводить арифметические операции с числами с двойной или большей длиной машинного слова. Так как МП БИС имеет 8-разрядное АЛУ, то операции с такими числами должны проводиться по байтам, начиная с младших байтов. Так, операция сложения чисел 17F5+3411 будет проводиться в следующем виде: Операция вычитания чисел 6F5C - 13С5 будет осуществляться в таком виде: Из приведенных примеров видно, что при суммировании (вычитании) младших байтов чисел необходимо применять команду ADD (SUB), а для сложения (вычитания) остальных — команду ADC (SBB), которая будет учитывать состояние разряда регистра C признаков МП БИС. Программа нахождения разности чисел, имеющих одинаковую длину, — программа 18. Входные параметры: регистр С—длина чисел (в байтах), регистры Н, L— адрес младшего байта вычитаемого, регистры D, Е — адрес младшего байта уменьшаемого. Каждое из чисел записывается в последовательных адресах памяти, начиная с младших байтов. Результат заносится в область памяти, отведенную под вычитаемое. В том случае, если уменьшаемое меньше вычитаемого, будет подаваться звуковой сигнал.
|