Реклама ⓘ
Главная » Микроконтроллеры
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Реклама ⓘ

Сложение и вычитание

Как было сказано выше, существует полная симметрия между действиями сложения и вычитания беззнаковых и знаковых чисел (последние, естественно, должны быть представлены в дополнительном коде). Это означает, что для знаковых вычислений можно использовать те же самые инструкции процессора, что и для беззнаковых. Более того, сами арифметические действия оказываются взаимозаменяемыми.

Очевидно, что
X – Y = X + (-Y) и X + Y = X - (-Y).

Отыскание разности X – Y равносильно добавлению к X числа Y взятого с противоположным знаком, а отыскание суммы X – Y может быть сведено к вычитанию из X числа противоположного по знаку Y.
Это очень сильный вычислительный прием, который при программировании AVR чаще всего используется в следующем контексте.

В их системе команд имеются инструкции вычитания константы из регистра subi Rd,K и sbсi Rd,K (вычитание с заемом), но отсутствуют такие же инструкции сложения регистра с константой. Поэтому добавить число к регистру можно только следующим образом

	ldi   R17,10    ;R17 = 10
	add   R16,R17   ;R16 = R16 + R17 = R16 + 10.

Число 10 заносится в промежуточный регистр R17, после чего используется команда сложения двух регистров add Rd,Rr. Однако благодаря использованию дополнительного кода тоже действие будет выглядеть как

	subi  R16, -10   ;R16 = R16 – (-10) = R16 + 10

Точно также к регистровой паре можно добавить 2-байтовое смещение

	subi  XL,low(-0x1234)  ; XH:XL + 0x1234 = XH:XL – (-0x1234)
	sbсi  XH,high(-0x1234)

Перейти к следующей части:

Теги:

Котов Игорь Юрьевич Опубликована: 2012 г. 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (0) | Я собрал (0) | Подписаться

Статью еще никто не комментировал. Вы можете стать первым.
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

AVR-программатор USB ASP
AVR-программатор USB ASP
USB осциллограф DSO-2090 Солнечная панель 10Вт 12В поликристаллическая
вверх