一个快速的 google 找到8086 instructions timings size
了一个指令时序列表,它似乎包含 8086/8088 到 Pentium 的所有时序和大小。
尽管您应该注意,这可能不包括可能非常严重的代码获取内存瓶颈,尤其是在 8088 上。这通常使优化代码大小成为更好的选择。有关这方面的一些详细信息,请参见此处。
毫无疑问,您可以在网上找到具有类似信息的英特尔官方文档,例如“8086/8088 用户手册:程序员和硬件参考”。
对于您的具体问题,下表给出了一个比较,表明后者更好(周期更少,空间相同):
指示 |
时钟周期 |
字节 |
xor ax, ax inc 斧头 |
3 3 --- 6 |
2 1 --- 3 |
移动斧头,1 |
4 |
3 |
但是你可能想和你的教育机构谈谈这个人。像这样简单的事情被罚款 10% 似乎相当苛刻。你应该问在你有两种可能性的情况下应该怎么做,一种更快,一种更短。
然后,一旦他们承认根据你想要实现的目标有不同的方法来优化代码,告诉他们你想要做的是优化可读性和可维护性,而且真的不能在乎关于在这里或那里浪费的周期或字节(1)。
优化是您通常在遇到性能问题时所做的事情,在一段代码处于接近完整状态之后 - 当代码仍然受到不小的变化可能性影响时,几乎总是浪费精力。
对于它的价值,在时钟周期和大小方面sub ax,ax
似乎是相当xor ax,ax
的,所以也许你下次可以把它加入到组合中,让他做更多的工作。
(1)不,不要真的那样做,但偶尔发泄一下很有趣:-)