ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 ноября
249693 Топик полностью
mazur (23.04.2011 16:29, просмотров: 81) ответил mazur на Делали ли вы подобное, практикуется ли подобное? Есть несколько практически одинаковых подпрограмм. Различаются лишь несколькими строками в середине. Я решил попробовать сделать следующее. Сделать одну подпрограмму "А". Те несколько строк
Только что запустил поправленную программу. Изменения: Переменные выстроил в порядке использования. Была мысль считать их из памяти программ в ОЗУ, и по порядку потом брать из ОЗУ. Сделал по совету ReAl. Используется указатель Y. Вместо sts\lds. Заданный вопрос решил так: ldd r19,Y+_SHIFT_MODE cpi r19,_DIR_SHIFT_LEFT breq Effects_Shift_Left cpi r19,_DIR_SHIFT_RIGHT breq Effects_Shift_Right cpi r19,_DIR_SHIFT_UP breq Effects_Shift_Up cpi r19,_DIR_SHIFT_DOWN breq Effects_Shift_Down Effects_Shift_Left: lsl r16 rol r17 rjmp Save_Shift_Result Effects_Shift_Right: lsr r16 ror r17 rjmp Save_Shift_Result Итог: До переделки программа занимала 1284 байта. После переделки стала занимать 982 байта.