2014-06-30 59 views
0

如何使用c语言编码test al,al?我试过if((n & 0xFF) & 0){}但这是不正确的。将测试al,al转换为c

谢谢。

+5

从汇编器到C没有1:1的映射。它都依赖于上下文。 (看一下汇编程序手册,'test'指令的重要部分是设置标志寄存器。) – Deduplicator

+1

+1,不管你想要做什么,都会听起来很糟糕。 – ams

+0

'(n&0xFF)&0'将始终为假。在尝试理解汇编程序之前,您需要学习一些C语言。 –

回答

5

我猜你正在检查下一个零标志,即jz或类似的。在这种情况下,你会想

if ((n & 0xFFFF) != 0) { 

注意

  • AX是16位不是8位(如如AL和AH的),所以你要为0xFFFF不是0xFF的(如果你甚至需要这个限制)
  • & 0只能给= 0等错误。
+0

对不起,我正在测试al,al。感谢那。 –