CASL IIの課題(2)ちょっと修正

問題

0xABCDの、1のビットの数を数えるプログラムを書け。

僕の回答(1)

REI002  START
        LAD     GR1,0
        LD      GR2,DATA
LOOP    JZE     EXIT
        JMI     CNT
        JUMP    COMMON
CNT     ADDL    GR1,ONE
COMMON  SLL     GR2,1
        JUMP    LOOP
EXIT    ST      GR1,ANS
        RET
DATA    DC      #ABCD
ANS     DS      1
ONE     DC      1
        END

僕の回答(2)

REI002  START
        LAD     GR1,0
        LD      GR2,DATA
LOOP    JZE     EXIT
        SLL     GR2,1
        JOV     CNT
        JUMP    LOOP
CNT     ADDL    GR1,ONE
        JUMP    LOOP
EXIT    ST      GR1,ANS
        RET
(以下略)

僕の回答(3)

REI002  START
        LAD     GR1,0
        LD      GR2,DATA
LOOP    LAD     GR7,1
        AND     GR7,GR2
        ADDL    GR1,GR7
        SRL     GR2,1
        JZE     EXIT
        JUMP    LOOP
EXIT    ST      GR1,ANS
        RET
(以下略)

シフト演算のオペランドを修正。