機械語において、PUSH命令とは、最も単純化した場合、指定したプロセッサレジスタ(以降、レジスタ)の値をプロセッサのスタックにPushする命令のことです。
PUSH命令では、少なくとも以下の一つのオペランドを指定します。
・レジスタを指定するオペランド
機械語の命令の実行を基礎として、PUSH命令は、以下の流れで実行されます。
1. スタックポインタの値からPushするデータのバイト数を引いたものがアドレスバスに出力される。
2. 「レジスタを指定するオペランド」を制御信号として、対応するレジスタの値がデータバスに出力される。(詳細は、レジスタの指定を参照)
3. メインメモリがアドレスバスとデータバスからメモリアドレスとデータを受け取り、メインメモリにそのデータを書き込む。(詳細は、メモリアドレスによる複数バイトのデジタルデータへのアクセスを参照)
4. スタックポインタの値がPushしたデータのバイト数分減る。