POP1 START ;<POP1.CAS>
LAD GR1,#AB12 ; GR1の設定
CALL PRT ;サブルーチンコール
RET ;終了
PRT START
PUSH 0,GR1 ; GR1の待避
PUSH 0,GR2 ; GR2の待避
PUSH 0,GR3 ; GR3の待避
LAD GR3,3 ;指標レジスタ
LOOP LD GR2,GR1 ; GR1→GR2
AND GR2,=#000F ;右4ビットの取り出し
LD GR2,NO,GR2 ; 16進数に変換
ST GR2,HEX,GR3 ; 16進数を保存
SRL GR1,4 ; 4ビット右にシフト
SUBA GR3,=1 ;デクリメント
JMI FIN ;マイナスならFINへ
JUMP LOOP ; LOOPへ
FIN OUT BUF,LEN ;出力
POP GR3 ; GR3を復元
POP GR2 ; GR2を復元
POP GR1 ; GR1を復元
RET ;戻る
NO DC '0123456789ABCDEF'
LEN DC 9 ;出力長
BUF DC 'GR1=#' ;出力領域
HEX DS 4 ; 16進数保存域
END