Мой маленький компьютерный код застрял в цикле - PullRequest
0 голосов
/ 27 ноября 2018

Первоначальная цель состояла в том, чтобы создать программу, используя маленький человечек компьютер.Я думал, что это работает, но я верю, что это застряло в петле, которую я имею.Кто-нибудь может увидеть, где я ошибся?

Вот что у меня есть:

       INP          ; 00 901 input p
       STO p        ; 01 308 store p
       INP          ; 02 901 input q
       BRZ end      ; 03 705 while q > 0
       BRP loop     ; 04 810
end    LDA p        ; 05 508 result is p
       OUT          ; 06 902
       HLT          ; 07 000
p      DAT          ; 08
q      DAT          ; 09
loop   SUB p        ; 10 208 compute q - p in calculator
       BRZ end      ; 11 705
       BRP loop     ; 12 810 if q > p, q := q - p
       ADD p        ; 13 108 else
       STO q        ; 14 309
       LDA p        ; 15 508
       SUB q        ; 16 209
       STO p        ; 17 308 p := p - q
       LDA q        ; 18 509
       BRA loop     ; 19 610
...