基本情報技術者試験⑬ アセンブラ(CASLⅡ)編 スタック PUSH命令とPOP命令 | パソコン教室アイのブログ

パソコン教室アイのブログ

子どもから大人までプログラミング教えます。

今日は、アセンブリ言語、CASLⅡの

 

スタックについて

 

勉強していきたいと思います。

 

スタックとは、データを次々と

 

積み上げるように記憶していくことをいいます。

 

そのための記憶領域のことを

 

スタック領域といいます。

 

スタック領域のデータは、

 

後から格納されたものから

 

先に読み出されます。

 

このことから、スタック領域は

 

後入れ先出しLIFO)記憶と呼ばれます。

 

スタック領域にデータを格納することを

 

プッシュダウン

 

スタック領域からデータを取り出すことを

 

ポップアップ

 

といいます。

 

仮想コンピュータ COMETⅡは、

 

データが最後に格納された番地(スタック最上級のアドレス)を

 

覚えておくためのスタックポインタ(SP)を持っています。

 

--------------------------------------------

PUSH命令

 

PUSH    0,GR1

PUSH    0,GR2

PUSH    0,GR3

 

という命令があった場合、

 

結果はこうなります。

 

--------------------------------------------

POP命令

 

POP    GR3

POP    GR2

POP    GR1

 

という命令があった場合、

 

結果はこうなります。

---------------------------------------------

PUSH命令とPOP命令 まとめ

 

スタック領域のある番地に

 

データをプッシュするときは、

 

そこに以前からあった値は消失する。

 

これに対して、スタック領域のある番地から

 

データをポップしても、

 

そのデータは消失しない。

 

------------------------------------------

実際にアセンブラの問題が解けるまで、後、

 

主プログラム(メインルーチン)から

 

副プログラム(サブルーチン)

 

を呼び出す命令であるCALL命令

 

副プログラム(サブルーチン)から

 

主プログラム(メインルーチン)に戻るRET命令

 

入力装置からデータを読み込むIN命令

 

処理結果の出力をするOUT命令

 

もうひとつのスタック操作命令であるRPUSH命令RPOP命令

 

を理解しなければなりません。

 

明日は、これらの命令を理解しようと思います。