お世話になっております。
とある試験問題のアセンブラ言語について、算術演算が理解できず困っておりますので投稿させて頂きました。
この問題を解決できないと、先に進めない状態となっており、困っております。
【前提】
実機を使用してアセンブルしながら値の確認を行っているのですが、下記の問題において、アドレス8008でGR2の値が下記の様に表示されています。
【GR2】
アドレス:#8012
算術:-32750
論理:32786
1000 0000 0001 0010
また、問題集の解説には下記の様に記載されています(一部抜粋)。
「1回目のGR2は#8012、GR3は#8016です。CPA命令は算術10進数で比較しますから、変換するとGR2が-32750、GR3が-32746です。GR2やGR3に設定したのはラベルのアドレスでしたね。」
【ご質問】
GR2の値が、なぜ「-32750」になるのか?を教えて下さい。
また、これは"8012を指しているのでしょうか?それとも内容の「20」を指しているのでしょうか?
今、私が理解できるのは、
・実機検証画面の2進数「1000 0000 0001 0010」は、16進数の「8012」を示している
・アドレス8008行によって#8011番地にONEが加算、つまり#8011+1=#8012番地を対象とする
ところまでは理解できるのですが、その先どう計算したら良いのかがわかりません。
現在数百ページある書籍の内70ページ程を読み進めたところですが、全体的に算術演算がよく理解できていない様に感じてはいます。
が、書籍を読んでもいまいち理解が難しいため、お伺いします。
【書籍内問題】
(1)下記プログラムを実行した結果、ANS番地に格納される値を10進数で答えなさい。
(2)下記プログラムは誤りがあります。誤っている箇所を修正しなさい。
■アセンブルリスト
※--------------------------------
ご覧のブラウザ環境によってスペース等の表示が変わる可能性がありますので、
区切りで「/」を入れております。
見やすくしただけで、問題自体に「/」はございません。
※--------------------------------
ADDR: メモリ内容 /プログラム
: /REI7004 / START
8000: 1210/0000 /LAD /GR1,0
8002: 1220/8011 /LAD /GR2,DATA
8004: 1230/8016 /LAD /GR3,ENDDATA
8006: 2012/0000 /LOOP /ADDA /GR1,0,GR2
8008: 2020/8010 /ADDA /GR2,ONE
800A: 4423/ /CPA /GR2,GR3
800B: 6100/8006 /JMI /LOOP
800D: 1110/8016 /ST /GR1,ANS
800F: 8100/ /RET
8010: 0001/ ONE /DC /1
8011: 000A/ DATA /DC /10
8012: 0014/ DC /20
8013: 001E/ DC /30
8014: 0028/ DC /40
8015: 0032/ DC /50
8016: ENDDATA /DS /0
8016: 7FFF/ ANS /DS /1
: END
以上となります。
ド素人の質問で申し訳ありませんが、ご回答頂ける方がいましたらよろしくお願いします。
No.1ベストアンサー
- 回答日時:
コンピュータがどうやって「負の値」を扱っているか、知っておくとよいでしょう。
http://ja.wikipedia.org/wiki/%E7%AC%A6%E5%8F%B7% …
この場合は、2の補数表現を使っています。
http://ja.wikipedia.org/wiki/2%E3%81%AE%E8%A3%9C …
ビットの列び 1000 0000 0001 0010 を
算術(2の補数表現で負を表わした2進数の値)と解釈すれば、(10進で)-32750
論理(正の2進数の値)と解釈すれば、(10進で)32786
となります。
ご回答ありがとうございます!
もの凄く助かりました。
おかげさまで問題「GR2は#8012、GR3は#8016」が両方とも手計算で算出する事が出来ました。
ありがとうございます。
しかし、計算が大変ですね。
あくまで試験勉強なので、試験本番は手計算をしなければならないと思うとしんどいです..。
2の補数まで出した2進数→10進数への変換は、最後の方の桁(0111)は16384+8192+4096を手計算しなければならいなんて...
ともかく、無事に解決できました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- システム CPUの問題について 2 2022/07/09 12:04
- C言語・C++・C# 【CASLプログラム】 定数(80と55)を確保し、その和をGR1に、その差をGR2に求めるCASL 1 2022/12/16 01:17
- 中学校 中2の理科『電流と回路』について質問です。並列回路全体の抵抗は 1/R=1/R1+1/R2 で求めら 5 2023/02/14 20:52
- C言語・C++・C# C言語 3 2022/10/04 15:07
- 物理学 電磁気学、TEMモードでマクスウェル方程式を満たさなくなる。 1 2022/07/19 23:58
- 工学 電気回路の問題です。 (1)回路の入力インピーダンスZ0。 (2)回路の共振周波数を求めよ。また、そ 2 2023/05/28 23:09
- その他(自然科学) 科学技術計算の仕事について 2 2023/02/04 18:09
- 物理学 この問題における抵抗r1とxってどのように考えれば良いのでしょうか?トルクはT=P2/ωsなのでP2 1 2022/06/19 18:46
- その他(コンピューター・テクノロジー) 量子コンピュータの動作原理がわかりません。同じビットが、1でも0でも有って良いだろうか? 3 2023/02/04 03:20
- 情報処理技術者・Microsoft認定資格 応用情報処理技術者試験のシステム利用率の計算について 2 2022/03/28 07:43
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
至急!尿検査前日にオナニーし...
-
首吊りどこ締めるの
-
尿検査の前日は自慰控えたほう...
-
尿検査前日に自慰行為した時の...
-
1日前の検尿
-
今朝、毎朝の習慣でオナニーし...
-
変な話しになります。尿検査で...
-
射精をして1週間以内に尿検査を...
-
検便についてです。 便は取れた...
-
腕を見たら黄色くなってる部分...
-
2つの数値のうち、数値が小さい...
-
彼女のことが好きすぎて彼女の...
-
EXCELで条件付き書式で空白セル...
-
口の中に黒い血の塊
-
値が入っているときだけ計算結...
-
男です。昨日の午後3時くらいに...
-
白血球が多いとどんな心配があ...
-
Excelで""で囲む方法
-
リンク先のファイルを開かなく...
-
小数点以下を繰り上げたものを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
中出しをするとお腹が痛い・・・。
-
麻疹風疹の抗体検査結果につい...
-
エクセルでエラーが出て困って...
-
白血球が多いとどんな心配があ...
-
彼女のことが好きすぎて彼女の...
-
検便についてです。 便は取れた...
-
勃起する時って痛いんですか? ...
-
至急!尿検査前日にオナニーし...
-
納豆食べた後の尿の納豆臭は何故?
-
これって喉仏ですか? 私は女性...
-
EXCELで条件付き書式で空白セル...
-
精子が黄色?
-
小数点以下を繰り上げたものを...
-
値が入っているときだけ計算結...
-
口の中に黒い血の塊
-
健否~書類の書き方~
-
甲状腺が腫れているが血液検査...
-
はしかの抗体検査は何科の病院...
-
テスターで断線を調べる方法教...
おすすめ情報