有没有办法可以比较和跳转一条指令:
C代码:
1.2 while(i<10)
.{i++}
汇编代码: (eax=0)(ecx=10)
.while:cmp eax, ecxjge .endofwhileadd eax, 1jmp .while.endofwhile:有没有办法在一条指令中做第2行和第3行?
有没有办法在一条指令中做第2行和第3行?
如果您允许更改C代码以向后计数:
1. i = 10;
2. while(--i >= 0);
Run Code Online (Sandbox Code Playgroud)
然后你可以使用(单个)LOOP操作码.
虽然LOOP是一个旧的指令,所以它可能在新的(Pentium ++)CPU上被弃用:其中"不赞成"我的意思是"仍然支持,但比使用像Pascal的答案中给出的更原始的操作码更慢".