Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Лабораторная работа «Команды пересылок»

Поиск

Выполнение лабораторной работы предполагает составление рабочей программы в соответствии с заданием, выбор исходных данных и проверка выполнения программы на лабораторном стенде.

Варианты заданий.

1. Поменять местами содержимое ячеек памяти (ЯП) по схеме .

2. Поменять местами содержимое регистров и ЯП по схеме .

3. Поменять местами содержимое ЯП и регистра по схеме .

4. Поменять местами содержимое регистров по схеме .

5. Переслать данные по схеме .

Арифметические команды

 

Практическое занятие «Арифметические операции для однобайтных чисел. Команды сдвига»

Арифметические команды

Арифметические команды управляют выполнением операций сложения и вычитания с данными, размещенными в РОН и во внешней памяти. Операции умножения и деления в системе команд микропроцессора КР580ИК80А отсутствуют. Арифметические операции выполняются над положительными и отрицательными числами.

Перед выполнением арифметических команд один из операндов располагается в аккумуляторе. В результате выполнения команд в регистре признаков устанавливаются флаги – признаки состояний (см. приложение А). Результат выполнения команд сохраняется в аккумуляторе, исходное содержимое аккумулятора при этом теряется.

В системе команд предусмотрены три команды простого сложения и три команды сложения с учетом триггера переноса. В этих командах первый операнд расположен в аккумуляторе, а второй может быть расположен либо в одном из регистров (РОН), либо в ячейке памяти, адресуемой содержимым пары регистров (H, L), либо во втором байте команды.

 

Команды простого сложения однобайтных чисел

Однобайтные команды:

ADD R- сложение содержимого аккумулятора А и регистра.

ADD M – сложение содержимого аккумулятора с содержимым ячейки памяти, адрес которой хранится в регистровой паре (H, L).

Двухбайтная команда (непосредственная адресация):

ADI <data> – сложение аккумулятора с содержимым второго байта команды.

Аналогично командам сложения предусмотрено три команды простого вычитания и три команды вычитания с заемом. Эти команды выполняются аналогично соответствующим командам сложения. Уменьшаемое всегда располагается в аккумуляторе. Вычитаемое может находиться: в одном из регистров, в ячейке памяти; во втором байте команды.

 

Команды простого вычитания однобайтных чисел

SUB R – вычитание из содержимого аккумулятора содержимого регистра.

SUB M - вычитание из содержимого аккумулятора содержимого ячейки памяти, адрес которой хранится в регистровой паре (H, L).

Двухбайтная команда (непосредственная адресация):

SUI <data> – вычитание из содержимого аккумулятора содержимого второго байта команды.

 

Команды сдвига

Команды сдвига используются для умножения и деления чисел на . Команды сдвига выполняются только в аккумуляторе, результат выполнения операции также располагается в аккумуляторе.

Команды умножения на 2:

RLC – сдвинуть циклически влево содержимое аккумулятора (рисунок 9).

Рисунок 9

 

RAL– сдвинуть циклически влево содержимое аккумулятора через триггер переноса CY (рисунок 10).

 

Рисунок 10

Команды деления на 2:

RRC- сдвинуть циклически вправо содержимое аккумулятора (рисунок 11).

Рисунок 11

RAR - сдвинуть циклически вправо содержимое аккумулятора через триггер переноса CY (рисунок 12).

 

Рисунок 12

 

Умножение на нечетные числа происходит с помощью команд сдвига и команд арифметического сложения. Если шестнадцатеричное число нужно умножить на число, не кратное 2N, то сначала число нужно умножить на 2N с помощью команд сдвига, а потом к результату прибавить исходное число с помощью команд сложения (ADD R, ADC R).

Пример 1. Сложить два однобайтных числа, находящихся в ЯП (0800) и (0801). Результат записать в ЯП (0802).

 

Таблица 5 – Пример программы

Адрес ЯП Мнемоническое обозначение Код Комментарий
  LDA 3A Содержимое ЯП (0800) переслать в аккумулятор А
     
     
  MOV B, A   Содержимое А переслать в регистр В
  LDA 3A Содержимое ЯП (0801) переслать в аккумулятор
     
     
  ADD B   Сложить содержимое А и регистра В
  STA   Переслать содержимое аккумулятора в ЯП (0802)
     
090A    
090B HLT   Останов

Пример 2. Из содержимого регистра В вычесть число ODH и умножить результат на 03H. Результат записать в ЯП (0800).

 

Таблица 6 – Пример программы

Адрес ЯП Мнемоническое обозначение Код Комментарий
  MOV A, B   Содержимое регистра B переслать в аккумулятор A
  SUI D6 Вычесть из содержимого А число 0DH
  0D 0D
  RLC   Cдвинуть влево циклически содержимое аккумулятора (умножение на 02H)
  ADD B   Сложить содержимое А и регистра В (умножение на 03H)
  STA   Переслать содержимое аккумулятора A в ЯП (0800)
     
     
  HLT   Останов

 



Поделиться:


Последнее изменение этой страницы: 2016-08-12; просмотров: 230; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.221.101.3 (0.005 с.)