|
|
  |
PC +/- … |
|
|
|
Apr 14 2011, 08:13
|
Гуру
     
Группа: Участник
Сообщений: 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 в ассемблерном тексте, описывающем команду перехода, программисту явно, или следует обязательно положиться в вычислении смещения на ассемблер?  Нет. Пока я вижу, что _любое_ использование PC вызывает у оппонентов отторжение, переходящее в классовую ненависть. PC полностью вручную никто не считает, а вопрос, хорошо ли, что смещение оперирует дискретами PC а не длительностью конкретной цепочки команд, затерялся где-то в начале обсуждения, да так тихо и загнулся. И был лишь поводом для начала боевых действий. Цитата PS Основной вопрос ТС: "почему мои любимые пиковские хаки не работают у меня на AVR, ох, как я ненавижу, как я ненавижу..." Вопрос настоящего инженера, бесспорно.  Это он с MSP430 не работал...
|
|
|
|
|
Apr 14 2011, 08:17
|

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

|
Цитата(rx3apf @ Apr 14 2011, 12:13)  Нет. Пока я вижу, что _любое_ использование PC вызывает у оппонентов отторжение, переходящее в классовую ненависть. PC полностью вручную никто не считает, а вопрос, хорошо ли, что смещение оперирует дискретами PC а не длительностью конкретной цепочки команд, затерялся где-то в начале обсуждения, да так тихо и загнулся. И был лишь поводом для начала боевых действий. Я намекал на то, что любая команда относительного перехода использует счетчик команд, однако обычно с расчетом величины перехода лучше справляется ассемблер, для чего и придумали метки, вообще говоря.
--------------------
Пишите в личку.
|
|
|
|
|
Apr 14 2011, 08:23
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(Oldring @ Apr 14 2011, 12:17)  Я намекал на то, что любая команда относительного перехода использует счетчик команд, однако обычно с расчетом величины перехода лучше справляется ассемблер, для чего и придумали метки, вообще говоря. Что вовсе не означает, что иной способ адресации незаконен и подлежит обличению и осуждению. У каждого свой стиль программирования. Я, к примеру, стараюсь не злоупотреблять с метками, причем только ради того, чтобы не портить читабельность. И не для кого-нибудь, а для самого себя через несколько лет, когда буду (если) что-то дорабатывать. И мне бы для отказа от конструкций PC+ было бы достаточно наличия условных пропусков по C/Z и локальных меток. Но раз ни того, ни другого нет - буду продолжать нарушать заповеди.
|
|
|
|
|
Apr 14 2011, 09:25
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(zombi @ Apr 14 2011, 13:22)  TS утверждает что ATMELовские трансляторы не правильно компилируют некоторые команды у которых аргументом является програмный счётчик? Типа того. Т.е., на самом деле, он просто не понял, что считаются не строчки, а слова программной памяти (строчки, команды, в смысле, да, было бы удобнее и избавило бы от некоторых возможных проблем, но лично мне такие ассемблеры неизвестны).
Сообщение отредактировал rx3apf - Apr 14 2011, 09:25
|
|
|
|
|
Apr 14 2011, 09:31
|

Гуру
     
Группа: Свой
Сообщений: 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 Пример вполне себе из жизни. Не дословно, конечно, но изюминка сохранена. Дык грабли с русскими буквами в мнемонике команд стары как мир!
|
|
|
|
|
Apr 14 2011, 10:31
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Oldring @ Apr 14 2011, 12:00)  PS Основной вопрос ТС: "почему мои любимые пиковские хаки не работают у меня на AVR, ох, как я ненавижу, как я ненавижу..." Вопрос настоящего инженера, бесспорно.  Позволите еще один вброс? Я вот считаю, что от программирования на ассемблере для PIC12/16 получаешь куда большее эстетическое удовольствие, нежели чем в случае AVR. Красота, ничего лишнего. А уж таблички через retlw... P.S. Справедливости ради замечу, что с PIC'ами последний раз имел дело лет семь назад. На AVR'ах изредка что-то приходится стряпать, но каждый раз невольно плюешься. А на "C" писать в данном случае лень, никогда не использовал его для восьмибитников. Цитата(ARV @ Apr 14 2011, 14:17)  а когда используешь punto switcher - это норма жизни  Вот никогда не понимал людей, использующих подобную автоматику. О, есть еще одна тема для холивара: как кошерно переключать раскладку - при помощи Alt+Shift, или же Ctrl+Shift? Последний вариант, на мой взгляд, является еретическим, хотя многие почему-то выбирают его.
|
|
|
|
|
Apr 14 2011, 10:40
|

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

|
Цитата(aaarrr @ Apr 14 2011, 14:31)  Вот никогда не понимал людей, использующих подобную автоматику.
О, есть еще одна тема для холивара: как кошерно переключать раскладку - при помощи Alt+Shift, или же Ctrl+Shift? Последний вариант, на мой взгляд, является еретическим, хотя многие почему-то выбирают его. с введением в Windows системы индивидуальной настройки раскладки для каждой запущенной программы, автоматический переключатель часто выручает. но при написании программ - сущий ад!  при Alt+Shift пальцы надо широко расставлять, а на ноутбуках еще и попадать в мелкие кнопки
--------------------
Я бы взял частями... но мне надо сразу.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|