[an error occurred while processing this directive]
|
Наткнулся на непонятный глюк. Вернее два.
Выполняю беззнаковое деление.
Глюк первый - если выполнять деление точно по примеру в хелпе, то результат получается в два раза меньше ожидаемого, т.е. если я делю 0х1 0000 на 0х100, то получаю 0х80 вместо 0х100. Для того чтобы получить правильный результат надо вместо 16 команд divq поставить 17.
Глюк второй - если в процедуре используется два деления, то результат второго деления НЕ ВСЕГДА считается верно. Т.е. иногда результат правильный, а иногда получается какое-то отрицательное число (причем всегда одно и то же). С ним оказалось еще веселее... Оказывается если пятый бит ASTAT обнулять не как в примере - один раз перед делением, а перед каждой командой divq, то все работает на ура.......
Объясните НОВИЧКУ, что не так делаю???
E-mail: info@telesys.ru