простой сборочный вопрос - PullRequest
1 голос
/ 14 января 2011

Я новичок в сборке, и это довольно весело. В любом случае у меня есть один вопрос ...

cmpw cr7, %r29, %r8

Является ли этот код эквивалентом if cr7 > %r29 and %r8?

1 Ответ

1 голос
/ 14 января 2011

Сравнивает r29 с r8 и помещает результат в cr7, я считаю.

Другими словами:

cr7 = r29 - r8

После прочтения некоторых документов PPC это выглядит как cr (регистр сравнения), получает кодированное значение, представляющее меньше, больше, равно.

less:    0x100
greater: 0x010
equal:   0x001

В других архитектурах, таких как x86, нет CR как такового, но есть группа флагов, таких как ZF, SF и CF (ноль, знак и флаг переноса). Они всегда устанавливаются во время арифметических операций, таких как вычитание. Следовательно, сравнение в основном совпадает с вычитанием.

...