REI5A START LAD GR1,0 ;カウンタを0にする LD GR0,A ; Aの値をGR0に入れる JMI FUSUU ;負数か判断 LD GR3,=' ' ;正のときはスペース ST GR3,BUFF,GR1 ;文字を保存 JUMP KEISAN ;数値処理にジャンプ FUSUU LD GR3,='-' ;負数のときはマイナス ST GR3,BUFF,GR1 ;文字を保存 LAD GR0,0 ;絶対値処理 SUBA GR0,A ;絶対値処理 KEISAN LAD GR1,1,GR1 ;カウンタインクリメント LD GR2,WORK,GR1 ;除数をGR2に読み込み CALL DIV ;わり算処理へ PUSH 0,GR3 ; GR3を一時待避 OR GR3,WORK ;文字コードの判別 ST GR3,WORK ;結果をWORKに POP GR3 ; GR3を復帰 JZE SPACE ; ORの結果が0のとき分岐 OR GR3,MOJI ; #0030を加算 JUMP HOZON ;文字コード保存処理へ SPACE LD GR3,=' ' ; ORが0のときスペース HOZON ST GR3,BUFF,GR1 ;文字コードを保存 CPA GR1,C4 ;ループ回数の比較 JMI KEISAN ; 4回ループする OR GR0,MOJI ; 1の位を文字コードに LAD GR1,1,GR1 ;カウンタインクリメント ST GR0,BUFF,GR1 ;文字コードの保存 OUT BUFF,LEN ;結果の表示 RET A DC -2050 BUFF DS 6 ;文字コード保存領域 LEN DC 6 ;文字コードの長さ WORK DC 0,10000,1000,100,10 MOJI DC #0030 C4 DC 4 END DIV START LAD GR3,0 ;商を0にする DLOOP CPA GR0,GR2 ;除数で引けるか判別 JMI FIN ;引けないときはFINへ SUBA GR0,GR2 ;被除数−除数 LAD GR3,1,GR3 ;商をインクリメント JUMP DLOOP ;繰り返し処理 FIN RET END