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

 
 
 
Reply to this topicStart new topic
> AVR-AS: замена сложения вычитанием, не едут лыжи :(
ARV
сообщение Sep 18 2011, 16:55
Сообщение #1


Профессионал
*****

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



емеется массив uint8_t envelope[256];

делаю обработчик прерываний на ассемблере, в котором надо взять из этого массива байт. так как команды сложения с константой не существует, я делаю так:
Код
.extern offset // это смещение, оно 16-битное, но старший байт == 0
.extern envelope

lds    YL, offset
lds    YH, offset+1
subi    YL, lo8(-envelope)
sbci    YH, hi8(-envelope)
ld    r16, Y+
в итоге получаю сообщение об ошибке:
Цитата
../isr.S:49: Error: can't resolve `0' {*UND* section} - `envelope' {*UND* section}
в чем дело? что за ерунда?


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
нечитатель
сообщение Sep 18 2011, 19:19
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 235
Регистрация: 20-11-10
Пользователь №: 61 032



Код
    subi    YL, low(65536 - envelope)
    sbci    YH, high(65536 - envelope)


О! В смысле ааа... Тыком:
Код
    subi    YL, low(- envelope)
    sbci    YH, high(- envelope)
"минус" отдельное слово, а не часть имени.

... а теперь даже и без пробела получилось. Развлечение нашёл.

У меня просто студио.

Сообщение отредактировал нечитатель - Sep 18 2011, 19:27
Go to the top of the page
 
+Quote Post
Владивольт
сообщение Sep 18 2011, 19:44
Сообщение #3


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

Группа: Участник
Сообщений: 168
Регистрация: 14-02-10
Пользователь №: 55 490



написать на C и посмотреть, что в листинге.
Вот фрагмент листинга одного из моих проектов.
Код
subi r22,lo8(-(abNum2Mask))
sbci r23,hi8(-(abNum2Mask))


--------------------
#define TRUE (4==(2*2))
Go to the top of the page
 
+Quote Post
ARV
сообщение Sep 19 2011, 04:51
Сообщение #4


Профессионал
*****

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



Цитата(Владивольт @ Sep 18 2011, 23:44) *
написать на C и посмотреть, что в листинге.
Вот фрагмент листинга одного из моих проектов.
Код
subi r22,lo8(-(abNum2Mask))
sbci r23,hi8(-(abNum2Mask))
спасибо! хоть и не понятно, отчего сработало и почему раньше не срабатывало, но сработало - и ладненько! sm.gif


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 17:49
Рейтинг@Mail.ru


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