Можно сказать, два года ловил ошибку (хотя конечно же, два года я ничего не делал и потом недельку половил ошибку, но все же). Оказалось, что у меня была ошибка в инструкции SWAB: вместо поля адреса назначения, как положено для однооперандных инструкций, бралось поле адреса источника. Оно бы и ладно, тесты должны такие вещи вылавливать тут же, но почему-то 791401 проходил без ошибок, хотя тест SWAB там есть. Но, все тесты SWAB в нем проводятся над регистром R3. Код такой инструкции 00 03 03. Часть кода операции совпадала с выбранным регистром в поле назначения. То есть в дейтсвительности вышло так, что независимо от реального операнда всегда исполнялась SWAB R3 и именно SWAB R3 проверяется в тестах. Бетон.