Просто работаю с Little Man Computer здесь и столкнулся с проблемой, которая меня немного беспокоит. Поскольку нет if и т. Д., Мне трудно остановить нечетные числа, превращающиеся в отрицательные числа при вычитании из четного числа. Например, я беру 3 из 10 в петле и ветку на нуле. Но это никогда не достигает нуля. Итак, я хочу знать, как заставить приложение остановиться, прежде чем оно станет отрицательным, например, 3, вычтенное из 10 в цикле, будет 10, 7, 4, 1, -2. Но я хочу, чтобы он остановился на 1, поэтому не уходя в минус и преодолевая эту проблему.
Это то, что у меня есть до сих пор, и работает только для четных и четных чисел:
INP
STA DEC
INP
LOOP SUB DEC
OUT
BRZ QUIT
BRA LOOP
QUIT HLT
DEC DAT
(Для начала, я думаю, было бы неплохо объявить второй вход как переменную, верно? Или нет?)
Было бы очень признательно, если бы вы могли мне помочь. И придумать постоянное решение этой проблемы.