記事一覧
The Art of Computer Programming を読む(8)
(7)の続き。
4. 素数印刷プログラムPの手動アセンブル+----+-+--+--+--+--+--+|0000|+| 0| 0| 0| 0| 2||0001|+| 0| 0| 0| 0| 0||....|+| 0| 0| 0| 0| 0|+----+-+--+--+--+--+--+|1995|+|06|09|19|22|23| ALF FIRST|1996|+|00|06|09|25|
The Art of Computer Programming を読む(7)
(5) の続きから。
アルゴリズムP (500の素数の表を印刷する)素数列挙プログラムを通じてMIXALを学ぶ。
ローカルシンボル
今いる行から一番近い行を指示することができる。プログラム内で複数の同じシンボルを扱うことができ、記号名の取り扱いの煩雑さからプログラマを解放する。
ALF
MIXの5バイトの定数を作るが、その時に文字コードを利用する擬命令。
ORIG
ここに来て意味がわかるよ
The Art of Computer Programming を読む(6)
ひょんなことから、書店で "The Art of Computer Programming Volume 1, Fascicle 1: MMIX - A RISC Computer for the New Millennium" を見つけ、購入することができた。
TAOCP Vol.1 1.3 MIXには、次の記載がある。
MIXが現在ではすっかり時代遅れであることは認めなければならない。した
The Art of Computer Programming を読む(5)
1.3.2 MIX アセンブリ言語から。
MIX Assembly Language, MIXALについて。
ほぼほぼMIXの機械語と同じだが、いくつか重要な違いがある。
・LOCにラベルがつけられる
・OPに、実際の命令ではない擬命令がある
・* (アスタリスク) という、自分のメモリ番地自体を示す記法がある
LOCにラベルがつけられるこれは、実際に機械語に翻訳された時点ではメモリの番地に
The Art of Computer Programming を読む(4)
1.3.1の演習問題の続きから。
26.ブートストラッピング問題。
MIXの場合は、カードから起動時の処理を読み込むという処理が組み込まれている (GOボタン)。したがって、この最初に読み込むカードに、「カードを読み込む」という処理、つまりカードローディングルーティンを書いておく必要がある。
現代のコンピュータで言えば、MBR (Master Boot Record) に書かれている処理のよ
The Art of Computer Programming を読む(3)
1.3.1の演習問題の続きから。
18.与えられた下記プログラムを実行すると、コンピュータの内部状態(レジスタ・トグル・メモリ)がどうなるか、という問題。
STZ 1ENNX 1 STX 1(0:1)SLAX 1ENNA 1INCX 1ENT1 1 SRC 1 ADD 1DEC1 -1 STZ 1CMPA 1MOVE -1,1(1) HLT 1
ちゃんと命令を追っていけば難しい問題ではない
The Art of Computer Programming を読む(2)
前回の続き。
今日は1.3.1の演習問題から。
16.メモリセルの0000-0099をすべてゼロに初期化する問題。(a)コードが短いプログラムと(b)実行時間が短いプログラムがそれぞれ求められている。
(a)
STZ命令とMOVE命令を使う。MOVE命令は、rI1で指定された場所に、Fで指定された数のワードを動かす。Fは1バイトなのでMIXの規格上63以下しか入れられない。ということでMOV
The Art of Computer Programming を読む(1)
今年は、一日少しでも The Art of Computer Programming を読み進める、というのを目標にしようと思う。
The Art of Computer Programming といえば、TeXや文芸的プログラミングなどで有名な Donald Knuth 先生の名著である。TAOCPと略すようだ。ちなみに複数巻構成で、現在4巻まで出ているが完成していない。
ちなみに、私の本書