6. 例題プログラム

1〜5 で学んだことをもとに,プログラムの動作について考えてみましょう.以下のプログラムは,それぞれどのような計算を実行するものでしょうか? なお,命令の入っていない番地にある数字もプログラムの一部として考えるため,一度プログラムを実行して数字が変化した場合再度プログラムを書き込み直す必要があります.

プログラム1

LOOP    LDA Z
        ADD X
        STA Z
        LDA Y
        SUB ONE
        STA Y
        BRZ ELOOP
        BRA LOOP
ELOOP   LDA Z
        OUT
        HLT
Z       DAT 0
X       DAT 7
Y       DAT 8
ONE     DAT 1

プログラム2

LOOP   LDA X
       SUB Y
       STA X
       BRP ISPOS
       BRA ELOOP
ISPOS  LDA Z
       ADD ONE
       STA Z
       BRA LOOP
ELOOP  LDA Z
       OUT
       HLT
Z      DAT 0
X      DAT 56
Y      DAT 8
ONE    DAT 1

プログラム3

LOOP    LDA F1
        STA F2
        LDA F0
        STA F1
        ADD F2
        STA F0
        OUT
        LDA I
        SUB ONE
        STA I
        BRZ ELOOP
        BRA LOOP
ELOOP   LDA F0
        HLT
I       DAT 10
ONE     DAT 1
F0      DAT 1
F1      DAT 0
F2      DAT 0

プログラム4

LOOP    LDA X
        SUB Y
        BRP POS
        HLT
POS     LDA ZERO
        STA Z
        LDA X
        STA X1
LOOP1   LDA Z
        ADD ONE
        STA Z
        LDA X1
        SUB Y
        STA X1
        BRZ EQUAL
        BRP LOOP1
        LDA Y
        ADD ONE
        STA Y
        BRA LOOP
EQUAL   LDA Y
        OUT
        LDA Z
        STA X
        BRA LOOP
X       DAT 18
X1      DAT 0
Y       DAT 2
Z       DAT 0
ZERO    DAT 0
ONE     DAT 1