ファン
検索
<< 2024年12月 >>
1
2 3 4 5 6 7
8
9 10 11 12 13 14
22
23 24 25 26 27 28
29
30 31
最新記事
最新コメント
眼科の定期検査 〜 散歩 by コトタマ (02/15)
眼科の定期検査 by 三文字寄れば文殊のヒフミヨ (09/21)
本を読んで過ごす by 底彦 (12/13)
本を読んで過ごす by ねこ (12/12)
数学の計算をする by 底彦 (12/04)
タグクラウド
カテゴリアーカイブ
仕事 (59)
社会復帰 (22)
(44)
コンピューター (211)
(1463)
借金 (8)
勉強 (13)
(13)
数学 (97)
運動 (8)
日常生活 (1407)
(204)
健康 (38)
読書 (21)
プロフィール

ブログランキング・にほんブログ村へ
にほんブログ村
にほんブログ村 メンタルヘルスブログ うつ病(鬱病)へ
にほんブログ村
にほんブログ村 科学ブログ 数学へ
にほんブログ村
にほんブログ村 IT技術ブログ プログラム・プログラマーへ
にほんブログ村

2017年06月04日

HP-42S: Alpha レジスター, フラグ, スタック

HP-42S を使ったプログラミングの勉強.

数の取り扱いは, 現時点での自分には難し過ぎるのでひとまず棚上げにして先に進むことにした.
とりあえず, 全桁表示の数と指数表示の数があることだけ念頭に置いておく. 有限の空間で数をどのように取り扱っているのかを理解したかったが簡単に済む問題ではなかった.
この問題を考えることは続けるが, プログラミングを HP-42S のマニュアルで勉強することを先に進めようと思う.

新しい章に入ったら, プログラミングらしい話題になってきた.

● Alpha レジスター
・ HP-42S には Alpha レジスターという特別なレジスターがある.
・ Alpha レジスターには英数字文字列を保存する.
・ なぜ Alpha レジスターが特別かと言うと, このレジスターがプログラムのラベルや変数名や命令文を入力するために使われるからである. つまり Alpha レジスターを使用してプログラムの入力を行う.

● フラグ
・ HP-42S には 100 個のフラグが用意されている. それぞれ 00, 01,..., 99 という名前が付いている.
・ フラグは "セット (set)" と "クリア (clear)" の 2 つの状態を持っている.
・ フラグにはユーザーフラグと制御フラグの 2 種類が存在する.
 - ユーザーフラグ : 00,..., 10 および 81,..., 99 の計 30 個. ユーザーがプログラムの制御をするために自由に使用できる.
 - 制御フラグ : 11,..., 80 の計 70 個. HP-42S のシステムとしての動作を制御するためのフラグ. ユーザーは状態 (セット / クリア) をテストことはできるが変更はできない.
・ フラグに対して 6 つの操作が用意されている:
(1) SF : フラグをセットする.
(2) CF : フラグをクリアする.
(3) FS? : フラグがセットかどうかをテストする.
(4) FC? : フラグがクリアかどうかをテストする.
(5) FS?C : フラグがセットされているかどうかをテストしてからクリアする.
(6) FS?C : フラグがクリアされているかどうかをテストしてからクリアする.

● スタック
・ HP-42S には予めメモリー上にスタック (Automatic RPN Memory Stack) を持っている (RPN は "逆ポーランド記法 (Reverse Polish Notation)" を表わす).
・ HP-42S のスタックは 4 つのレジスターによって構成されている. これらにはそれぞれ X, Y, Z, T という名前が付いている.
・ X, Y, Z, T いずれのレジスターにも任意のデータ (実数, 英数字文字列, 複素数, 行列) を格納できる.
・ X レジスターに最新のデータが格納されている. 次が Y レジスター. その次が Z レジスター. 最上段が T レジスター, つまり T レジスターに最も古いデータが格納されている.
・ スタックを有効に活用して, つまり RPN 方式の計算方式に基いてプログラミングを行う.

このマニュアルでは第 2 章でから直ちにここに示したようなプログラミングの準備〜導入の説明が始まる. 最初に読んだときはびっくりした.

その理由は多分それが HP-42S という電卓の設計思想だからだと思っている.

それは, HP-42S を操作するということは, 小さなことであってもそれ自体は本質的には小さなプログラミングであり, その小さなプログラミングを表示画面ではなく Alpha レジスターに入力したものを集めてメモリー上に保存すれば実際に動くプログラムになるという考え方.

ここには, 直方体の体積を求めたり家計簿を付けたりといった「ちょっとした電卓操作」と, Newton 法や 3 次元コンピューターグラフィックスでの行列計算などの「プログラムによる処理」が自然な連続性を保つ世界がある.

ちょっと思い入れが入り過ぎたかも. でもそれほど外していないと思う.

再びプログラミングができるようになれば, 自分の世界は少し広がるだろう.
この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

この記事へのトラックバックURL
https://fanblogs.jp/tb/6336230

この記事へのトラックバック
Build a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: