0 / 0 / 0
Регистрация: 19.12.2012
Сообщений: 140
|
|
1 | |
Ассемблер STM825.12.2012, 04:40. Показов 55911. Ответов 87
Метки нет (Все метки)
В связи с тем что ассемблер этих контроллеров описан очень плохо, и с ошибками открываю эту тему, и сразу же имеется вопрос:
как осуществить вычитание с переносом байта(константы) из слова с помощью sub и sbc? Дело в том что пока я гружу в аккумулятор байт, т.к. sub и sbc работают только с аккумулятором, флаг переноса теряется. В результате получаю сложение слова с инвертированным байтом. Пока выкрутился так: Код
ld xh,a subw x,#$003c
0
|
25.12.2012, 04:40 | |
Ответы с готовыми решениями:
87
Ассемблер STM8 Еще один ассемблер для STM8 (ST7) Ищу людей кто может помочь протестировать ассемблер для STM8 кто сделает экспорт SDCC STM8 -> IAR STM8 ? STM8 SWIM |
0 / 0 / 0
Регистрация: 22.08.2009
Сообщений: 525
|
|
27.12.2012, 10:08 | 2 |
Сообщение от sosus
0
|
0 / 0 / 0
Регистрация: 19.12.2012
Сообщений: 140
|
|
28.12.2012, 17:19 | 3 |
<Изображение удалено> Из мануала. Флаг смотрел в дебагере, при выполнении LD он снимается, хотя в мануале про это ничего нет.
0
|
0 / 0 / 0
Регистрация: 22.08.2009
Сообщений: 525
|
|
28.12.2012, 23:40 | 4 |
[QUOTE="sosus"][QUOTE="Цитата:[/QUOTE]
Из мануала. Флаг смотрел в дебагере, при выполнении LD он снимается, хотя в мануале про это ничего нет. В руководстве видно, что инструкция LD изменяет только флаги Z и N, флаг C не меняется. Так что вопрос остается: каким образом вы увидели изменение флага C после выполнения инструкции LD?
0
|
0 / 0 / 0
Регистрация: 19.12.2012
Сообщений: 140
|
|
29.12.2012, 01:46 | 5 |
Код
ld a,xl sub a,#$3C ld xl,a ld a,xh sbc a,#0 ld xh,a
0
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
|
|
29.12.2012, 10:30 | 6 |
А как же быть с вашим постулатом, уважаемый ?
Сообщение от sosus
Дайте угадаю, предыдущие, терзаемые вами МК были исключительно AVR ? Скачайте по этой ссылке http://www.st.com/internet/som... 161709.pdf PM0044: STM8 CPU programming manual .
0
|
0 / 0 / 0
Регистрация: 19.12.2012
Сообщений: 140
|
|
29.12.2012, 14:30 | 7 |
Код
В связи с тем что ассемблер этих контроллеров описан очень плохо, и с ошибками ... PM0044 стр.61(73) Mmimo SRLW, Dessription: Shift word right arithmetic - сдвиг оказался логическим Mmimo JRF, Dessription: Nener Jump - это описание как понять можно? и в чем разница между JRT и JRA?
0
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
|
|
29.12.2012, 16:07 | 8 |
Сообщение от sosus
Сообщение от sosus
Сообщение от sosus
Другое дело - зачем их обе задокументировали...
0
|
0 / 0 / 0
Регистрация: 22.08.2009
Сообщений: 525
|
|
29.12.2012, 17:01 | 9 |
Сообщение от sosus
PM0044 стр.61(73) Mmimo SRLW, Dessription: Shift word right arithmetic - сдвиг оказался логическим Mmimo JRF, Dessription: Nener Jump - это описание как понять можно? и в чем разница между JRT и JRA? Не знаю как у вас, а у меня а руководстве черным по белому написано: Shift Right Logical Word А что касается инструкций JRT и JRA, то разницы между ними нет. Другое дело, что обычно для этих используется мнемоника JR. И тогда никаких не возникает.
0
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
|
|
29.12.2012, 17:50 | 10 |
Сообщение от Bytt
<Изображение удалено>
0
|
0 / 0 / 0
Регистрация: 22.08.2009
Сообщений: 525
|
|
29.12.2012, 17:56 | 11 |
Сообщение от dosykus_2
0
|
0 / 0 / 0
Регистрация: 19.12.2012
Сообщений: 140
|
|
30.12.2012, 01:55 | 12 |
Как и в каких случаях используется директива JRF? Эта команда для меня абсолютно новая, можете разъяснить?
0
|
0 / 0 / 0
Регистрация: 19.12.2012
Сообщений: 140
|
|
30.12.2012, 04:27 | 14 |
Спасибо, похоже это самый ленивый камень. Больше я нигде не видел комбинацию:
NOP - ниче не делать, JRF - никуда не ходить :) Всех с наступающим!!!
0
|
0 / 0 / 0
Регистрация: 19.12.2012
Сообщений: 140
|
|
01.01.2013, 00:37 | 15 |
Всех с праздником! После отладки пришло время оптимизации кода с целью уменьшения процессорного времени и объема, программа в основном работает с ОЗУ, но меня немного смущает постоянная загрузка/выгрузка в аккумулятор, и появилось желание избавиться от такого рода операций использовав указатель стека. Из мануала видно что операторы работают как с аккумулятором так и с указателем стека. Кто работал со стеком в качестве операнда, и какие могут быть грабли? Мне известно про него только то что содержимое стека не должно отличаться после входа в прерывание и до выхода из него. Буду благодарен если подкинете пару примеров.
0
|
0 / 0 / 0
Регистрация: 12.04.2010
Сообщений: 3,260
|
|
01.01.2013, 02:48 | 16 |
Если содержимое стека будет отличаться, то ничего не взорвется. Оно не должно отличаться, чтобы не сбивалась последовательность выполнения программы, и возврат всегда происходил на следующую команду после вызова процедуры. Однако, история знает примеры, когда в подпрограмме специально меняется содержимое стека, чтобы по программе ret вернуться не в место вызова подпрограммы. Но если на это решиться, то следует учитывать, что это требует особой внимательности и тщательных расчетов.
0
|
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 1,112
|
|
02.01.2013, 10:14 | 17 |
Сообщение от BykTiho
0
|
0 / 0 / 0
Регистрация: 19.12.2012
Сообщений: 140
|
|
02.01.2013, 21:17 | 18 |
Неужели использовать указатель стека для ветвлений удобно? Возможно таким образом дизассемблирование усложняли..
0
|
0 / 0 / 0
Регистрация: 28.01.2010
Сообщений: 569
|
|
02.01.2013, 21:35 | 19 |
Сообщение от OmykymForti
В последний раз встречал такое для перенаправления вектора прерывания в зависимости от обстоятельств его возникновения (это было для 51, но не столь существенно).Суть в том, что адрес перехода загонялся в переменную, а её в обработчике прерывания заталкивали в стек и делали ret. Получалось очень компактно.
0
|
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 1,112
|
|
04.01.2013, 19:55 | 20 |
Сообщение от Kotz
0
|
04.01.2013, 19:55 | |
04.01.2013, 19:55 | |
Помогаю со студенческими работами здесь
20
IAR for STM8 V2.10 Не прошивается STM8 STM8 прошивка stm8 bootloader stm8 и little-endian ШИМ STM8 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства
Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
|
Что такое NullReferenceException и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
|
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
|
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
|
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
|
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
|
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее:
На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
|
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript
В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
|
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
|
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален
В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
|
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
|
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели
В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
|