Цитата Сообщение от Lisitsin Посмотреть сообщение
RACE16_9.zip
Что-то со стеком или с памятью вообще.

Смотрите со строки 6284:

8928 0092 0000 0000 0092 2000 2000
Здесь вызывается подпрограмма обновления контрольной суммы по адресу #94fd. Это подпрограмма у вас вызывается успешно много раз. Но в очередной раз, начиная вызов со строки 6284, подпрограмма доходит до строки

9526 0092 0000 0000 fabe 2000 2000
соответствующей инструкции RET, но возвращает управление не по адресу #8928 + 3 = #892B (адрес инструкции CALL + ее размер), а по адресу #8900.

Если сразу ошибку не найдете, давайте попробуем сделать тот же трейсинг добавив в него значения регистра SP. Может быть, это наведет на нужную мысль.