nandgameでOS作ってみよう #3
前回の続き
応用
| プログラム | 意味 | 引数 |
|---|---|---|
| init.stack | stackを初期化 | |
| push.D | dをstackの一番上に入れる | |
| pop.D | stackの一番上から数を取り出してDに入れる | |
| pop.A | stackの一番上から数を取り出してAに入れる | |
| push.value | 引数valueをstackの一番上に入れる | value |
| add | stackの上2つを足して、足した元の数を消し、足した数を、stackの一番上に入れる | |
| sub | stackの上2つを引いて、引いた元の数を消し、引いた数を、stackの一番上に入れる | |
| neg | stackの一番上を-1かけて置き換える | |
| and | stackの上2つをandして、andした元の数を消し、andした数を、stackの一番上に入れる | |
| or | stackの上2つをorして、orした元の数を消し、orした数を、stackの一番上に入れる | |
| eq | stackの上1番目 = stackの上2番目ならtrue(FFFF)そうじゃないならfalse(0)を、stackの一番上に入れる | |
| gt | stackの上1番目 < stackの上2番目ならtrue(FFFF)そうじゃないならfalse(0)を、stackの一番上に入れる | |
| lt | stackの上1番目 > stackの上2番目ならtrue(FFFF)そうじゃないならfalse(0)を、stackの一番上に入れる | |
| not | stackの一番上をnotして置き換える | |
| goto | 引数labelにジャンプする | label |
| if.goto | stackの一番上を取り出して0じゃなかったら引数labelにジャンプする | label |
| push.memory | stackの一番上をその数値をアドレスとみなしてそのアドレスにある値に置き換える | |
| pop.memory | stackの上1番目の値をstackの上2番目をアドレスとみなした場所に入れる | |
| push.static | 引数addressに入っている数を、stackの一番上に入れる | address |
| pop.static | stackの一番上の数を、引数addressに入れる | address |
| function系 | 次回紹介 |
次回とかまとめ