HEX4 START ;16進数 [b15.cas] IN HEX,LEN ;16進数の入力 LAD GR3,0 ;結果の格納場所 LD GR1,LEN CPA GR1,=4 ;長さのチェック JNZ ERROR LOOP SUBA GR1,=1 JMI FIN SRL GR3,4 ;右に4ビットシフト [ a ] LD GR2,HEX,GR1 ;1文字取り出す CPA GR2,='0' ;数字か? JMI ERROR CPA GR2,=':' ;数字か? JMI NUM CPA GR2,='A' ;'A'から'F'? JMI ERROR CPA GR2,='F' ;'A'から'F'? JPL ERROR SUBA GR2,='A' ; [ b ] LAD GR2,10,GR2 N1 SLL GR2,12 ;12ビット左シフト ADDA GR3,GR2 ;加算 JUMP LOOP NUM SUBA GR2,='0' ;文字から数値へ [ c ] JUMP N1 ERROR OUT ER,ERLEN ;エラーメッセージ FIN ST GR3,N RET LEN DS 1 N DS 1 ER DC 'ERROR' ERLEN DC 5 HEX DS 256 END