• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:プログラムの算術演算で教えて下さい。)

アセンブラ言語の算術演算についての質問と解説

このQ&Aのポイント
  • アセンブラ言語の算術演算について質問があります。具体的には、実機検証画面でアドレス8008でGR2の値が-32750になる理由について教えてください。
  • また、アドレス8012が指しているのか、それとも内容の「20」が指しているのかも知りたいです。
  • さらに、書籍内の問題であるプログラムの実行結果や修正する箇所についても教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

コンピュータがどうやって「負の値」を扱っているか、知っておくとよいでしょう。 http://ja.wikipedia.org/wiki/%E7%AC%A6%E5%8F%B7%E4%BB%98%E6%95%B0%E5%80%A4%E8%A1%A8%E7%8F%BE この場合は、2の補数表現を使っています。 http://ja.wikipedia.org/wiki/2%E3%81%AE%E8%A3%9C%E6%95%B0 ビットの列び 1000 0000 0001 0010 を 算術(2の補数表現で負を表わした2進数の値)と解釈すれば、(10進で)-32750 論理(正の2進数の値)と解釈すれば、(10進で)32786 となります。

san1126
質問者

お礼

ご回答ありがとうございます! もの凄く助かりました。 おかげさまで問題「GR2は#8012、GR3は#8016」が両方とも手計算で算出する事が出来ました。 ありがとうございます。 しかし、計算が大変ですね。 あくまで試験勉強なので、試験本番は手計算をしなければならないと思うとしんどいです..。 2の補数まで出した2進数→10進数への変換は、最後の方の桁(0111)は16384+8192+4096を手計算しなければならいなんて... ともかく、無事に解決できました。 ありがとうございました。

関連するQ&A