Перейти к содержанию

78K0S, Непонятки С Системой Комманд


EugenOS

Рекомендуемые сообщения

Добрый день всем.

Имею явное непонимание, или же некоторые команды имеют недокументированные побочные действия.

func1:
mov A,#03h
f1_loop:
mov L,A ;{
mov H,#0FEh
mov A,[HL+8Ch] ; [FE00+idx] = [FE7C+idx] ^ [FE8C+idx];
mov H,#0FEh
xor A,[HL+7Ch]
mov H,#0FEh
mov [HL+00h],A
mov H,#0FEh
mov A,[HL+80h] ; [FE00+idx] = [FE80+idx]
mov H,#0FEh
mov [HL+00h],A
mov H,#0FEh ; [FE00+idx] = [FE8C+idx]
mov A,[HL+8Ch]
mov H,#0FEh
mov [HL+00h],A
mov A,L ; idx--
sub A,#01h
bnc loc_A5A ;}
pop BC
ret

В комментариях написано мое понимание того, что делают команды внутри цикла. Но это явный бред. По видимому "mov [HL+00h],A" зпихивает данные не в [FE00+idx]. Кто нибудь занимался этими процессорами. Подскажите как оно на самом деле работает.

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

ну дык...а когда еще можно заняться хоббями? днем работа...

P.S. ну привычка такая...из рассчета, что днем читать будет большинство....я чаще днем просматриваю форумы...это вопросы ночью возникают...а "доброго времени суток" как-то коробит

Изменено пользователем EugenOS
Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Лично с таким процессором не знаком, но мнемоника ассемблера смахивает на процессор Z-80. Кстати у BNC должна быть метка f1_loop, а не loc_A5A, иначе цикла не получается) Из дизассемблера кодик выдернули?)

Вижу цикл, который перебирает "опорный адрес" некий в регистре HL от FE03 до FE00, и относительно этого адреса производятся некие операции между ячейками.

Только одного не могу понять:

[FE00+idx] ТРИЖДЫ перезаписывается за одну итерацию цикла, сначала значением XOR между ячейками FE7C+idx и FE8С+idx. Затем тут же [FE00+idx] перетирается значением с ячейки FE80+idx, и далее [FE00+idx] снова перетирается значением ячейки FE8C+idx.

Может в этом и есть где то ошибка. Ведь в результате прохождения цикла только результат третьей операции остается, а остальные две тупо бесполезны, ибо затерты. Ощущение, что между этими тремя операциями с ячейками не хватает чего то.

Еще странноваты постоянные возвраты регистра H на значение FE... Как будто команды косвенного чтения ячеек сбивают содержимое H.... это странно... На мой взгляд они не нужны (приблуда компилятора? или хуже того, странности архитектуры проца?)

Ну и Вы кусок некой подпрограммы привели.... Если бы Вы разьяснили что конкретно этот код делает в предметной, понятной сознанию области, и откуда этот код, можно было бы конкретнее попытаться разобраться. А пока целевой задачи не видно, то и правильность кода оценить сложно.

P.S.

mov [hl+00h],a - должно всё адекватно работать. Проблема скорее всего в том, что оно трижды вызывается затирая предыдущий результат.

Изменено пользователем tcoder
Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

смахивает на процессор Z-80.

В Z80 практикуется LD, а не MOV.

За 78K0S не скажу, но судя по интеловскому:

func1:
mov A,#03h ; А = 03
f1_loop:
mov L,A ; L = 03
mov H,#0FEh ; H = FE
mov A,[HL+8Ch] ; A = [FE8F]
mov H,#0FEh ; H = FE Нахрена опять?
xor A,[HL+7Ch] ; А = A xor [FE7F]
mov H,#0FEh ; H = FE Опять!
mov [HL+00h],A ; [FE03] = то, что получили в предпредыдущей команде
mov H,#0FEh ; H = FE О мама, снова!
mov A,[HL+80h] ; A = [FE83]
mov H,#0FEh ; H = FE Маньяки
mov [HL+00h],A ; [FE03] = то, что получили в предпредыдущей команде
mov H,#0FEh ; уже не смешно
mov A,[HL+8Ch] ; A = [FE8F]
mov H,#0FEh ; плачу
mov [HL+00h],A ; [FE03] = то, что получили в предпредыдущей команде
mov A,L ; A = L
sub A,#01h ; A = A-1
bnc loc_A5A ; куда-то ускакали
pop BC ; вытащили из стека BC
ret ; наконец-то этот бред закончился

Изменено пользователем солар

Я не раздаю удочки. Я продаю рыбу.

Ссылка на комментарий
Поделиться на другие сайты

Литиевые аккумуляторы EVE Energy и решения для управления перезаряжаемыми источниками тока (материалы вебинара)

Опубликованы материалы вебинара Компэл, посвященного литиевым аккумуляторам EVE Energy и решениям для управления перезаряжаемыми источниками тока.

