Нормальный дизассемблер для i8035 (i8051)

Что-то потеряли? Заходите, будем искать, что ж поделать...
Wladimir_TS
Друг Кота
Сообщения: 5066
Зарегистрирован: Вс фев 15, 2009 01:04:58
Откуда: Kaluga

Re: Нормальный дизассемблер для i8035 (i8051)

Сообщение Wladimir_TS »

Второй банк не используется, да и из первого только аккумулятор и 4 первых РОНа, остальное под ОЗУ.

Изголяжа много, очень, как раз походу - что-б менее понятно было, но мы несдаЁмся :kill:

Просто от вида XOR ов у меня случается переклин в собственной памяти.

Похоже это ограничения на нижнее значение аргумента в 2, то есть не 0 и не 1, а про то что флага Z нет это оригинально - а то я смотрел по результатам операций класса INC @R1 - то есть инкремент ячейки, но думаю... а анализирует если аккумулятор - то это результат совсем другой.

А перенос откуда берется ?
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Нормальный дизассемблер для i8035 (i8051)

Сообщение BOB51 »

Собственно флага Z нет и у 51й...
8)
Насчет переноса - так их два...
Собственно Cy - перенос из a.7 и десятичный...
Вспоминать ВЛОМ ибо мне с того НИКАКОГО ИНТЕРЕСУ ни в отношении дизассемблера (мозгоразвитие) ни в отношении материальна интересу...
:cry:
Реклама
Wladimir_TS
Друг Кота
Сообщения: 5066
Зарегистрирован: Вс фев 15, 2009 01:04:58
Откуда: Kaluga

Re: Нормальный дизассемблер для i8035 (i8051)

Сообщение Wladimir_TS »

Судя по документации - только один флаг.

Просто есть команды JC/JNC и JZ/JNZ а остальные или по 1 битным входам Т0/Т1 или по битам F0/F1 , которые могут меняться только командами CLR Fx / CPL Fx


ЗЫЖ Лучше-б кто сказал, как правильно выполнять вычитание на 8035


Какая-то противоестественная структура программы - как я понимаю условные переходы за границы 256 байтных блоков невозможно, только JMP и CALL (ну или переход на следующую инструкцию). Из-за этого програмистам того времени приходилось знатно извращаться.


ЗЫЖ - Нашли в схемах блока много ЗНААТНЫХ "очепяток" но на первый взгляд совершенно неочевидных
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Нормальный дизассемблер для i8035 (i8051)

Сообщение BOB51 »

Изврат касается только MCS48 - в иных случаях размер сегмента больше.
8)
Остальное осуждать без конкретики БЕСПОЛЕЗНО.
:(
Реклама
Эиком - электронные компоненты и радиодетали
Wladimir_TS
Друг Кота
Сообщения: 5066
Зарегистрирован: Вс фев 15, 2009 01:04:58
Откуда: Kaluga

Re: Нормальный дизассемблер для i8035 (i8051)

Сообщение Wladimir_TS »

Так 8035 это тот-же 8048 только без набортного ПЗУ.

А касаемо конкретики - как в ассемблерных командах 8035 вычесть из аккумулятора регистр R1 с получением разности в аккумуляторе и знака любым образом. Оба числа 8 бит оба считаются положительными ?
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Нормальный дизассемблер для i8035 (i8051)

Сообщение BOB51 »

:shock:
Это же азы двоичной (и не только) математики - работа с отрицательными числами...
:facepalm:
приводим вычитаемое к "дополнению до 2" и далее сложение
5-3=2 равноценно 5+(-3)=2
если результат положительный оставляем без изменений, если отрицательный - при необходимости приводим к положительному числу (ибо в таком случае у нас действительно отрицательное значение к примеру 4-9=-5)
8)
Вот в сундучке КОТА весьма полное описание и системы команд и аппаратных "мелочей" для MCS48:
https://sunduk.radiokot.ru/loadfile/?load_id=1287668569
:beer:
Реклама
Wladimir_TS
Друг Кота
Сообщения: 5066
Зарегистрирован: Вс фев 15, 2009 01:04:58
Откуда: Kaluga

