Второй банк не используется, да и из первого только аккумулятор и 4 первых РОНа, остальное под ОЗУ.
Изголяжа много, очень, как раз походу - что-б менее понятно было, но мы несдаЁмся
Просто от вида XOR ов у меня случается переклин в собственной памяти.
Похоже это ограничения на нижнее значение аргумента в 2, то есть не 0 и не 1, а про то что флага Z нет это оригинально - а то я смотрел по результатам операций класса INC @R1 - то есть инкремент ячейки, но думаю... а анализирует если аккумулятор - то это результат совсем другой.
Насчет переноса - так их два... Собственно Cy - перенос из a.7 и десятичный... Вспоминать ВЛОМ ибо мне с того НИКАКОГО ИНТЕРЕСУ ни в отношении дизассемблера (мозгоразвитие) ни в отношении материальна интересу...
Просто есть команды JC/JNC и JZ/JNZ а остальные или по 1 битным входам Т0/Т1 или по битам F0/F1 , которые могут меняться только командами CLR Fx / CPL Fx
ЗЫЖ Лучше-б кто сказал, как правильно выполнять вычитание на 8035
Какая-то противоестественная структура программы - как я понимаю условные переходы за границы 256 байтных блоков невозможно, только JMP и CALL (ну или переход на следующую инструкцию). Из-за этого програмистам того времени приходилось знатно извращаться.
ЗЫЖ - Нашли в схемах блока много ЗНААТНЫХ "очепяток" но на первый взгляд совершенно неочевидных
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Так 8035 это тот-же 8048 только без набортного ПЗУ.
А касаемо конкретики - как в ассемблерных командах 8035 вычесть из аккумулятора регистр R1 с получением разности в аккумуляторе и знака любым образом. Оба числа 8 бит оба считаются положительными ?
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Это же азы двоичной (и не только) математики - работа с отрицательными числами...
приводим вычитаемое к "дополнению до 2" и далее сложение 5-3=2 равноценно 5+(-3)=2 если результат положительный оставляем без изменений, если отрицательный - при необходимости приводим к положительному числу (ибо в таком случае у нас действительно отрицательное значение к примеру 4-9=-5)
Можно в ассемблерной мнемонике. А то ну не понимать моя. ГлЮпый аднакЪ
Ознакомился с книгой - неплохо, но с нее начинать для вспоминания надо было. Уже успел с её англоязычным прототипом ознакомиться (кроме системы управления лампочками в авто, это видимо авторское достижение).
К сожалению реальных примеров математики там можно сказать и нет, а тут актуально именно математика на столь невеликой системе команд. Особенно математики быстрой с использованием таблиц. Потому-как там именно тем программа и занимается - как быстро вычисляет некие мат функции.
В принципе разбирается потихоньку - откровенных косяков почти нет, тоесть переходы со смешением на 1 можно списать на ошибку переноса таблицы программирования на документ. Только пока вопрос про одну из частей программы гле в завистмости от значения регистра (его младших 4 бит) нужно выбрать 1 из 16 переходов. Моло того что адреса указывают на пустой участой памяти в 32 байтах от искомого, так еще и идут с шагом 1, а умножить значение на 2 и использовать другую маску (и все вроде работает) как-то нету... И вставить эту команду на получится - некуда. Значит что-то не то и мне непонятно.
ЗЫЖ - не богат-ли кто хорошим качественным описанием 588ВГ6 (а то нетуть в конторской библиотеке а гугль(тьфу...прощай родимый )...яндекс ничего путного не кажет) ? ЗЫЖ2 - Эмулятор ПЗУ (8192х8 не менее, будет актуален) - если кто где видел ?
Дык.. там подобная проблема только наоборот - нет команд прямого вычитания константы. И решение зеркально. Насчет того как в ассемблерных командах представить - зависит от фантазии и настроения - вариантов есть множество и у инверсии и у сложения с 1. А мне , как уже было выше сказано вспоминать систему команд 48го ВЛООММ!!! (и так по склерозной памяти отвечаю).
В AVR есть вычитание регистров и флаг отрицательного результата. И Умножение 8х8 в серии MEGA
Что-то мне подсказывает, что есть типовое решение для данной операции. Давным давно - лет так 20 назад - была хорошая книжка у меня в руках, правда по 8051 ядру. Вот там было множество примеров именно математики, причем включая возведение в нецелую степень и тригонометрию. Именно на примерах разобранного ассемблера. Вот как звалась....
Увы не у одного вас склероз.... просто я про него уже начал забывать
Касаемо эмуляторов - сложные решения, хотя конечно не лишенные своих плюсов.
Осоновная задача проверить работу алгоритмов для переноса их в более современный кристалл. Но без реального процессора это сложно. Будет верно делаться макет с урезанной ПО для проверки отдельных блоков.
У 8035/48 флаг Су ИМЕЕТСЯ! Чего зря "бочка катить?
И самое главное - алгоритм вылизанный для одного типа/семейства МК (и для одной конкретной схемотехнической реализации) может быть абсолютно не оптимален на другом семействе из-за различий ядра и системы команд. Важен САМ АЛГОРИТМ а не его конкретная реализация. Так что НЕ НАДЕЙТЕСЬ НА ПРИМИТИВ-ПЕРЕНОС ВСЕ РАВНО ПРИДЕТСЯ ПРОГРАММУ С НУЛЯ ПИСАТЬ!
Это флаг переполнения при любой операции, а не флаг отрицательного результата, коего ни одна штатная команда не может дать. (DEC не в счет).
Перенести 1:1 на другой процессор естественно не выйдет - архитектура другая, хотя если на 8051 ядро - может и выгорело-бы, а вот поднять сам алгоритм - это и есть основная задача.
Есть признак отрицательного содержимого байта, слова (и прочей размерности) - единица в старшем ЗНАКОВОМ разряде. Но в общем-то это условность, оговоренная принятыми к применению стандартами и правилами двоичной математики. Обычно используется ВСЕГДА в комплекте с флагом Су. (А иногда и с дополнительным анализом других флагов PSW). У Z80 вроде еще был флаг N - признак того, что была выполнена операция вычитания (и то для работы с DAA). Ну и НЕ ИСКЛЮЧЕНИЕ использование самим программистом всяческих собственных приемов для конкретного случая (флаги, неявные подстановки и корректирующие операции).
Здравствуйте. Так как ЛС закрыты для всех пользователей напишу Вам тут. Можете ли Вы дзасемблировать код на intel 8051, не бесплатно. Или переделать прошивку под заказ?
"под заказ" обычно тут размещают: https://radiokot.ru/forum/viewforum.php?f=53 кто свободен/заинтересован там быстрее откликнутся. Я практическую помощ могу только в Донецке (ДНР) оказать, "за пределами" исключительно консультации в рамках сайта.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения