日記の練習です。
CODv2 (デイビッド・パターソン & ジョン・ヘネシー『コンピュータの構成と設計』第2版)、第3章 「命令 : マシンの言葉」
「 3.5 条件判定用の命令」が if 文、 if-then-else 文、 while 文、そして switch 文の( MIPS の)アセンブリ言語への(手作業での)コンパイルで、やっとこれが終わって、次は「3.6 コンピュータ・ハードウェア内での手続きのサポート」で、
ここでいう手続きは、「手続き」ないし「サブルーチン」って言っているので、たぶん関数、というかプログラムの部分?本体?(つまりプログラムとは手続きの集合のこと?)のことで、いきなりプログラム・カウンタとかスタック・ポインタとか出てきた。
いよいよヤバくなってきた。身の安全が確保できるギリギリなスピード、振り落とされる寸前な感じ。
そもそもは、 C の入門書でお約束にポインタ変数に嵌まって、
こんなふうにわかっていないけど、わかったような気になったところで、
ポインタから始めちゃったからだけどC言語は変数をメモリのどこにどういった形で(大きさで)置くのか、どう操作するのか、っていうものに見えてて、これは反対にコンピュータの中に入っていくイメージがする(適当ーーー)。
https://copyanddestroy.hatenablog.com/entry/2025/04/15/110527
なんてことを言っていて、で、
あれ?だとすれば、変数以外のものだって、ましてやプログラム本体だって、メモリの上に置かれているのでは?それらはいったいなにがどのように?
というふうに気がついてしまったのが、ことの発端だったので、いよいよ核心部分に迫っている。