フェッチとデコードの次は、実行ステップが行われる。このステップでは、CPUの多くの部分が接続され(たとえば[[マルチプレクサ]]を切り替えるなどして)指定された操作を実行する。たとえば、加算を要求されている場合、[[加算器]]が所定の入力と接続され、出力と接続される。入力は加算すべき数値を提供し、出力には加算結果が格納される。加算結果が大きすぎてそのCPUに扱えない場合、[[算術オーバーフロー]]フラグをフラグレジスタ([[ステータスレジスタ]])にセットする([[RISC]]ではフラグレジスタが存在しない場合もある)。入力や出力にはいろいろなものが使用される。演算結果が一時的かあるいはすぐに利用される場合にはレジスタと呼ばれる高速で小さなメモリ領域に格納される。メモリも入力や出力に使われる。レジスタ以外のメモリは低速だが、コスト的には一般的なメモリの方が安価であり大量のデータを格納できるため、コンピュータには必須である。いくつかの命令はプログラムカウンタを操作する。それらは一般にジャンプ命令と呼ばれ、[[ループ(プログラミング)|ループ]]を構成したり、条件分岐をしたり、[[サブルーチン]]を実現するのに使われる。また、多くの命令はフラグレジスタを変化させる。それらのフラグはプログラムの動作に影響を与える。たとえば比較命令は二つの値を比較してフラグレジスタにその大小を示す値をセットする。そして、その値を使用してその後の処理の流れを決定する。命令を実行後、同じ流れが繰り返されて次の命令をプログラムカウンタにしたがってフェッチする。もっと複雑なCPUでは、複数の命令をフェッチし、デコードし、同時に実行することもできる。しかし、基本的にどんなCPUでもやっていることはここで説明した流れと同じである。歴史.現代のCPUのような装置が出てくる以前、[[ENIAC]]のような計算機は、実行する処理の内容を変えるたびに物理的に配線を変更していた。このような機械では、プログラムを変更するために物理的に再構成する必要がある(たとえばENIACなどでは[[パッチパネル]]が使われた)ことから「プログラム固定計算機」と呼ばれることがある(なお、ENIACは非常に限られた機能と性能になるが、ある程度は[[プログラム内蔵方式]]的な動作もできた)。半導体化.