アフィリエイト広告を利用しています

2017年07月25日

HP-42S: スタック (修正版)

以前書いた HP-42S: スタック に間違いがあったので修正する.
間違っていたのはスタックの動作についての理解で, 具体的には "Enter" ボタンを押したときに引き起されるスタックの動作 である.

以下, 修正した文章を記しておく.



12 + 7 を計算するとき, HP-42S では次のような操作を行う.

12 ENTER 7 +

ここで, 12, 7 は数字ボタンを使って入力する. ENTER は "Enter" ボタンを押すことを意味する. + は "+" ボタンを押すことを意味する.

このとき HP-42S はスタック X, Y, Z, T (下から順) を使って次の処理を行う.
※: 各行の |XXXX の右側が以前の文章で書いた間違った記述である.

(0) 最初のスタックの内容が次のようになっていると仮定する (任意でよい).

T: 8128
Z: 496
Y: 28
X: 6

(1) "12" が入力された時点で X レジスター (スタックの最下段) の内容が 12 となる.
スタックが 1 段上昇する.
これにより, (0) のスタックの内容は次のように変化する.

・ T レジスターの元の内容 8128 は失われる.
・ T レジスターの新しい内容は Z レジスターの元の内容 496 になる.
・ Z レジスターの新しい内容は Y レジスターの元の内容 28 になる.
・ Y レジスターの新しい内容は X レジスターの元の内容 6 になる.
・ X レジスターの新しい内容は入力された数値 12 になる.


T: 496 |XXXX T: 8128
Z: 28 |XXXX Z: 496
Y: 6 |XXXX Y: 28
X: 12 |XXXX X: 12


(2) "Enter" ボタンが押されて "ENTER" 操作が実行される. 次の 3 つの処理が引き起こされる.
 (2-1) スタックを 1 段上昇する;
 (2-2) X レジスターの内容を Y レジスターにコピーする;
 (2-3) 次に数値が入力されたときにスタックが上昇することを禁止する.
これにより, (1) のスタックの内容は次のように変化する.

T: 28 |XXXX T: 496
Z: 6 |XXXX Z: 28
Y: 12 |XXXX Y: 12
X: 12 |XXXX X: 12


(3) "7" を入力した時点で X レジスターの内容が 7 に書き換えられる. (2-3) によりスタックは上昇しない.
これにより, (3) のスタックの内容は次のように変化する.

T: 28 |XXXX T: 496
Z: 6 |XXXX Z: 28
Y: 12 |XXXX Y: 12
X: 7 |XXXX X: 7


(4) "+" ボタンが押されると加算操作が実行されて, スタックが 1 段下降する.
これにより, スタックの内容は次のように変化する.

・ X レジスターの内容 (= 7) に Y レジスターの内容 (= 12) が加算された結果 (= 19) が X レジスターの新しい内容になる.
・ Y レジスターに Z レジスターの内容 (= 6) がコピーされる.
・ Z レジスターに T レジスターの内容 (= 28) がコピーされる.
・ T レジスターの内容 (= 28) は保持される.


T: 28 |XXXX T: 496
Z: 28 |XXXX Z: 496
Y: 6 |XXXX Y: 28
X: 19 |XXXX X: 19

以上.

頭の中だけでとうとう理解したなどと思って喜んでいたのが馬鹿みたいだ.
しかし間違いに気が付いてよかった.

そういうことなので, 今回が本当に正しいかどうかは数日 HP-42S を確認しながら使ってみないとわからない.
理解するということは難しい.
この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

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

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

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