Сборка - Флаг знака и флаг паритета - PullRequest
0 голосов
/ 14 декабря 2011

Я не понял, когда установлен флаг знака, а когда четность.

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

Так почему в следующем коде:

mov al, -5 
sub al, 124

SF ноль? Результат - отрицательное число.

О PF, почему в a и b установлен PF?

a) sub al, al.

b) mov al, 127
   add al, 129

Ответы [ 2 ]

4 голосов
/ 14 декабря 2011

код

mov al, -5 
sub al, 124

рассчитывает 256-5-124. Это 127, и это положительное число

И sub al, al, и 127+129 имеют значение 0, для него установлены 0 битов, а 0 - четное значение, поэтому установлен PF.

0 голосов
/ 27 июня 2012

максимальное число, которое вы можете представить в 8 битах, равно 2 ^ 8-1, что равно 255. Таким образом, поскольку 127 + 129 = 256, al будет содержать 0 и флаги: CF PF AF ZF IF будет установлен, PF установлен какупомянуто выше - потому что PF устанавливается тогда и только тогда, когда количество установленных битов является четным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...