> 1 : a=4;
> 2 : b=1;
> 3 : a=b-a;

1. a に 4を代入
2. b に 1を代入

3-1 = の左辺 a と 右辺 b - a をそれぞれ評価
 3-1-(1) 左辺の a を左辺値として評価→ 変数 a のアドレスを取得
 3-2-(2) 右辺の b - a を右辺値として評価
  3-2-(2-1) - の左辺 b を評価 → 1
  3-2-(2-2) - の左辺 a を評価 → 4
  3-2-(2-3) b - a、つまり 1 - 4 を計算 → -3
3-2 3-1で求めた左辺値に右辺の値 -3 を代入 (変数aのアドレスのメモリに -3 を格納)

*3-1-(1) と 3-1-(2) のどっちが先jに実行されるかは決まってない
*3-2-(2-1) と 3-2-(2-2) のどっちが先jに実行されるかも決まってない

もちろん 1, 2 でも 3 と同じように細かい過程があるけど省略

あと 3-1-(1) はこの場合は a のアドレスが出力されるコードに組み込まれるだけで、左辺値
を評価するようなコードが出力されることはないはず