реклама на сайте
подробности

 
 
12 страниц V  « < 6 7 8 9 10 > »   
Closed TopicStart new topic
> PC +/- …
rx3apf
сообщение Apr 14 2011, 08:13
Сообщение #106


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(Rst7 @ Apr 14 2011, 11:57) *
Система команд в текущем случае эффективна и не избыточна. Причем, именно вкупе с реализацией адресного пространства - доступ к SREG только через IN/OUT, без битовой возни. А если SREG будет доступен SBIC/SBIS, то это будет избыточность. Лучше туда что-то полезное положить.

Но ведь не кладут. И, вдобавок, при расширении периферии, все ползет, хорошо, что хоть порты на месте. Система команд, кстати, отягощена лишними мнемокодами, имеющими тот же опкод (к вопросу о "неизбыточности"). А пропуск по биту в SREG от перехода по условию все же различается - в первом случае по желанию можно в обоих ветках идти сколь угодно далеко. Я ведь написал "IMHO", и при нем остаюсь - этот момент _мне_ представляется непродуманным. Но речь шла совершенно о другом.
Цитата
А вообще, если свербит, и мозг не умеет понимать сразу с листа, то сделайте макрос, назовите его SKIP xx, где xx - условие. Ну или еще как.

И вот КАК это сделать ? Чтобы именно пропускал _одну_ последующую команду ? Препроцессор написать ?

Цитата(Oldring @ Apr 14 2011, 12:00) *
Основной обсуждаемый вопрос - кошерно ли использовать PC в ассемблерном тексте, описывающем команду перехода, программисту явно, или следует обязательно положиться в вычислении смещения на ассемблер? sm.gif

Нет. Пока я вижу, что _любое_ использование PC вызывает у оппонентов отторжение, переходящее в классовую ненависть. PC полностью вручную никто не считает, а вопрос, хорошо ли, что смещение оперирует дискретами PC а не длительностью конкретной цепочки команд, затерялся где-то в начале обсуждения, да так тихо и загнулся. И был лишь поводом для начала боевых действий.

Цитата
PS Основной вопрос ТС: "почему мои любимые пиковские хаки не работают у меня на AVR, ох, как я ненавижу, как я ненавижу..." Вопрос настоящего инженера, бесспорно. laughing.gif

Это он с MSP430 не работал...

Go to the top of the page
 
+Quote Post
Oldring
сообщение Apr 14 2011, 08:17
Сообщение #107


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(rx3apf @ Apr 14 2011, 12:13) *
Нет. Пока я вижу, что _любое_ использование PC вызывает у оппонентов отторжение, переходящее в классовую ненависть. PC полностью вручную никто не считает, а вопрос, хорошо ли, что смещение оперирует дискретами PC а не длительностью конкретной цепочки команд, затерялся где-то в начале обсуждения, да так тихо и загнулся. И был лишь поводом для начала боевых действий.


Я намекал на то, что любая команда относительного перехода использует счетчик команд, однако обычно с расчетом величины перехода лучше справляется ассемблер, для чего и придумали метки, вообще говоря.


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Apr 14 2011, 08:23
Сообщение #108


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(Oldring @ Apr 14 2011, 12:17) *
Я намекал на то, что любая команда относительного перехода использует счетчик команд, однако обычно с расчетом величины перехода лучше справляется ассемблер, для чего и придумали метки, вообще говоря.

Что вовсе не означает, что иной способ адресации незаконен и подлежит обличению и осуждению. У каждого свой стиль программирования. Я, к примеру, стараюсь не злоупотреблять с метками, причем только ради того, чтобы не портить читабельность. И не для кого-нибудь, а для самого себя через несколько лет, когда буду (если) что-то дорабатывать. И мне бы для отказа от конструкций PC+ было бы достаточно наличия условных пропусков по C/Z и локальных меток. Но раз ни того, ни другого нет - буду продолжать нарушать заповеди.
Go to the top of the page
 
+Quote Post
zombi
сообщение Apr 14 2011, 09:22
Сообщение #109


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Ув. господа ответьте плиз правильно ли я понял вопрос TS?

TS утверждает что ATMELовские трансляторы не правильно компилируют некоторые команды у которых аргументом является програмный счётчик?
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Apr 14 2011, 09:25
Сообщение #110


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(zombi @ Apr 14 2011, 13:22) *
TS утверждает что ATMELовские трансляторы не правильно компилируют некоторые команды у которых аргументом является програмный счётчик?

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

Сообщение отредактировал rx3apf - Apr 14 2011, 09:25
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Apr 14 2011, 09:27
Сообщение #111


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(ARV @ Apr 14 2011, 12:01) *
но смотреть на вещи надо ширее: PC+13 - это уже сильно напряжет мозг,

Не а , biggrin.gif PC13= 6*(PC+2) + (PC+1) и всё laughing.gif


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
zombi
сообщение Apr 14 2011, 09:31
Сообщение #112


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(rx3apf @ Apr 14 2011, 13:25) *
Типа того. Т.е., на самом деле, он просто не понял, что считаются не строчки, а слова программной памяти (строчки, команды, в смысле, да, было бы удобнее и избавило бы от некоторых возможных проблем, но лично мне такие ассемблеры неизвестны).

