【发布时间】:2011-02-19 02:10:55
【问题描述】:
我现在正在学习装配课程,检查我们家庭作业的人是一个非常迂腐的老派优化怪胎。比如他看到就扣10%:
mov ax, 0
代替:
xor ax,ax
即使只用过一次。
我不是汇编编程的初学者,但我不是优化专家,所以我需要你的帮助(可能是一个非常愚蠢的问题,但我还是会问): 如果我需要将寄存器值设置为 1 或 (-1) 最好使用:
mov ax, 1
或做类似的事情:
xor ax,ax
inc ax
我真的需要一个好成绩,所以我试图让它尽可能优化。 (我需要优化时间和代码大小)
【问题讨论】:
-
在每个上下文中使用相同的指令序列不会为您提供最佳速度或大小。对于(一个糟糕的)示例,如果在您需要将
ax设置为1时,cx被保证为1怎么办?你可以mov ax, cx。
标签: assembly performance xor cpu-registers x86-16