スタックにデータを積むことをプッシュ(push)と,スタックからデータを取り出すことを ポップ(pup)と呼ぶ.これらの英語の意味は,
COMET IIの場合,スタック領域は主記憶(メインメモリー)のどこかに必要量確保されてい る.確保されているアドレスはプログラマーは気にすることなく,PUSHとPOP の命令を使うことができる.実際にスタック領域の最上位のアドレスはSP(スタック ポインター)に格納されており,その操作はOSの仕事である.
CASL IIのプログラムでもっとも多く使われる場面は,サブルーチンを呼び出すときにデー タを一時的に雛させる場合である.これについては,後ほど,実際のプログラムで学習す ることになる.
命令語 POP 語源 POP (push:押す) 役割 スタック領域にデータを格納する. 書式 [ラベル] PUSH adr[,x] 動作 SPの値を1減らす.そして,スタック領域へアドレスを格納する. フラグレジスタ 変化無し.
PUSH DATA ;DATAが示すアドレスをスタック領域に格納
PUSH 23 ;23をスタック領域に格納
PUSH 0,GR1 ;GR1の内容をスタック領域に格納
命令語 POP 語源 POP (pop:出る) 役割 スタック領域からデータを取り出す. 書式 [ラベル] POP r 動作 スタックポインターSPが示しているアドレスの内容を取り 出してレジスターに格納する.そして,SPの値を1増やす. フラグレジスタ 変化無し.
PUP GR1 ;スタック領域の最上段の値をGR1へ格納