Re: Нормальный дизассемблер для i8035 (i8051)

Сообщение Wladimir_TS »

" вы рукой покажите..." (с) не моё

Можно в ассемблерной мнемонике. А то ну не понимать моя. ГлЮпый аднакЪ :(

Ознакомился с книгой - неплохо, но с нее начинать для вспоминания надо было. Уже успел с её англоязычным прототипом ознакомиться (кроме системы управления лампочками в авто, это видимо авторское достижение).

К сожалению реальных примеров математики там можно сказать и нет, а тут актуально именно математика на столь невеликой системе команд. Особенно математики быстрой с использованием таблиц. Потому-как там именно тем программа и занимается - как быстро вычисляет некие мат функции.

В принципе разбирается потихоньку - откровенных косяков почти нет, тоесть переходы со смешением на 1 можно списать на ошибку переноса таблицы программирования на документ. Только пока вопрос про одну из частей программы гле в завистмости от значения регистра (его младших 4 бит) нужно выбрать 1 из 16 переходов. Моло того что адреса указывают на пустой участой памяти в 32 байтах от искомого, так еще и идут с шагом 1, а умножить значение на 2 и использовать другую маску (и все вроде работает) как-то нету... И вставить эту команду на получится - некуда. Значит что-то не то и мне непонятно.


ЗЫЖ - не богат-ли кто хорошим качественным описанием 588ВГ6 (а то нетуть в конторской библиотеке а гугль(тьфу...прощай родимый :cry: )...яндекс ничего путного не кажет) ?
ЗЫЖ2 - Эмулятор ПЗУ (8192х8 не менее, будет актуален) - если кто где видел ?
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Нормальный дизассемблер для i8035 (i8051)

Сообщение BOB51 »

Вы ж писали, что с ассемблером для АВР знакомы?
:dont_know:
Дык.. там подобная проблема только наоборот - нет команд прямого вычитания константы.
И решение зеркально.
Насчет того как в ассемблерных командах представить - зависит от фантазии и настроения - вариантов есть множество и у инверсии и у сложения с 1.
А мне , как уже было выше сказано вспоминать систему команд 48го ВЛООММ!!! (и так по склерозной памяти отвечаю).
:sleep:
Другое дело mcs51, ПИКушки или АВР...
:roll:
Эмулятор ПЗУ можно и на SST39SF010 соорудить или по полной схеме самому... однако там загрузчик нужно в старой конструкции менять.
Прототип под старый вариант загрузки с компа (можно схемотехнику взять за основу, а прожку адаптировать от КОТУИНКО)
http://img.radiokot.ru/files/20529/1kke51kkpv.GIF
http://img.radiokot.ru/files/20529/1kke54yfix.GIF
Возьмите КОТУИНКО из "винной" (https://radiokot.ru/forum/viewtopic.php ... 7#p3167597) и доработайте... Загрузчик там современный, а периферия зависит от того, кто ее и сопровождающее ПО сам напишет/соберет.
:write:
Литературу/справочники ищемс в СУНДУКЕ КОТА и в этих хранилищах:
http://elektromehanika.org
http://publ.lib.ru/publib.html
:beer:
Wladimir_TS
Друг Кота
Сообщения: 5066
Зарегистрирован: Вс фев 15, 2009 01:04:58
Откуда: Kaluga

Re: Нормальный дизассемблер для i8035 (i8051)

Сообщение Wladimir_TS »

В AVR есть вычитание регистров и флаг отрицательного результата. И Умножение 8х8 в серии MEGA

Что-то мне подсказывает, что есть типовое решение для данной операции. Давным давно - лет так 20 назад - была хорошая книжка у меня в руках, правда по 8051 ядру. Вот там было множество примеров именно математики, причем включая возведение в нецелую степень и тригонометрию. Именно на примерах разобранного ассемблера. Вот как звалась....

Увы не у одного вас склероз.... просто я про него уже начал забывать :lol:


Касаемо эмуляторов - сложные решения, хотя конечно не лишенные своих плюсов.

Осоновная задача проверить работу алгоритмов для переноса их в более современный кристалл. Но без реального процессора это сложно. Будет верно делаться макет с урезанной ПО для проверки отдельных блоков.

Наверно с чем-то вроде этого https://www.qrz.ru/schemes/contribute/c ... /pzu.shtml

А уж параллельных программаторов в конторе кучи.

Ну или ОЗУ, как внешняя память более знакомой AVR с переключением коммутаторами в секцию с 8035. Буду после праздников думать.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Нормальный дизассемблер для i8035 (i8051)

Сообщение BOB51 »

У 8035/48 флаг Су ИМЕЕТСЯ!
Чего зря "бочка катить?
8)
И самое главное -
алгоритм вылизанный для одного типа/семейства МК (и для одной конкретной схемотехнической реализации) может быть абсолютно не оптимален на другом семействе из-за различий ядра и системы команд.
Важен САМ АЛГОРИТМ а не его конкретная реализация.
Так что НЕ НАДЕЙТЕСЬ НА ПРИМИТИВ-ПЕРЕНОС
ВСЕ РАВНО ПРИДЕТСЯ ПРОГРАММУ С НУЛЯ ПИСАТЬ!

:twisted:
Wladimir_TS
Друг Кота
Сообщения: 5066
Зарегистрирован: Вс фев 15, 2009 01:04:58
Откуда: Kaluga

Re: Нормальный дизассемблер для i8035 (i8051)

Сообщение Wladimir_TS »

Это флаг переполнения при любой операции, а не флаг отрицательного результата, коего ни одна штатная команда не может дать. (DEC не в счет).

Перенести 1:1 на другой процессор естественно не выйдет - архитектура другая, хотя если на 8051 ядро - может и выгорело-бы, а вот поднять сам алгоритм - это и есть основная задача.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Нормальный дизассемблер для i8035 (i8051)

Сообщение BOB51 »

"Флаг отрицательного результата"...
:shock:
Есть признак отрицательного содержимого байта, слова (и прочей размерности) - единица в старшем ЗНАКОВОМ разряде.
Но в общем-то это условность, оговоренная принятыми к применению стандартами и правилами двоичной математики.
Обычно используется ВСЕГДА в комплекте с флагом Су. (А иногда и с дополнительным анализом других флагов PSW).
У Z80 вроде еще был флаг N - признак того, что была выполнена операция вычитания (и то для работы с DAA).
Ну и НЕ ИСКЛЮЧЕНИЕ использование самим программистом всяческих собственных приемов для конкретного случая (флаги, неявные подстановки и корректирующие операции).
:dont_know:
hams
Родился
Сообщения: 4
Зарегистрирован: Ср авг 25, 2021 22:46:53

Re: Нормальный дизассемблер для i8035 (i8051)

Сообщение hams »

[uquote="BOB51",url="/forum/viewtopic.php?p=3366438#p3366438"]:dont_know:[/uquote]
Здравствуйте.
Так как ЛС закрыты для всех пользователей напишу Вам тут.
Можете ли Вы дзасемблировать код на intel 8051, не бесплатно. Или переделать прошивку под заказ?
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Нормальный дизассемблер для i8035 (i8051)

Сообщение BOB51 »

"под заказ" обычно тут размещают:
https://radiokot.ru/forum/viewforum.php?f=53
кто свободен/заинтересован там быстрее откликнутся.
Я практическую помощ могу только в Донецке (ДНР) оказать,
"за пределами" исключительно консультации в рамках сайта.
8)
Личка вполне себе работает, ежли активирована.
:dont_know:
Ответить

Вернуться в «Ищу...»