BINTODEC START LAD GR3,0 ; BUFインデックス LD GR0,N ; 2進数ロード JZE ENDING XOR GR1,GR1 ; 各桁係数 LAD GR2,4 ; 10進数桁位置 ; 16ビット符号無し最大数は 65535 LOOP SUBL GR0,TENS,GR2 ; JMI NEXT LAD GR1,1,GR1 ; その桁加算 JUMP LOOP NEXT ADDL GR0,TENS,GR2 OR GR1,GR1 ; GR1のゼロチェック JZE ZEROSKIP ADDA GR1,=#0030 ; 数字コードへ変換 ST GR1,BUF,GR3 ; 出力用文字格納 LAD GR3,1,GR3 ; BUFインデックス+1 XOR GR1,GR1 ; 各桁係数リセット ZEROSKIP SUBA GR2,=1 ; 10進数桁位置更新 JNZ LOOP ENDING ADDA GR0,=#0030 ; 数字コードへ変換 ST GR0,BUF,GR3 ; 出力用文字格納 LAD GR3,1,GR3 ; BUFインデックス+1 ST GR3,LEN OUTPUT OUT BUF,LEN RET N DC 123 ; 変換すべき数 TENS DC 1 DC 10 DC 100 DC 1000 DC 10000 LEN DS 1 ; 文字数 BUF DS 256 ; 16進文字列 END