前回は条件分岐を行うためのEFLAGSレジスタと条件分岐命令について説明しました。 しかし、プログラミングにおける重要な制御構造でありながら、単純な条件分岐では実現できないものとして、C/C++言語で言うところのswitch構文があります。 今回は、このswitch構文について、アセンブラの視点から見てみましょう。 if分岐の限界 たとえば: 変数 "x" に格納された値が0, 1, 2, 3, およびそれ以外の場合に、それぞれ異なる処理を行いたい。 という状況で、あまり手馴れていない人の実装は往々にして以下のようになります。 リスト1 if 分岐による実装 if(x == 0){ .... } else if(x == 1){ .... } else if(x == 2){ .... } else if(x == 3){ .... } else{ .... } 上記の例は、「それ以外」