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

 
 
> PC +/- …
Wise
сообщение Apr 11 2011, 17:44
Сообщение #1


Пользователь забанен
*****

Группа: Свой
Сообщений: 1 138
Регистрация: 9-08-05
Пользователь №: 7 492



..Борюсь с атмегами.. о, как они мне не нравятся.. ну всё, буквально, претит.. rolleyes.gif

..Вопрос такой.
У PIC-ов есть возможность написать: гоу ту доллар +/-, скажем, 7.
И программа перейдет по указанному адресу.
У атмег, аналогичный вариант выглядит, как, PC +/- 7.
Как бы, это работает. Но, недавно, что-то не пошло, пришлось по фрагментам в студии рассматривать. И обнаружил, что не прыгает оно на семь указанных строчек, а прыгает на шесть. А в других случаях прыгало..
Если указать восемь, будет прыгать на семь.
..Это глюк такой или есть нюансы, которых не знаю?
..С PIC-ами таких проблем не было.

P.S. Настоятельная просьба ко всем, решившим сюда ответить: ни слова о Си. О его достоинствах, преимуществах и т. д. Ни слова! Или сразу закрою тему.


--------------------
It's me
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Apr 13 2011, 23:29
Сообщение #2


Гуру
******

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



Цитата(Oldring @ Apr 14 2011, 03:06) *
Именно на хак и тянет.
Экономия в набивании нескольких символов за счет того, что повышается риск ошибоок при модификации программы и ухудшает видимость структуры программы. Метки, кстати, служат еще одной важной функции - показывают, куда может быть передано управление. Соответственно, иногда только текстовым поиском можно легко найти все места, откуда осуществляется переход на помеченную инструкцию.

Какой текстовый поиск? Речь идет об очевидных конструкциях. Ну куда еще может быть передано управление командой "rjmp PC - 1", кроме как на предыдущую?

Цитата(SysRq @ Apr 14 2011, 03:07) *
Нахожу, конечно же. Однако, информативность кода та же, что без меток, но меньше шансов ляпнуть ошибку.

Информативность много ниже. Я уж не говорю о потерянном времени и затраченном регистре.

Цитата(SysRq @ Apr 14 2011, 03:07) *
Нет, не облом, если декомпозировать команду. Но выглядеть будет крайне идиотски, не спорю.

Ну, так можно и до виртуальной машины дойти потихоньку.

Цитата(Oldring @ Apr 14 2011, 03:06) *
На первый взгляд, конечно, кажется, что "brhs PC + 2" текстуально полностью эквивалентно скипу следующего rjmp, если применять единообразно. Но это неверно. Помню, как-то ради быстрого перехода на больший кристалл заменил в проекте все rjmp и rcall на jmp и call текстовой заменой wink.gif

Цитата(SysRq @ Apr 14 2011, 03:07) *
В процессе правки заменить rjmp на jmp, потому что код разросся (а правили сложно, долго, и где-то много ниже этого вот места), и компилятор ругался на невозможность relative jump. Ошибка по невнимательности. Человеческий фактор.

Если уж мы имеем дело с ассемблером, то человеческий фактор и так проявляется на каждом шагу. В конце концов, можно и метку в процессе copy-paste воткнуть не туда. Поэтому элементарную внимательность никто не отменяет.
Go to the top of the page
 
+Quote Post
SysRq
сообщение Apr 13 2011, 23:58
Сообщение #3


Чайник, 1 литр
****

Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168



