プロが教えるわが家の防犯対策術!

問 4桁の16進文字列を入力し、それを数値に変換してメモリ上に格納するプログラムを作成せよ。

PROGRAM START
IN IBUF,LEN
LAD GR1,0
LAD GR2,0
LOOP SLL GR1,4
LD GR3,IBUF,GR2
CPL GR3,='A'
JMI NEXT
ADDL GR3,=9←←←
NEXT AND GR3,C000F
ADDL GR1,GR3
LAD GR2,1,GR2
CPL GR2,=4
JMI LOOP
ST GR1,ANS
RET
IBUF DS 4
LEN DS 1
C000F DC #000F
ANS DS 1
END

上記の←←←の行は入力文字がA~Fの場合の数値の調整の為にあるらしいのですが、なぜ9を加算しているのか分かりません。ご理解のある方はお手数ですが教えて頂けないでしょうか。よろしくお願い致します。

A 回答 (1件)

文字列の0~9の文字コードは16進表記では30~39です。

同様に文字列のA~Fは16進表記では41~46です。
0~9は下位4ビットが0~9でいいのですがA~Fは下位4ビットが1~6ですよね。だから9足してA~Fにしておくのだと思います。
    • good
    • 0
この回答へのお礼

よく理解できました。
ありがとうございます!

お礼日時:2006/10/08 09:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!