ここに私のCコードがあります:
int test(int x, int y){
    int val=4*x;
    if (y>0){
        if (x<y) val=x-y;
        else val=x^y;
    }
    else if (y<-2) val=x+y;
    return val;
}
そして、GCCコマンドラインに入力したものは次のとおりです。
gcc -O1 -S -march=i686 test.c
そして、これが私が得たSファイルです(計算部分のみ):
pushl   %ebx
movl    8(%esp), %ecx
movl    12(%esp), %edx
testl   %edx, %edx
jle     L2
movl    %ecx, %eax
subl    %edx, %eax
movl    %edx, %ebx
xorl    %ecx, %ebx
cmpl    %edx, %ecx
cmovge  %ebx, %eax
jmp     L4
L2:
leal    0(,%ecx,4), %eax
addl    %edx, %ecx
cmpl    $-2, %edx
cmovl   %ecx, %eax
L4:
popl    %ebx
ret
私の質問は、上記の S ファイルを使用してまったく同じ C コードを取得できますか? 私はまったく同じことを意味します。たとえば、valis 4*x(C コードの 2 行目) のデフォルト値を特定できますか? if各ステートメントのテスト式を特定できますか?
私は本当にあなたの助けが必要です。ありがとうございました!!!