【发布时间】:2013-08-12 17:09:06
【问题描述】:
在我们系统的编程课程中,我们学习的是汇编语言。在大多数示例程序中,我们的教授。已在课堂上展示;他正在使用:
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的寄存器重命名