在C语言中,与许多其他语言一样,有if
语句。编写其他语言(如C ++或Ruby)时可以使用该逻辑。但是,最低级if
语句如何工作?
条件在最低级别如何运作?我不明白如何以非递归方式定义它。
答案 0 :(得分:3)
您始终可以查看生成的程序集,但通常将其实现为分支或跳转指令。
if ( x == y )
001E149C mov eax,dword ptr [x]
001E149F cmp eax,dword ptr [y]
001E14A2 jne wmain+3Ah (1E14AAh)
return 0;
001E14A4 xor eax,eax
001E14A6 jmp wmain+3Fh (1E14AFh)
else
001E14A8 jmp wmain+3Fh (1E14AFh)
return 1;
001E14AA mov eax,1
if基本上是jne
(跳不等)指令。如果两个值(x
和y
)不相等,则会跳转到else
,否则会继续执行并跳出if
。
答案 1 :(得分:2)
在最低级别,它们是在物理硬件中实现的。它们不是用其他东西来定义的,它们实际上是在物理上实现的。