-1

Cには、他の多くの言語と同様に、ifステートメントがあります。このロジックは、C++やRubyなどの他の言語を作成するときに使用できます。ifただし、最低レベルのステートメントはどのように機能しますか?

条件文は最低レベルでどのように機能しますか?非再帰的に定義する方法がわかりません。

4

2 に答える 2

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(ジャンプが等しくない)命令です。2つの値(xy)が等しくない場合は、にジャンプします。等しくない場合elseは、実行を続行し、からジャンプしifます。

于 2012-10-11T06:12:00.360 に答える
2

最も低いレベルでは、それらは物理ハードウェアに実装されています。それらは他の何かに関して定義されておらず、実際には物理的に実装されています。

于 2012-10-11T06:13:06.167 に答える