Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Программа № 17.






Адрес Машинный код Метка Мнемокод Комментарий
  21 B00B   LXI H, 0BB0 Записать в регистры H, L адрес первого слагаемого
  06 05   MVI B, 05 Загрузить в регистр B количество слагаемых
  CD 09 08   CALL ADDB Вызвать подпрограмму сложения
  CF   RST1 Прервать выполнение программы
  AF ADDB XRA A Очистить аккумулятор
080A 4F   MOV C, A Очистить счетчик переносов
080B   CNT ADD M Прибавить к содержимому аккумулятора число из массива слагаемых
080C D2 1008   JNC TRM Если переноса нет идти на TRM
080F 0C   INR C Увеличить содержимое регистра С на 1
    TRM INX H Указать следующий адрес слагаемого
      DCR B Уменьшить содержимое счетчика слагаемых
  C2 0B08   JNZ CNT Если не все слагаемые, то идти на CNT
  C9   RET Выход из подпрограммы

 

Программа сложения массива однобайтных чисел с получением двухбайтного результата - программа MAIN (программа 17).

Слагаемые должны быть расположены в последовательных адресах памяти. Входными параметрами для подпрограммы ADDB являются адрес первого слагаемого, записанный в регистрах Н, L, и число слагаемых, записанное в регистре В. Выходным параметром программы MAIM является сумма, старший байт которой записан в регистре С, а младший - в аккумуляторе А. Алгоритм программы сложения состоит в том, что после прибавления каждого элемента массива проверяется переполнение аккумулятора (разряд С-1) и, если это имеет место, то содержимое регистра C увеличивается на 1. Таким образом, за счет суммирования единиц переноса формируется старший байт суммы (рис. 2.7, а).

МикроЭВМ может проводить арифметические операции с числами с двойной или большей длиной машинного слова. Так как МП БИС имеет 8-разрядное АЛУ, то операции с такими числами должны проводиться по байтам, начиная с младших байтов. Так, операция сложения чисел 17F5+3411 будет проводиться в следующем виде:

Операция вычитания чисел 6F5C - 13С5 будет осуществляться в таком виде:

Из приведенных примеров видно, что при суммировании (вычитании) младших байтов чисел необходимо применять команду ADD (SUB), а для сложения (вычитания) остальных — команду ADC (SBB), которая будет учитывать состояние разряда регистра C признаков МП БИС. Программа нахождения разности чисел, имеющих одинаковую длину, — программа 18. Входные параметры: регистр С—длина чисел (в байтах), регистры Н, L— адрес младшего байта вычитаемого, регистры D, Е — адрес младшего байта уменьшаемого. Каждое из чисел записывается в последовательных адресах памяти, начиная с младших байтов. Результат заносится в область памяти, отведенную под вычитаемое. В том случае, если уменьшаемое меньше вычитаемого, будет подаваться звуковой сигнал.

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.005 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал