DECTOBIN START IN STR,LEN XOR GR0,GR0 ; 0 → GR0 (S:2進数集計用) XOR GR1,GR1 ; 0 → GR1 (i:ループカウンタ&インデックシング) CPA GR1,LEN ; i =文字数 ? JZE LAST ; 文字数=0の場合も有り得る LOOP LD GR2,GR0 ; S のコピー (GR2はワーク用) SLA GR0,3 ; Sの8倍 SLA GR2,1 ; Sの2倍 ADDA GR0,GR2 ; Sの10倍 LD GR2,STR,GR1 ; 1文字取り出し SUBA GR2,=#0030 ; 文字コード−#0030 ADDA GR0,GR2 ; S+V→S LAD GR1,1,GR1 ; ループカウンタを+1 CPA GR1,LEN ; i =文字数 ? JNZ LOOP ; if ループカウンタ≠文字数 goto LOOP LAST ST GR0,BIN ; 結果の格納 RET BIN DS 1 ; 結果の2進数格納場所 LEN DS 1 ; 文字数格納場所 STR DS 256 ; 入出力バッファ END