|
PC +/- … |
|
|
|
Apr 11 2011, 17:44
|

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

|
..Борюсь с атмегами.. о, как они мне не нравятся.. ну всё, буквально, претит.. ..Вопрос такой. У PIC-ов есть возможность написать: гоу ту доллар +/-, скажем, 7. И программа перейдет по указанному адресу. У атмег, аналогичный вариант выглядит, как, PC +/- 7. Как бы, это работает. Но, недавно, что-то не пошло, пришлось по фрагментам в студии рассматривать. И обнаружил, что не прыгает оно на семь указанных строчек, а прыгает на шесть. А в других случаях прыгало.. Если указать восемь, будет прыгать на семь. ..Это глюк такой или есть нюансы, которых не знаю? ..С PIC-ами таких проблем не было. P.S. Настоятельная просьба ко всем, решившим сюда ответить: ни слова о Си. О его достоинствах, преимуществах и т. д. Ни слова! Или сразу закрою тему.
--------------------
It's me
|
|
|
|
|
 |
Ответов
|
Apr 13 2011, 23:29
|
Гуру
     
Группа: Свой
Сообщений: 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 текстовой заменой  Цитата(SysRq @ Apr 14 2011, 03:07)  В процессе правки заменить rjmp на jmp, потому что код разросся (а правили сложно, долго, и где-то много ниже этого вот места), и компилятор ругался на невозможность relative jump. Ошибка по невнимательности. Человеческий фактор. Если уж мы имеем дело с ассемблером, то человеческий фактор и так проявляется на каждом шагу. В конце концов, можно и метку в процессе copy-paste воткнуть не туда. Поэтому элементарную внимательность никто не отменяет.
|
|
|
|
Сообщений в этой теме
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 страниц
1 2 >
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|