Что такое функция Carry in Math в PLC? - PullRequest
0 голосов
/ 22 февраля 2012

Что "Керри" делает в инструкции по математике?

В качестве примера возьмем следующее: суммирование двух двоичных файлов приводит к чему-то дополнительному вызову CY помимо значения результата.Итак, 1+ 2 = 3 + некоторая переноска?

В документации просто говорится: «Если добавление приводит к переносу, флаг переноса изменится на O» без объяснения того, что такое перенос и что такоенесут флаг.Каковы они и в чем разница, если я выполню инструкцию по добавлению с или без Carry?

enter image description here

1 Ответ

2 голосов
/ 22 февраля 2012

Carry - это дополнительный бит, необходимый для представления полного результата сложения.

Если вы, например, добавляете два 16-битных значения, результат должен составлять 17 бит, чтобы представлять каждый возможный результат.

Флаг переноса также используется при добавлении в цепочку значений, превышающих размер регистра. Если у вас есть 32-битные значения, и вы можете делать только 16-битные добавления, вы сначала добавляете нижние половины значений, а затем верхние половины с переносом из первого добавления:

Rlo = Alo + Blo
Rhi = Ahi + Bhi + CY

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

...