Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/20: Рейтинг темы: голосов - 20, средняя оценка - 4.75
ztoysop
1

AVR умножение muls16x16_32

29.08.2011, 02:31. Показов 4091. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте,
С беззнаковым умножением многобайтовых чисел все ясно. Попытался разобраться со знаковым и никак не могу понять откуда берутся sbc после последних двух произведений зачем они там и почему.
Расскажите пожалуйста(=
Код
muls16x16_32:
clr   r2
muls   r23, r21   ; (sykned)ah * (sykned)bh
movw   r19:r18, r1:r0
mul   r22, r20   ; al * bl
movw   r17:r16, r1:r0
mulsu   r23, r20   ; (sykned)ah * bl
sbc   r19, r2
add   r17, r0
adc   r18, r1
adc   r19, r2
mulsu   r21, r22   ; (sykned)bh * al
sbc   r19, r2
add   r17, r0
adc   r18, r1
adc   r19, r2
ret
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.08.2011, 02:31
Ответы с готовыми решениями:

AVR AVRISP STK500 V3.0 USB ISP Programmer for AVR IC
Люди помогите плз. не могу разобраться. приобрел этот чудный девайс (AVR AVRISP STK500 V3.0 USB...

AVR JTAG mkI + avarice + avr-gdb + Linux
По какой то неведомой причине мне причине не могу нормально подключится к серверу avarice через...

avr-etherboot -> Ethernet bootloader for AVR & enc28j60
Всем доброго! Захотелось мне прошивать контроллер ATmega64a через Ethernet. Есть проверенная плата...

(Avr Studio + WinAvr) vs (mikroC PRO for AVR)
Сам пользуюсь (Avr Studyo + WinAvr). Ктонибудь использует mykroC PRO for AVR ? Слышал там...

Как подкрутить AVR Toolchain к AVR Studio 4.19?
Здравствуйте. Как подкрутить AVR Toolchain к AVR Studio 4.19? avr-gcc есть, а make нет. Как...

3
ztoysop
30.08.2011, 14:36 2
Никто не знает?)=
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
01.09.2011, 10:41 3
Все знают, просто объяснять долго ))

Смотри, как представлены отрицательные числа? Очень просто, дополнительным кодом. Почему дополнительным? потому что дополняет до числа 256 (для восьмибитных).
Например, возьмем
8 = 00001000b
-8 => 256 - 8 = 11111000b

Теперь обрати внимание, в наборе инструкций нет отдельно сложений знаковых и беззнаковых чисел, все происходит автоматом:

250 - 8 = 250 + (-8) = 11111010b + 11111000b = (1)11110010 = 256 + 242

получилось, как и ожидалось, 242 и единичка переноса (!)
На самом-то деле это не перенос, это происходит из-за того, что мы представляем -8 как 256-8

Распишем еще разик:

250-8 => 250 + (256-8) = (256) + 240

Так вот, чтобы учесть этот виртуальный перенос, который возникнет при следующих сложениях, его превентивно и вычитают:
Код
sbc   r19, r2  =>  r19 = r19-r2-C = r19-0-C = r19-C
(в регистре r2 ноль).
0
ztoysop
01.09.2011, 13:18 4
Спасибо большое!
Теперь понял.
01.09.2011, 13:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.09.2011, 13:18
Помогаю со студенческими работами здесь

Анализ стека AVR / AVR stack analysis
Привет! Уперся я в стек, и решил понять что почем. Нашел вот такой вот скриптик:...

AVR Atmega324PU не прошивается AVR ISP Mk2
Добрый день. На плату впаян данный микроконтроллер в корпусе tqfp. При подключении программатора...

AVR Studio 6 и AVR Toolchain вопросы!
Всем доброго времени суток. Решил я написать софтинку в новой студии от Атмела AVR Studyo 6. Все...

STM8 после AVR с AVR-GCC
Привет! В процессе знакомства с STM8 накопились мелкие вопросы, ответы на которые пока не нашел:...

Процедуры. Умножение матриц, векторов. Скалярное умножение. Надо найти ошибку
Дано 6-элементные действительные векторы и квадратные матрицы A,B,C 6-ого порядка. Найти...

Реализовать операции сложения, вычитания и умножение матриц, умножение на число
1) Создать класс прямоугольных матриц Matrix, хранящих вещественные элементы. Реализовать операции...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru