Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/10: Рейтинг темы: голосов - 10, средняя оценка - 4.80
singing_cat
0 / 0 / 0
Регистрация: 24.10.2014
Сообщений: 3
1

Вычитание двухбайтных чисел в AtMega8535 на ASM (AVR Studio 4)

24.10.2014, 00:54. Просмотров 2077. Ответов 7
Метки нет (Все метки)

Составить программу вычитания двухбайтных чисел. Уменьшаемое содержится в регистровой паре R3:R2, вычитаемое - R13:R12. Результат записать в пару ячеек ОЗУ с адресом 0х0081: 0х0080.
На Ассемблере. Заранее Большое спасибо за помощь.

 Комментарий модератора 
Правила форума:

4.7. Как можно более полно описывайте суть проблемы или вопроса, что было сделано для ее решения и какие результаты получены.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2014, 00:54
Ответы с готовыми решениями:

Прерывание по переполнению таймера-счетчика ATmega8535 (ASM, AVR Studio 4)
Система прерываний на примере прерывания по переполнению встроенного таймера-счётчика...

Копирование массива из ОЗУ в ATMega8535 (AVR Studio 4)
Составить программу копирования массива. Адрес массива-источника - находится в ячейке ОЗУ с адресом...

Вопрос к пишущим на asm в AVR Studio 4-5-6
Собственно хотелось бы услышать какая версия наименее глючная и удобная в этом ключе. Какие глюки...

Не происходит возврат из подпрограммы (AVR Studio 4, Asm)
Доброго времени суток. Пишу мигающий светодиод на Avr ассемблере под Atmega16, среда AVR Studio 4. ...

Инкрементация числа до переполнения на ASM в AVR Studio
1 задача. Ввести число. В цикле инкрементировать его до переполнения. Вывести в порт вывода...

7
Витальич
1274 / 1184 / 174
Регистрация: 02.12.2013
Сообщений: 4,886
24.10.2014, 07:47 2
Цитата Сообщение от singing_cat Посмотреть сообщение
Составить программу вычитания двухбайтных чисел. Уменьшаемое содержится в регистровой паре R3:R2, вычитаемое - R13:R12.
Составил
Цитата Сообщение от singing_cat Посмотреть сообщение
На Ассемблере.
На ассемблере составил
Цитата Сообщение от singing_cat Посмотреть сообщение
Заранее Большое спасибо за помощь
Да не за что.
2
ValeryS
Модератор
7483 / 5666 / 725
Регистрация: 14.02.2011
Сообщений: 19,370
Завершенные тесты: 1
24.10.2014, 08:35 3
singing_cat,
может будем сообщать что за контроллер? что за ассемблер?
0
singing_cat
0 / 0 / 0
Регистрация: 24.10.2014
Сообщений: 3
24.10.2014, 09:18  [ТС] 4
Да, забыл, контроллер AtMega8535, в AVR Studio 4.
0
Витальич
1274 / 1184 / 174
Регистрация: 02.12.2013
Сообщений: 4,886
24.10.2014, 10:19 5
Так показывайте что написали, задавайте вопросы, а так Ваша просьба звучит "сделайте за меня".
0
pyzhman
796 / 488 / 68
Регистрация: 15.05.2012
Сообщений: 2,776
24.10.2014, 22:25 6
Лучший ответ Сообщение было отмечено raxp как решение

Решение

Делаете всё как в столбик. Из младшего разряда уменьшаемого вычитаете вычитаемое. Потом из старшего разряда вычитает да еще и заём микроконтроллер за вас посчитает, вы только правильную команду ему укажите. Ну и положите всё это куда требуется.
0
Rekod
0 / 0 / 0
Регистрация: 29.02.2016
Сообщений: 1
29.02.2016, 21:02 7
Самый простой способ - преобразовать вычитание в сложение. Делается в три шага:
1. Найти дополнение вычитаемого R13:R12 до 1
2. Найти дополнение вычитаемого R13:R12 до 2
3. Сложить уменьшаемое R3:R2 и дополнение вычитаемого R13:R12 до 2

На ассемблере выглядит так:
Assembler
1
2
3
4
5
6
movw ZH:ZL, R13:R12
com ZL
com ZH
adiw ZH:ZL,1   ; дополнение шестнадцатиричного числа R13:R12 до 2
add R2,ZL
adc R3,ZH
Здесь использованы временные регистры ZH:ZL для упрощения записи.
0
Voland_
1694 / 1038 / 98
Регистрация: 04.01.2010
Сообщений: 3,520
01.03.2016, 11:15 8
Цитата Сообщение от Rekod Посмотреть сообщение
Самый простой способ
Кстати, так компилятор AVR и делает. Как вариант - можно было написать код на сях, а потом посмотреть дизассемблер
0
01.03.2016, 11:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.03.2016, 11:15

Обращение к регистрам через адреса (ASM, AVR Studio)
Здравствуйте, есть такой вопрос: к примеру у меня в SRAM хранятся реальные адреса регистров общего...

AVR Studio (ASM). Поменять местами тетрады в данных
№16 Задание делается в AVR Studio Помогите, буду очень признателен, задание сделать надо к...

ATMega16 (AVR Studio, ASM) - Вывести результат на светодиоды по схеме
Ребят, помогите, пожалуйста, с решением задачи, не получается вывести результат на светодиоды по...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru