Цитата Сообщение от ivagor Посмотреть сообщение
Не учитывается случай, когда результат умножения=-32768dec. По процитированному описанию в этом случае флаг C должен быть сброшен, а процедура эмуляции его в этом случае устанавливает.
До выяснения знака результата (TST R3) промежуточный ответ, стало быть, равен 32768. В этом случае регистр R0 пустой, а регистр R1 в двоичном виде 1000 0000 0000 0000. Тогда инструкция TST R1 считает, что результат отрицательный (ведь установлен старший бит) и не срабатывает переход BPL 72. А значит, выполняется инструкция INC R2, после которой в R2 единица. Это как раз бит C слова состояния процессора.