В классах программирования нашей системы мы изучаем язык ассемблера. В большинстве примеров программ наш проф. показал в классах; он использует:Есть ли преимущества в следующих командах сборки?
XOR CX, CX
вместо
MOV CX, 0
или
OR AX, AX
JNE SOME_LABEL
вместо
CMP AX, 0
JNE SOME_LABEL
или
AND AL, 0FH ; To convert input ASCII value to numeral
; The value in AL has already been checked to lie b/w '0' and '9'
вместо
SUB AL, '0'
Мой вопрос заключается в следующем, есть какой-то более высокой производительности при использовании (легко понять/чтения) метод AND
/OR
или XOR
вместо альтернативного?
Поскольку эти программы, как правило, показаны нам во время лекций по теоретической лекции, большинство классов неспособно фактически оценить их в устной форме. Зачем тратить 40 минут на лекцию, объясняя эти тривиальные заявления?
Инструкции могут быть короче и не содержат нулевых байтов. –
... и существуют специальные оптимизации, такие как переименование регистра, которые распознают «xor eax, eax» –