Цитата(aaarrr @ Apr 14 2011, 03:29) *
В конце концов...
Класс и цена ошибки другие. Время и усилия на поиск и устранения больше, последствия намного более непредсказуемые, поддерживать код сложнее.
Не вижу ничего хорошего в таком подходе, эх sad.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Wise   PC +/- …   Apr 11 2011, 17:44
- - defunct   Цитата(Wise @ Apr 11 2011, 20:44) Или сра...   Apr 11 2011, 18:02
|- - demiurg_spb   Цитата(zombi @ Apr 12 2011, 13:05) Не мог...   Apr 12 2011, 09:45
|- - aaarrr   Цитата(demiurg_spb @ Apr 12 2011, 13:45) ...   Apr 12 2011, 10:41
|- - _Pasha   Цитата(aaarrr @ Apr 12 2011, 13:41) Спрош...   Apr 12 2011, 11:51
|- - demiurg_spb   Цитата(aaarrr @ Apr 12 2011, 14:41) Спрош...   Apr 13 2011, 05:12
|- - ARV   Цитата(demiurg_spb @ Apr 13 2011, 09:12) ...   Apr 13 2011, 06:19
|- - zombi   Цитата(ARV @ Apr 13 2011, 10:19) вроде тв...   Apr 13 2011, 12:24
|- - _Pasha   Цитата(zombi @ Apr 13 2011, 15:24) и даже...   Apr 13 2011, 17:28
|- - zombi   Цитата(_Pasha @ Apr 13 2011, 21:28) ДОСов...   Apr 13 2011, 18:29
- - Палыч   Цитата(Wise @ Apr 11 2011, 21:44) ... обн...   Apr 11 2011, 18:08
- - Wise   Цитата(defunct @ Apr 12 2011, 01:02) По т...   Apr 11 2011, 18:10
|- - нечитатель   http://electronix.ru/forum/index.php?showt...st...   Apr 11 2011, 23:56
- - alexeyv   ЦитатаЗато именованную метку нельзя в макросе. Кот...   Apr 12 2011, 05:58
- - zombi   Цитата(Wise @ Apr 11 2011, 21:44) У атмег...   Apr 12 2011, 09:05
- - Wise   Цитата(demiurg_spb @ Apr 12 2011, 16:45) ...   Apr 12 2011, 10:04
|- - Палыч   Цитата(Wise @ Apr 12 2011, 14:04) Я как-н...   Apr 12 2011, 10:28
|- - defunct   Цитата(Wise @ Apr 12 2011, 13:04) ..А воо...   Apr 12 2011, 12:13
||- - _Pasha   Цитата(defunct @ Apr 12 2011, 15:13) Люба...   Apr 12 2011, 12:17
|||- - defunct   Цитата(_Pasha @ Apr 12 2011, 15:17) С как...   Apr 12 2011, 12:22
|||- - _Pasha   Цитата(defunct @ Apr 12 2011, 15:22) Да и...   Apr 12 2011, 12:31
||- - aaarrr   Цитата(defunct @ Apr 12 2011, 16:13) уник...   Apr 12 2011, 14:14
|- - Oldring   Цитата(Wise @ Apr 12 2011, 14:04) ..Метки...   Apr 13 2011, 20:52
|- - aaarrr   Цитата(Oldring @ Apr 14 2011, 00:52) Чушь...   Apr 13 2011, 21:01
|- - Oldring   Цитата(aaarrr @ Apr 14 2011, 01:01) Запом...   Apr 13 2011, 21:06
|- - rx3apf   Цитата(aaarrr @ Apr 14 2011, 01:01) Запом...   Apr 13 2011, 21:34
- - zombi   Цитатаrjmp PC + 7 jmp PC + 7 Этож нафига такое ну...   Apr 12 2011, 10:22
|- - _Pasha   Цитата(zombi @ Apr 12 2011, 13:22) Этож н...   Apr 12 2011, 10:35
- - GetSmart   Вообще, не знаешь архитектуру = кривые руки.   Apr 12 2011, 11:55
- - Wise   Цитата(defunct @ Apr 12 2011, 19:13) Точн...   Apr 12 2011, 14:08
|- - ARV   Цитата(Wise @ Apr 12 2011, 18:08) ..А есл...   Apr 13 2011, 04:33
- - zombi   Интересно как сие решается у других процов (длина ...   Apr 12 2011, 14:51
|- - _Pasha   Цитата(zombi @ Apr 12 2011, 17:51) Интере...   Apr 12 2011, 15:01
|- - zombi   Цитата(_Pasha @ Apr 12 2011, 19:01) Напри...   Apr 12 2011, 15:46
- - _Pasha   Вообще- то по правильному это ЦитатаLOCAL <спис...   Apr 13 2011, 04:07
- - GetSmart   Да, да. Атмегой плохо орехи колоть получается   Apr 13 2011, 04:52
|- - forever_student   Цитата(GetSmart @ Apr 13 2011, 08:52) Да,...   Apr 13 2011, 19:12
- - @Ark   ЦитатаИнтересно как сие решается у других процов (...   Apr 13 2011, 12:52
|- - zombi   Цитата(@Ark @ Apr 13 2011, 16:52) Считает...   Apr 13 2011, 13:25
- - SysRq   Нефиг писать на ассемблере там где он не нужен. Ц...   Apr 13 2011, 14:11
|- - zombi   Цитата(Wise @ Apr 12 2011, 14:04) ..А воо...   Apr 13 2011, 15:15
- - SysRq   Цитата(zombi @ Apr 13 2011, 19:15) И что,...   Apr 13 2011, 15:24
- - Wise   Цитата(zombi @ Apr 13 2011, 20:25) Я так ...   Apr 13 2011, 20:37
|- - forever_student   Цитата(Wise @ Apr 14 2011, 00:37) Вы с че...   Apr 14 2011, 02:30
|- - zombi   Цитата(Wise @ Apr 14 2011, 00:37) ..Может...   Apr 14 2011, 07:37
- - Wise   Цитата(Oldring @ Apr 14 2011, 03:52) Чушь...   Apr 13 2011, 21:04
- - Wise   Цитата(aaarrr @ Apr 14 2011, 04:01) Запом...   Apr 13 2011, 21:12
|- - Oldring   Цитата(Wise @ Apr 14 2011, 01:12) Для 48-...   Apr 13 2011, 21:16
- - SysRq   Цитата(Wise @ Apr 14 2011, 00:37) Вы пров...   Apr 13 2011, 21:15
|- - aaarrr   Цитата(SysRq @ Apr 14 2011, 01:15) Назван...   Apr 13 2011, 21:29
|- - SysRq   Цитата(aaarrr @ Apr 14 2011, 01:20) 90% л...   Apr 13 2011, 21:31
||- - aaarrr   Цитата(SysRq @ Apr 14 2011, 01:31) Ежели ...   Apr 13 2011, 21:39
||- - Oldring   Цитата(aaarrr @ Apr 14 2011, 01:39) Пожал...   Apr 13 2011, 21:40
|||- - aaarrr   Цитата(Oldring @ Apr 14 2011, 01:40) Повб...   Apr 13 2011, 21:43
|||- - Oldring   Цитата(aaarrr @ Apr 14 2011, 01:43) Надо ...   Apr 13 2011, 21:47
|||- - aaarrr   Цитата(Oldring @ Apr 14 2011, 01:45) Да, ...   Apr 13 2011, 21:51
|||- - Oldring   Цитата(aaarrr @ Apr 14 2011, 01:51) Да пр...   Apr 13 2011, 21:53
||- - SysRq   Цитата(aaarrr @ Apr 14 2011, 01:39) Пожал...   Apr 13 2011, 21:50
||- - aaarrr   Цитата(SysRq @ Apr 14 2011, 01:50) С ветв...   Apr 13 2011, 21:54
||- - Oldring   Цитата(aaarrr @ Apr 14 2011, 01:54) А есл...   Apr 13 2011, 21:57
||- - aaarrr   Цитата(Oldring @ Apr 14 2011, 01:57) Ну и...   Apr 13 2011, 21:59
||- - Oldring   Цитата(aaarrr @ Apr 14 2011, 01:59) Нет у...   Apr 13 2011, 22:01
||- - aaarrr   Цитата(Oldring @ Apr 14 2011, 02:01) Наде...   Apr 13 2011, 22:07
||- - Oldring   Цитата(aaarrr @ Apr 14 2011, 02:07) Спаси...   Apr 13 2011, 22:12
||- - aaarrr   Цитата(Oldring @ Apr 14 2011, 02:12) Я не...   Apr 13 2011, 22:15
|- - Oldring   Цитата(aaarrr @ Apr 14 2011, 01:29) Их вс...   Apr 13 2011, 21:37
- - Wise   Цитата(SysRq @ Apr 14 2011, 04:15) Си, се...   Apr 13 2011, 21:30
- - Wise   Цитата(Oldring @ Apr 14 2011, 04:37) Я тр...   Apr 13 2011, 21:45
- - Wise   Цитата(Oldring @ Apr 14 2011, 04:47) Я ду...   Apr 13 2011, 21:54
- - SysRq   Цитата(aaarrr @ Apr 14 2011, 01:54) А есл...   Apr 13 2011, 22:06
|- - Oldring   Цитата(SysRq @ Apr 14 2011, 02:06) Очень ...   Apr 13 2011, 22:07
||- - SysRq   Цитата(Oldring @ Apr 14 2011, 02:07) Не в...   Apr 13 2011, 22:11
||- - Oldring   Цитата(SysRq @ Apr 14 2011, 02:11) Пример...   Apr 13 2011, 22:25
||- - aaarrr   Цитата(Oldring @ Apr 14 2011, 02:21) Уже ...   Apr 13 2011, 22:29
||- - Oldring   Цитата(aaarrr @ Apr 14 2011, 02:29) Даже ...   Apr 13 2011, 22:33
|- - aaarrr   Цитата(SysRq @ Apr 14 2011, 02:06) При на...   Apr 13 2011, 22:11
|- - rx3apf   Цитата(SysRq @ Apr 14 2011, 02:06) Очень ...   Apr 13 2011, 22:14
- - Wise   Цитата(Oldring @ Apr 14 2011, 04:57) Если...   Apr 13 2011, 22:13
- - SysRq   Цитата(rx3apf @ Apr 14 2011, 02:14) По би...   Apr 13 2011, 22:44
- - aaarrr   Цитата(Oldring @ Apr 14 2011, 02:33) Даже...   Apr 13 2011, 22:50
|- - Oldring   Цитата(aaarrr @ Apr 14 2011, 02:50) Нет, ...   Apr 13 2011, 23:06
|- - SysRq   Цитата(aaarrr @ Apr 14 2011, 02:50) Неско...   Apr 13 2011, 23:07
|- - aaarrr   Цитата(SysRq @ Apr 14 2011, 03:58) Класс ...   Apr 14 2011, 00:21
|- - demiurg_spb   Цитата(aaarrr @ Apr 14 2011, 04:21) Я дал...   Apr 14 2011, 05:01
|- - SysRq   Цитата(demiurg_spb @ Apr 14 2011, 09:01) ...   Apr 14 2011, 05:31
|- - demiurg_spb   Так ведь интересно!   Apr 14 2011, 05:45
- - SysRq   Цитата(aaarrr @ Apr 14 2011, 04:21) Вот п...   Apr 14 2011, 00:48
|- - aaarrr   Цитата(SysRq @ Apr 14 2011, 04:48) Но, од...   Apr 14 2011, 00:55
- - ILYAUL   Да интересно. Хоть я понял в чём ошибка решил пров...   Apr 14 2011, 07:17
- - Rst7   QUOTE (rx3apf @ Apr 14 2011, 01:14) Где в...   Apr 14 2011, 07:18
|- - rx3apf   Цитата(Rst7 @ Apr 14 2011, 11:18) Простит...   Apr 14 2011, 07:40
|- - Oldring   Цитата(Rst7 @ Apr 14 2011, 11:18) Скажите...   Apr 14 2011, 07:45
- - SysRq   Цитата(ILYAUL @ Apr 14 2011, 11:17) ...ре...   Apr 14 2011, 07:36
- - Rst7   QUOTE В первом случае отсутствие необходимости ука...   Apr 14 2011, 07:44
- - Сергей Борщ   За всю жизнь переход без метки использовал только ...   Apr 14 2011, 07:46
- - Rst7   QUOTE Текстуальная. Да ну? Напомню начальный вбро...   Apr 14 2011, 07:48
- - Oldring   Цитата(Rst7 @ Apr 14 2011, 11:48) Да ну? ...   Apr 14 2011, 07:52
- - rx3apf   Цитата(Rst7 @ Apr 14 2011, 11:48) Да ну? ...   Apr 14 2011, 07:52
2 страниц V   1 2 >


Closed TopicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


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


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