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

 
 
> Работает ли Atmega8 команда jmp?
ivstech
сообщение Nov 18 2006, 20:58
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 204
Регистрация: 5-01-06
Пользователь №: 12 860



Вопрос возник в связи с тем, что по ошибке я в программе написал jmp вместо rjmp. Заметил вот только сейчас, когда разбирался, почему программа сбоит (перестает принимать данные (?) по UART).
Читаю Changes from Rev.
2486K-08/03 to Rev.
2486L-10/03
...
3. Removed instructions CALL and JMP from the datasheet. << убрали просто за ненадобностью или начиная с ревизии K она не работает?
У меня серия процессора 0536I. Команду JMP он отрабатывает
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
CD_Eater
сообщение Nov 20 2006, 07:46
Сообщение #2


Частый гость
**

Группа: Новичок
Сообщений: 173
Регистрация: 3-09-04
Из: Moscow
Пользователь №: 595



И не должна работать, т.к. на 8 КБайтах её функциональность полностью покрывается командой rjmp. То есть, разработчикам МК не было смысла реализовывать её.
Go to the top of the page
 
+Quote Post
=GM=
сообщение Nov 21 2006, 18:04
Сообщение #3


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(CD_Eater @ Nov 20 2006, 04:46) *
И не должна работать, т.к. на 8 КБайтах её функциональность полностью покрывается командой rjmp. То есть, разработчикам МК не было смысла реализовывать её.

Не совсем так. "Функциональность" НЕ "покрывается полностью командой rjmp", поскольку команда относительного перехода работает в пределах +-2Кслова, но в атмеге8 имеется 4Кслова памяти, так что для перехода, скажем, из конца памяти в ее начало потребуется два rjmp, а не один.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
CD_Eater
сообщение Nov 21 2006, 18:46
Сообщение #4


Частый гость
**

Группа: Новичок
Сообщений: 173
Регистрация: 3-09-04
Из: Moscow
Пользователь №: 595



Цитата(=GM= @ Nov 21 2006, 18:04) *
команда относительного перехода работает в пределах +-2Кслова, но в атмеге8 имеется 4Кслова памяти, так что для перехода, скажем, из конца памяти в ее начало потребуется два rjmp, а не один.

Память программ организована циклически на аппаратном уровне (отбрасыванием старших бит), поэтому в любую точку программы можно прыгнуть из любой
А ещё есть флажок компилятора, который позволяет разрешить или запретить такую интерпретацию адреса (но, конечно же, не может запретить её аппаратную реализацию). Странно, что Вы не знали.

Сообщение отредактировал CD_Eater - Nov 21 2006, 18:47
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 14:33
Рейтинг@Mail.ru


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