В версии 0.35 при записи в какой-либо из регистров 0-E значения 4 и последующем косвенном обращении появляются следующие ошибки:
для регистров 0-3 это значение декрементируется на две единицы (а не на одну) и становится равным двум;
для регистров 4-6 значение не изменяется (хотя должно инкрементироваться) и остается равным четырем;
для регистров 7-E значение декрементируется (хотя меняться не должно) и становится равным трем.
После чего происходит косвенная запись, чтение или переход по сформированному ошибочному значению. Для более ранних версий наличие глюка не проверял, но в 0.26 он отсутствует.
Обнаружил указанную ошибку по сбойной работе ранее написанной мною тестовой программы, вычисляющей 7960 знаков после запятой числа e:
Да, подводные камни двоичной арифметики всё ещё продолжают вылазить. В версии 0.34 я модифицировал арифметику, но один момент вот упустил. Доработанную windows-версию уже выложил, linux будет вечером.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
В версии 0.35 при записи в какой-либо из регистров 0-E значения 4 и последующем косвенном обращении появляются следующие ошибки:
для регистров 0-3 это значение декрементируется на две единицы (а не на одну) и становится равным двум;
для регистров 4-6 значение не изменяется (хотя должно инкрементироваться) и остается равным четырем;
для регистров 7-E значение декрементируется (хотя меняться не должно) и становится равным трем.
После чего происходит косвенная запись, чтение или переход по сформированному ошибочному значению. Для более ранних версий наличие глюка не проверял, но в 0.26 он отсутствует.
Обнаружил указанную ошибку по сбойной работе ранее написанной мною тестовой программы, вычисляющей 7960 знаков после запятой числа e:
Last edit: Фурс Александр 2017-09-07
Да, подводные камни двоичной арифметики всё ещё продолжают вылазить. В версии 0.34 я модифицировал арифметику, но один момент вот упустил. Доработанную windows-версию уже выложил, linux будет вечером.