問題
文字列'ABCD'がDATA番地に入っている。
この文字列を0x1234に変換するプログラムを書け。
僕の回答
REI001 START
LAD GR1,3
LAD GR7,0
LAD GR3,0
LOOP LD GR2,DATA,GR1
AND GR2,=#000F
SLL GR2,0,GR3
ADDL GR7,GR2
ADDL GR3,=4
SUBL GR1,=1
JMI FIN
JUMP LOOP
FIN ST GR7,ANS
RET
DATA DC 'ABCD'
ANS DS 1
END
上から(A→1)ではなく、下の桁から(D→4)順に格納するように演算の順番を変えてやったら、CPL命令を削ることができた。