当サイトの一部ページには、アフィリエイト・アドセンス・アソシエイト・プロモーション広告を掲載しています。

Amazonのアソシエイトとして、Security Akademeiaは適格販売により収入を得ています。

広告配信等の詳細については、プライバシーポリシーページに掲載しています。

消費者庁が、2023年10月1日から施行する景品表示法の規制対象(通称:ステマ規制)にならないよう、配慮して記事を作成しています。もし問題のある表現がありましたら、問い合わせページよりご連絡ください。

参考:令和5年10月1日からステルスマーケティングは景品表示法違反となります。 | 消費者庁

NandGame

Thumbnail of post image 111
コード生成(Code generation)

コード生成は次の流れの最終処理に該当します。

トークン化⇒構文ツリー化⇒コード生成

コード生成をアルゴリズム(入出力を持つ処理)として見れば、式の構文ツリーをインプッ ...

NandGame

Thumbnail of post image 100
構文ツリー化

トークン化の処理後、トークンを構文ツリー化します。

トークンとしては数値、括弧、演算子があります((NandGameではTokenizeレベルで数値、2つの演算子「+」と「-」、普通の括弧「(」「)」だけを処理 ...

NandGame

Thumbnail of post image 062

コンパイルするということ

高級言語はアセンブリー言語より人間にやさしく柔軟な構文を持ちます。コンピューターは高級言語のコードを貴秋後コード命令にコンパイルすることで、最終的にCPUが解釈できるようになります。

例えば、2+2 ...

NandGame

Thumbnail of post image 148

スタックを演算に利用する

スタックを使えば、特定のレジスターに依存しないマクロ演算(加算や減算など)を実現できます。

代わりに、演算はオペランドをスタックからPOPし、演算結果をスタックにPUSHし直します。

こ ...

NandGame

Thumbnail of post image 045
はじめに

本記事は、Stack machineグループの前半のレベルについて焦点を当てます。

スタックの必要性

2個のレジスターだけでプログラムするのは難しく、いずれ限界がきます。例えば、2つのレジスターで2+2

NandGame

Thumbnail of post image 108
Networkレベル

Networkレベルのゴールは、ネットワーク経由で他のコンピューターからデータを受信して、モニターに表示することです。

ネットワークのワイヤーはアドレス0x6001にメモリーマップされてい

NandGame

Thumbnail of post image 058
Displayレベル

Displayレベルのゴールは、ディスプレイに好きなロゴを表示することです。

ロゴは何でもよいですが、幅・高さともに16ピクセル以上でなければなりません。

ディスプレイの仕様は

NandGame

Thumbnail of post image 049
Machine codeレベル

Machine codeレベルのゴールは、次の4命令を実現するマシン語を書くことです。

アドレス処理内容0Dレジスターに0をセット。1Aレジスターに2をセット。2Dレジスターに1を加える。3無条件ジ ...

NandGame

Thumbnail of post image 148

Assembler programレベル

Assembler programレベルのゴールは、コンピュータの緑ランプを少なくとも3回点滅させるプログラムをアセンブリー言語で書くことです。

外部デバイスであるランプはアドレス7 ...

NandGame

Thumbnail of post image 114
Escape Labyrinthレベル

Escape Labyrinthレベルのゴールは、火星の迷宮に迷い込んでしまったコンピューターを脱出させるプログラムを書くことです。

コンピューターには車輪と前方障害検知器が備わってい ...