На вебинаре мы представили информацию не только по линейкам аккумуляторной продукции EVE, но и по решениям для управления ею, что поможет рассмотреть эти ХИТ в качестве дополнительной альтернативы для уже выпускающихся изделий. Также рассмотрели нюансы работы с производителем и сервисы, предоставляемые Компэл по данной продукции. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

В Z80 практикуется LD, а не MOV.

LD и MOV имеют совершенно одинаковый смысл, ежу понятно. Только этот процессор судя по всему может только по 8 бит через рег А загружать, в отличии от Z80, который может сразу 16 загрузить.

Я имел ввиду состав регистров и косвенную адресацию,сходные с Z-80: тот же A на 8 бит, и те же B C D E H L, которые могут управляться отдельно и использоваться в парах BC, DE, HL при необходимости косвенной адресации на 16 бит

куда то ускакали

Это автор наредактировал, там должен быть "ускок" на метку f1_loop, тогда алгоритм похож на цикл перебирающий адреса FE03 FE00 (если не заметили - L в каждой итерации уменьшается на 1, и следом с помощью BNC происходит переход на начало цикла до тех пор, пока не произойдет переполнения, т.е. в случае 0-1=255 - цикл выйдет на конец подпрограммы, начало которой походу не показано - не вижу PUSH BC :)

А всё остальное Вы за мной повторили - трижды перезаписывается один и тот же адрес за одну итерацию, и везде натыканы H=FE. :-)

Ссылка на комментарий
Поделиться на другие сайты

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

да из дизасма...исходники на си, это кусок скомпилированного кода...

С интеловским и Z80 сам знаком, вот потому и вопрос. по логике должно было менять байтики (и оно их меняет) а по коду на асме выходит что все скидывается в ячейки FE00..FE03, причем перетирая ранее записаное...потому и возник этот вопрос. может команды еще и рег. L модифицируют? т.е. непонятки как раз там где [HL+0]

P.S. Ошибки нет. программа работает. но вот разобраться с этим куском кода на асме не выходит. т.е. понять не могу что куда заносится при модификации. в исходном коде

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

Изменено пользователем EugenOS
Ссылка на комментарий
Поделиться на другие сайты

По идее всё что он делает в итоге, это переносит кусок в три байта с FE8C+idx на FE00+idx. Если это не так, значит поведение этих инструкций отличается от того, что мы привыкли видеть на Z80 и на интелах 8086+ (Кстати, чем вам Intel8080 не аналог Z80 ?). Особенно настораживают постоянные возвраты FE в регистр H. По идее они не нужны там, но зачем-то стоят. Без описания инструкций не разобраться.

P.S. Еще как вариант - неверный дизассемблированный код. Скажем по ошибке разрабов дизассемблера (или по их выпендрежности чрезмерной :)), ну или при неверном выборе проца для дисазма по случайности. Но это всё вряд ли.

Можно попытаться посмотреть непосредственно коды. Но опять же без описания особо не разобраться...

P.P.S Действительно, датащит найти или сложно или невозможно. Есть только один подозрительный сайт, который не работает))) Секретный контроллер)

Изменено пользователем tcoder
Ссылка на комментарий
Поделиться на другие сайты

мнемоника ассемблера смахивает на процессор Z-80.
Я имел ввиду состав регистров и косвенную адресацию,сходные с Z-80

Вам надо как-то с терминами определиться, дружище. :king:

Для ТС: а попробовать даташит почитать?

Я не раздаю удочки. Я продаю рыбу.

Ссылка на комментарий
Поделиться на другие сайты

Солар, а Вы попробовали датащит сами найти? Или у Вас времени только на придирки к словам хватает? Во всяком случае из моего текста автору вполне понятно, что я имею ввиду. Может быть в терминах Вы и разбираетесь, но даже не заметили невалидной метки у инструкции BNC (по вашему мнению она просто "куда то ускакали"), хотя там очевидно, куда она должна передать управление.

Вам советую определиться с тем, помогаете ли ТС или к моим словам придираетесь:)

Ссылка на комментарий
Поделиться на другие сайты

На счет метки мой косяк. метку переименовал, а в команде перехода нет.

Описание системы комманд есть...но там ничего отличного от работы таких комманд в других процах не видно. Может быть есть какие-то отличия связанные именно со смещением 00+HL или еще чего-то...но в доступных мне документах об этом ни слова. Потому и спрашиваю...может есть кто-то, кто работал, например с uPD78F9116

P.S. Документация по NEC это вообще долгая и трудная песня...особенно по дискаунтед представителям...

P.P.S. Если у вас есть ДШ по данным прцам поделитесь пожалуйста...то что у меня есть зачитано до дыр в мониторе, но не объясняет данного феномена. Что этим хотел сказать компилятор не понятно...

Изменено пользователем EugenOS
Ссылка на комментарий
Поделиться на другие сайты

