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

 
 
> rjmp и branch is out of reach, все в пределах допустимого, а ассемблер ругается
tazik
сообщение Sep 27 2010, 06:26
Сообщение #1


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

Группа: Свой
Сообщений: 195
Регистрация: 13-05-07
Из: Норильск
Пользователь №: 27 691



Почему ассемблер ругается (branch is out of reach) на следующий код?

Код
.org 0x00
    rjmp start

.org 0x96E
start:
    nop
    nop
    rjmp PC


Смотрим хелп по rjmp:
16-bit opcode
1100 kkkk kkkk kkkk, где kkkkkkk=требуемый адрес-1


0x96E=0b1001 0110 1110 - все вполне укладывается. Более того, есть работающая программа с таким кодом.

В чем дело?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rx3apf
сообщение Sep 27 2010, 06:43
Сообщение #2


Гуру
******

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



Цитата(tazik @ Sep 27 2010, 10:26) *
Почему ассемблер ругается (branch is out of reach) на следующий код?

Смотрим хелп по rjmp:
16-bit opcode
1100 kkkk kkkk kkkk, где kkkkkkk=требуемый адрес-1

Смотрим там же - "-2K ≤ k < 2K". А 96E hex - это больше, чем 2K. Команда-то используется не только, чтобы переходить "вперед", но и "назад"...
Цитата
Более того, есть работающая программа с таким кодом.

Работающая на каком кристалле ? И для какого кристалла ругается компилятор ?
Go to the top of the page
 
+Quote Post
tazik
сообщение Sep 27 2010, 07:05
Сообщение #3


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

Группа: Свой
Сообщений: 195
Регистрация: 13-05-07
Из: Норильск
Пользователь №: 27 691



Цитата(rx3apf @ Sep 27 2010, 14:43) *
Смотрим там же - "-2K ≤ k < 2K". А 96E hex - это больше, чем 2K. Команда-то используется не только, чтобы переходить "вперед", но и "назад"...

Работающая на каком кристалле ? И для какого кристалла ругается компилятор ?


В общем-то, да, порог 2kB.
Кристалл Мега8.
Если открываю хекс в студии, то симуляция проходит. Если пишу ручками, как в примере, то ассемблер ругается при компиляции

начало hex-файла:
Код
:02 0000 02 0000 FC
:10 0000 00 6DC9 1895 1895 9CC1 1895 1895 1895 1895 4F
:10 0010 00 1895 83C1 1895 1895 1895 1895 CFC1 1895 FE


C96D - rjmp 0x96D

Прикрепленный файл  2.rar ( 4.95 килобайт ) Кол-во скачиваний: 78
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 28th June 2025 - 13:51
Рейтинг@Mail.ru


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