Ну дык а об этом и написал в 32м сообщении.
А он (TS) возражает.

Цитата(aaarrr @ Apr 14 2011, 04:21) *
Вот попробуйте найти ошибку в такой конструкции:
Код
    ldi     r16, 0
    sbrс    r17, 2
    ldi     r16, 1

Пример вполне себе из жизни. Не дословно, конечно, но изюминка сохранена.

Дык грабли с русскими буквами в мнемонике команд стары как мир!
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Apr 14 2011, 09:36
Сообщение #113


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Не работал с PIC , а что компиляторы PIC меток не понимают , там всегда сам считаешь PC+X?


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Apr 14 2011, 09:41
Сообщение #114


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(zombi @ Apr 14 2011, 13:31) *
Ну дык а об этом и написал в 32м сообщении.
А он (TS) возражает.

Это от непонимания. Потому что ссылка на пост @Ark ничего принципиально не меняет - нет разницы, чему равен PC при ассемблировании текущей команды, адресу следующей либо адресу ее самой (как в AVR или PIC), про это надо лишь помнить и знать, что у конкретной платформы могут быть команды разной длины.
Go to the top of the page
 
+Quote Post
ARV
сообщение Apr 14 2011, 10:00
Сообщение #115


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



Цитата(ILYAUL @ Apr 14 2011, 13:27) *
Не а , biggrin.gif PC13= 6*(PC+2) + (PC+1) и всё laughing.gif
и сразу стало как-то легче biggrin.gif


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 14 2011, 10:14
Сообщение #116


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(zombi @ Apr 14 2011, 13:31) *
Дык грабли с русскими буквами в мнемонике команд стары как мир!

Когда встречаешься первый раз, и это единственный кириллический символ на весь текст - эффект просто потрясающий.
Go to the top of the page
 
+Quote Post
ARV
сообщение Apr 14 2011, 10:17
Сообщение #117


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



Цитата(aaarrr @ Apr 14 2011, 14:14) *
Когда встречаешься первый раз, и это единственный кириллический символ на весь текст - эффект просто потрясающий.

а когда используешь punto switcher - это норма жизни sm.gif


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 14 2011, 10:31
Сообщение #118


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Oldring @ Apr 14 2011, 12:00) *
PS Основной вопрос ТС: "почему мои любимые пиковские хаки не работают у меня на AVR, ох, как я ненавижу, как я ненавижу..." Вопрос настоящего инженера, бесспорно. laughing.gif

Позволите еще один вброс? Я вот считаю, что от программирования на ассемблере для PIC12/16 получаешь куда большее эстетическое удовольствие, нежели чем в случае AVR. Красота, ничего лишнего. А уж таблички через retlw...

P.S. Справедливости ради замечу, что с PIC'ами последний раз имел дело лет семь назад. На AVR'ах изредка что-то приходится стряпать, но каждый раз невольно плюешься. А на "C" писать в данном случае лень, никогда не использовал его для восьмибитников.

Цитата(ARV @ Apr 14 2011, 14:17) *
а когда используешь punto switcher - это норма жизни sm.gif

Вот никогда не понимал людей, использующих подобную автоматику.

О, есть еще одна тема для холивара: как кошерно переключать раскладку - при помощи Alt+Shift, или же Ctrl+Shift?
Последний вариант, на мой взгляд, является еретическим, хотя многие почему-то выбирают его.
Go to the top of the page
 
+Quote Post
ARV
сообщение Apr 14 2011, 10:40
Сообщение #119


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



Цитата(aaarrr @ Apr 14 2011, 14:31) *
Вот никогда не понимал людей, использующих подобную автоматику.

О, есть еще одна тема для холивара: как кошерно переключать раскладку - при помощи Alt+Shift, или же Ctrl+Shift?
Последний вариант, на мой взгляд, является еретическим, хотя многие почему-то выбирают его.
с введением в Windows системы индивидуальной настройки раскладки для каждой запущенной программы, автоматический переключатель часто выручает. но при написании программ - сущий ад! sm.gif

при Alt+Shift пальцы надо широко расставлять, а на ноутбуках еще и попадать в мелкие кнопки sm.gif




--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 14 2011, 10:45
Сообщение #120


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(ARV @ Apr 14 2011, 14:40) *
при Alt+Shift пальцы надо широко расставлять, а на ноутбуках еще и попадать в мелкие кнопки sm.gif

А при Ctrl+Shift надо руку с клавиатуры снимать, или большой палец выкручивать - так и здоровье недолго потерять.
Go to the top of the page
 
+Quote Post

12 страниц V  « < 6 7 8 9 10 > » 
Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 13:07
Рейтинг@Mail.ru


Страница сгенерированна за 0.01529 секунд с 7
ELECTRONIX ©2004-2016