Почитал, врубаюсь, но так и не понял до сих пор. А какое практическое применение может быть в использовании SP не по прямому назначению? Или это в чистом виде теоретические исследования, которые до технологической стадии еще не дошли?
_________________ Не ошибается только то, кто ничего не делает. Тот, кто признает свои ошибки, на них учится. Глупец же, упорствуя в своих заблуждениях, остается глупцом.
Почитал, врубаюсь, но так и не понял до сих пор. А какое практическое применение может быть в использовании SP не по прямому назначению? Или это в чистом виде теоретические исследования, которые до технологической стадии еще не дошли?
Для указателя стека - определение/подтверждение границ действия. Ибо в техдокументации нет явного утверждения границ адресов ОЗУ для применения указателя стека, а область РСФ/РОН также заявлена производителем как "отображение на ОЗУ". Для косвенной адресации РОН - практическая обработка малых массивов с максимальным быстродействием и/или косвенной адресацией. Дополнительная "плюшка" - возможность модификации обрабатываемого регистра в ходе обработки. В принципе то же и для работы через память выполнимо, однако массивчик как область "сверхбыстрой" передачи параметров имеет некоторые преимущества. Вобщем - дополнительный анализ рамок применения системы команд и способов адресации "на когда делать нечего".
Для косвенной адресации РОН - практическая обработка малых массивов
Ну это-то работает без проблем, многократно проверено. Например, в 1200 ОЗУ вообще нет, но косвенная адресация имеется. Правда, только через Z. Тут главное - косвенной адресацией сам регистр-указатель не задеть. Как говорил врач из фильма "Экипаж", вправляя пациенту вывихнутую челюсть: "Тут главное - руку вовремя отдернуть"
clz clc cp EncD_Plus, EncD_Minus ; сравнить две переменные breq Ravno ; если равны, то переходим brlo Menshe ; а если первая меньше, чем вторая, то переходим в другое место nop ; иначе выполняем другой код.
Будет ли такая конструкция корректно работать?
_________________ Станислав
Последний раз редактировалось СКАЗОЧНИК Вс окт 16, 2016 14:38:49, всего редактировалось 2 раз(а).
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс окт 16, 2016 14:48:35
Собутыльник Кота
Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2708 Откуда: г. Чайковский
Рейтинг сообщения:3 Медали: 1
Вот на CP. Для каждого флага есть булево выражение, чему будет он равен после выполнения команды.
Почти все команды меняющие флаг, его меняют всегда. Но не все.
Команда CPC, может не изменить флаг Z. В зависимости от его состояния перед командой и результатом команды. ADC такая же, SUBC или как там она пишется. Может еще есть. ---------- UPD: Скорректировал вторую ссылку, а то чего то я там напутал.
_________________ Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Последний раз редактировалось Z_h_e Вс окт 16, 2016 15:00:26, всего редактировалось 1 раз.
Да, я понял о чем разговор, если сравнение с переносом и уже сам нашел эту команду в левом списке (содержании) АВР. Даже сравнивал их. Честно, не очень с английским. Да и с булевой алгеброй тоже. Но более или менее можно разобраться.
Короче, сделал вывод. Если написано, что команда ставит флаги, то она не ставит их, а ВЛИЯЕТ на них, т.е. Ставит или Снимает в зависимости от результата операции.
Т.е. Если флаг и был установлен ранее (любой другой операцией или командой), то после того же CPI (например), этот флаг может быть сброшен.
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс окт 16, 2016 15:16:06
Собутыльник Кота
Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2708 Откуда: г. Чайковский
Рейтинг сообщения:0 Медали: 1
СКАЗОЧНИК писал(а):
Если написано, что команда ставит флаги, то она не ставит их, а ВЛИЯЕТ на них, т.е. Ставит или Снимает в зависимости от результата операции.
Вот я тоже так думал и успешно пользовался , глядя лишь лишь в ДШ на раздел инструкшион суммари. Все таже CPC, там указано что изменяет флаг Z, а оказывается не всегда.
_________________ Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения