Cには、他の多くの言語と同様に、if
ステートメントがあります。このロジックは、C++やRubyなどの他の言語を作成するときに使用できます。if
ただし、最低レベルのステートメントはどのように機能しますか?
条件文は最低レベルでどのように機能しますか?非再帰的に定義する方法がわかりません。
Cには、他の多くの言語と同様に、if
ステートメントがあります。このロジックは、C++やRubyなどの他の言語を作成するときに使用できます。if
ただし、最低レベルのステートメントはどのように機能しますか?
条件文は最低レベルでどのように機能しますか?非再帰的に定義する方法がわかりません。
生成されたアセンブリはいつでも見ることができますが、通常は分岐またはジャンプ命令として実装されます。
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
(ジャンプが等しくない)命令です。2つの値(x
とy
)が等しくない場合は、にジャンプします。等しくない場合else
は、実行を続行し、からジャンプしif
ます。
最も低いレベルでは、それらは物理ハードウェアに実装されています。それらは他の何かに関して定義されておらず、実際には物理的に実装されています。