Ассемблер (ASM) для AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Ответить
Вымогатель припоя
Аватара пользователя
Сообщения: 606
Зарегистрирован: Чт окт 06, 2016 21:12:07
Откуда: Южное Бутово

Сообщение ptr128 »

Почитал, врубаюсь, но так и не понял до сих пор. А какое практическое применение может быть в использовании SP не по прямому назначению?
Или это в чистом виде теоретические исследования, которые до технологической стадии еще не дошли?
Не ошибается только то, кто ничего не делает.
Тот, кто признает свои ошибки, на них учится.
Глупец же, упорствуя в своих заблуждениях, остается глупцом.
Реклама
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Сб сен 17, 2016 18:56:30

Сообщение dimmer »

Тут просто парни хотят накопать на Нобелевскую премию (или Шнобелевскую) в номинации "Особо извращенный изврат".
Реклама
Встал на лапы
Сообщения: 106
Зарегистрирован: Чт сен 10, 2015 06:59:03
Откуда: Гродно, BY

Сообщение trofim2 »

Если нельзя, но очень хочется, значит можно.

Практическое применение - в нестандартном мышлении и принятии решения.
Друг Кота
Аватара пользователя
Сообщения: 15652
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

ptr128 писал(а):Почитал, врубаюсь, но так и не понял до сих пор. А какое практическое применение может быть в использовании SP не по прямому назначению?
Или это в чистом виде теоретические исследования, которые до технологической стадии еще не дошли?
Для указателя стека - определение/подтверждение границ действия. Ибо в техдокументации нет явного утверждения границ адресов ОЗУ для применения указателя стека, а область РСФ/РОН также заявлена производителем как "отображение на ОЗУ".
Для косвенной адресации РОН - практическая обработка малых массивов с максимальным быстродействием и/или косвенной адресацией. Дополнительная "плюшка" - возможность модификации обрабатываемого регистра в ходе обработки.
В принципе то же и для работы через память выполнимо, однако массивчик как область "сверхбыстрой" передачи параметров имеет некоторые преимущества.
Вобщем - дополнительный анализ рамок применения системы команд и способов адресации "на когда делать нечего".
:beer:
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 6332
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Сообщение Jack_A »

BOB51 писал(а): Для косвенной адресации РОН - практическая обработка малых массивов
Ну это-то работает без проблем, многократно проверено. Например, в 1200 ОЗУ вообще нет, но косвенная адресация имеется. Правда, только через Z. Тут главное - косвенной адресацией сам регистр-указатель не задеть. Как говорил врач из фильма "Экипаж", вправляя пациенту вывихнутую челюсть: "Тут главное - руку вовремя отдернуть" :)
Изображение
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18767
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Jack_A писал(а):Правда, только через Z
хорошо сказано, прямо в тему последних сообщений! :)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 6332
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Сообщение Jack_A »

Я же не сказал "через Ж" :) В 1200 Z-регистр (R30) один, там нет ZH, вот через него и адресуем ячейку в регистровом файле.
Изображение
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18767
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

мелочные нюансы не меняют сути. через то самое - оно и есть через то самое :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватара пользователя
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Сообщение СКАЗОЧНИК »

Код: Выделить всё

           clz
			clc
			cp  EncD_Plus, EncD_Minus                  ; сравнить две переменные
			breq Ravno                       ; если равны, то переходим
			brlo Menshe                      ; а если первая меньше, чем вторая, то переходим в другое место
                             nop                           ; иначе выполняем другой код.

Будет ли такая конструкция корректно работать?
Последний раз редактировалось СКАЗОЧНИК Вс окт 16, 2016 14:38:49, всего редактировалось 2 раза.
Станислав
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Почему оно должно не работать? Сброс флагов только тут лишнее.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватара пользователя
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Сообщение СКАЗОЧНИК »

Почему сброс лишнее? :roll: Я же не знаю, какие они были до этого... :dont_know:
Станислав
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

CPI установит флаги в по результаты операции, не важно что было перед этим. Щаззз ссылку найду как флаги устанавливаются для нее.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватара пользователя
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Сообщение СКАЗОЧНИК »

Да, только я подправил свой код. )))
Не CPI, а CP (хотя, для флагов не принципиально, они одинаково ставят)

Но и у меня в шпаргалке написано, что эта команда ставит все флаги. Но не написано, что она их сбрасывает.... :dont_know:
Станислав
akl
Друг Кота
Сообщения: 4453
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Сообщение akl »

Команды меняют! все флаги (кроме DEC и INC не трогающих C)
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Вот на CP. Для каждого флага есть булево выражение, чему будет он равен после выполнения команды.

Почти все команды меняющие флаг, его меняют всегда. Но не все.

Команда CPC, может не изменить флаг Z. В зависимости от его состояния перед командой и результатом команды. ADC такая же, SUBC или как там она пишется. Может еще есть.
---------------
UPD: Скорректировал вторую ссылку, а то чего то я там напутал.
Последний раз редактировалось Z_h_e Вс окт 16, 2016 15:00:26, всего редактировалось 1 раз.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
akl
Друг Кота
Сообщения: 4453
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Сообщение akl »

Z_h_e писал(а):Команда CPI, может не изменить флаг Z.
Нет, всегда устанавливается, если равно.
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Только что исправил ссылку. Думал одно, писал другое.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватара пользователя
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Сообщение СКАЗОЧНИК »

Да, я понял о чем разговор, если сравнение с переносом и уже сам нашел эту команду в левом списке (содержании) АВР.
Даже сравнивал их. Честно, не очень с английским. Да и с булевой алгеброй тоже. :))) :facepalm: Но более или менее можно разобраться.

Короче, сделал вывод. Если написано, что команда ставит флаги, то она не ставит их, а ВЛИЯЕТ на них, т.е. Ставит или Снимает в зависимости от результата операции.

Т.е. Если флаг и был установлен ранее (любой другой операцией или командой), то после того же CPI (например), этот флаг может быть сброшен.

Спасибо. Поубирал лишние строки. :beer:
Станислав
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

СКАЗОЧНИК писал(а):Если написано, что команда ставит флаги, то она не ставит их, а ВЛИЯЕТ на них, т.е. Ставит или Снимает в зависимости от результата операции.
Вот я тоже так думал и успешно пользовался :facepalm: , глядя лишь лишь в ДШ на раздел инструкшион суммари. Все таже CPC, там указано что изменяет флаг Z, а оказывается не всегда.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
akl
Друг Кота
Сообщения: 4453
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Сообщение akl »

Да, есть команды, работающие с С-флагом предыдущей операции. ADC, SBC, SBCI, CPC
Ответить

Вернуться в «AVR»