Эх, отладчик был бы. Который показывает состояние всех регистров, флагов и дамп памяти и дает возможность пошагового выполнения инструкций. Там сразу бы всё прояснилось. Вы можете показать код, из которого это скомпилировано? Может чего и прояснится.

Ссылка на комментарий
Поделиться на другие сайты

Не могу. Не имею кода. Есть описание библиотеки, с заголовками функций. Есть ТЗ на программу. И есть несколько последних рабочих версий прошивки. Во всех этот участок такой же (ну только адреса разнятся)

Софтовый отладчик SM78K0S. Скачать не могу. Посылают пешим сексуальным маршрутом.

Изменено пользователем EugenOS
Ссылка на комментарий
Поделиться на другие сайты

  • 1 год спустя...

Для информации. ИДА не корректно дизассемблирует некоторые инструкции контроллеров 78K0S.От туда и такие проблемы. вот например:

1)то что дала ИДА:

ROM:0E60 main:								 ; CODE XREF: ROM:loc_DDp
ROM:0E60				 call !hwInit
ROM:0E63				 call !swInit
ROM:0E66				 call !readState
ROM:0E69				 movw HL,#0FE0Ch
ROM:0E6C				 set1 off_0.0		 ; RESET

2) то что было в исходном коде:

; hwinit()
 0D83	 22D10D	 CALL hwinit				 ; (0x0DD1)
; swinit();
 0D86	 22560E	 CALL swinit				 ; (0x0E56)
; readEslState();
 0D89	 22F30F	 CALL readState		 ; (0x0FF3)
; uartFlags.uartWaitPilotTone = 1;
 0D8C	 FC0CFE	 MOVW HL, #uartFlags ; (0xFE0C)
 0D8F	 0A0E		 SET1 [HL].0

P.S. Взято с разных версий программы. но этот код там остался неизменным, просто адреса сместились...потому адреса в дизасме и лист файле разные.

Изменено пользователем EugenOS
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • Занятное чтиво, считай "мультиметр своими руками". Не ну а что, были же советские конструкции на кр572пв2) Прецизионные резисторы и В1-12 где-то валяются... Осталось выкрутиться с коммутацией) Чешется иногда.
    • Похоже так, не кто и не подскажет, что это за микруха... 
    • Я извиняю кто тут флудил ! ??  были удаленны другие комменты! , я не поливал не кого грязью, а если вы так считаете напишите жалобу на меня и пусть модератор мне предъявит за нарушение/ за оскорбления и флуд . И касаемо "вчера сделал" после коммента пользователя fessit вспомнил и проверил и все получилось (с ножной напутал тут диод нужен) и также комменты colorad, и Aviator88 всем спасибо. Все работает как надо чего тут выкладывать мне всего-то обычный диод и всё. А что касаемо ваших и подобных комментов это и есть флуд. Устроили охоту на инакомыслящих мол  посмел такой сякой задать вопрос  на техническом форуме о переделки платы зарядки акумов  в светодиодный драйвер какой ужас !!   Поражаюсь блин с таких придираться к словам, и при этом не зная как переделать сразу начинают парировать ошибками автора в тексте запятые, и случайно перепутанные Амперы с мА (Хотя понятно о чем идет речь, но и за это уцепились ) это любимый метод когда по делу толком  нечего сказать, а за изварат и нестандартный подход подколоть что бы ну даже не хочу писать.... А все выпадки мол эта платка не для этого.... ну что тут сказать не надо ограничивать себя мол что подумают или оно якобы не будет работать,название не то... сделал проверил работает! замечательно! да и плевать! зачем покупать, ждать если уже есть под рукой то что тебе нужно!!! и искусственно загонять себя в рамки блин отказываться использовать тпешку только потому что указанно применение для зарядки лития  инакомыслие, богохульство, бред, итд ну дело ваше я не заставляю насильно переделывать. Странно что на тех форуме это вызывает такие вопросы где казалось бы нормально: починить переделать что-то итд. Странные представление что изврат/бред, а что нет учитывая что все, и до переделки всё работало почти отлично.... с каких пор бред не понятно учитывая что все подходит, да в целом нечего дурного нет в этой доработке только польза !! И что-то тут нет подобных высказываний 2е стандарты или инквизиция проворонила  
    • На этой схеме не хватает резисторов, немного открывающих силовые транзисторы. Без них начальный самозапуск  не будет происходить. Поищи их на плате БП.  Они где-то в районе сотни кОм между базой и коллектором.  
    • Может у нас разные были, либо палёный, не будем спорить. У каждого свой вкус.    Ещё слышал, но не слушал, что на TPA3255 хорошие. Присматривал такой как-то. Вы знакомы с таким?
    • Вы самим вообще нормальный??? Под полтинник жалоб!!!!!! Вы чего? Вы говна поели? До утра оставлю сообщение, в надежде на ответ. Но по опыту - никто так и не отпишется...
    • @Vic73 типовая китайская для лент ? биполярники и второй трансформатор ? 
×
×
  • Создать...