• ベストアンサー

アセンブラ言語の数字を数値に変換するプログラム

LD GR3,GR1 ;GR3にGR1の数字を入れる。 AND GR3,=#000F ;数字を数値に変換 というアセンブラのプログラムがあったのですが、なぜGR3と16進数#000Fの論理積をとることで数字を数値に変換できるのでしょうか。 それと、ここでいう数字、数値の違いとは、数字の1はコンピュータ上では 49という数値に変換される(アスキー文字)という認識でよろしいでしょうか。

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

  • ベストアンサー
回答No.1

2進数で表したときの下4桁だけが残ることになるからです。 アスキーコードでは、数字の「1」は、10進で49、16進で31です。 16進の31を2進数に直すと、0011 0001です。 これと16進のOF、つまり2進の0000 1111と論理積をとると、0000 0001となり、数値の1になります。

rinnshan
質問者

お礼

ご解答ありがとうございました。

関連するQ&A