MULTS   START
        PUSH   0,GR1
        PUSH   0,GR2
        PUSH   0,GR3
        LAD    GR0,0        ;乗算結果の初期化
        ST     GR0,SGN
        [    ( a )    ]   ;乗数の符号チェック
        JPL    MUL
        LAD    GR3,1
        ST     GR3,SGN
        XOR    GR2,=#FFFF
        LAD    GR2,1,GR2
MUL     ST     GR1,SAVE     ;被乗数の退避
        LAD    GR3,14
LP      SLL    GR2,1
        JZE    ADJ
        [    ( b )    ]  
        SLA    GR1,0,GR3
        ADDA   GR0,GR1
        [    ( c )    ]  
LP2     LAD    GR3,-1,GR3
        JUMP   LP
ADJ     LD     GR3,SGN      ;乗算結果の符号調整
        JZE    FIN          ;   〃
        [    ( d )    ]     ;   〃
        ADDA   GR0,=1       ;   〃
FIN     POP    GR3
        POP    GR2
        POP    GR1
        RET
SAVE    DS     1
SGN     DS     1
        END