-
- насчёт "неужели ассемблерный эквивалент этого кусочка не очевиден" последний раз повторяю, идите лесом. Или забудьте про языки высокого уровня в этой ветке, или нам здесь нечего обсуждать - koyodza(17.01.2013 14:06)
- в Вашем случае (при пред-коррекции) нужно наложить маску на исходное число, если там не 0, то прибавить константу, а не единицу (попробуйте поделить -5 на 8 своим методом), а это может оказаться сложнее, чем пользоваться сложением с флагом переноса - koyodza(17.01.2013 14:04)
- Напишите проще AD(653 знак., 17.01.2013 14:12)
- а теперь попробуйте поделить на 128 :=) - koyodza(17.01.2013 14:25)
- Какие-то проблемы? Повторяю, напишите проще или хотя бы так же AD(585 знак., 17.01.2013 14:32 - 14:36)
- попробую. Для деления с округлением к нулю отрицательного 16-разрядного числа на 2 на AVR получается всего 4 команды. Дополнил для чисел большей разрядности и арифметического округления к ближайшему целому koyodza(1842 знак., 17.01.2013 17:28 - 18:11)
- Забавно, получилось хуже, чем С (при делении на 4 и больше), и при этом неправильно. AD(93 знак., 17.01.2013 17:57)
- попробуйте сделать то же самое для чисел с большей разрядностью, а также для переменной степени делителя. Пример с делением на 128 видимо не очень удачен, т.к. сдвиги вправо здесь удобнее заменить на сдвиги влево. Я просто хотел показать koyodza(47 знак., 17.01.2013 18:06 - 18:12)
- покажите где именно неправильно - koyodza(17.01.2013 17:57)
- ASR Rlow/ROR Rhigh, при этом ADIW Rlow - AD(17.01.2013 18:00)
- опечатка, спасибо. Конечно же ASR Rhigh затем ROR Rlow. Исправил - koyodza(17.01.2013 18:02)
- ASR Rlow/ROR Rhigh, при этом ADIW Rlow - AD(17.01.2013 18:00)
- Забавно, получилось хуже, чем С (при делении на 4 и больше), и при этом неправильно. AD(93 знак., 17.01.2013 17:57)
- попробую. Для деления с округлением к нулю отрицательного 16-разрядного числа на 2 на AVR получается всего 4 команды. Дополнил для чисел большей разрядности и арифметического округления к ближайшему целому koyodza(1842 знак., 17.01.2013 17:28 - 18:11)
- Какие-то проблемы? Повторяю, напишите проще или хотя бы так же AD(585 знак., 17.01.2013 14:32 - 14:36)
- а теперь попробуйте поделить на 128 :=) - koyodza(17.01.2013 14:25)
- Напишите проще AD(653 знак., 17.01.2013 14:12)