Котятам-шестиклассникам

Флейм в чистом виде - все что угодно...
Но - в рамках закона :)
SfS
Друг Кота
Сообщения: 19339
Зарегистрирован: Пт янв 12, 2007 11:21:39
Откуда: Томск

Re: Котятам-шестиклассникам

Сообщение SfS »

>TEHb< писал(а): Пн май 04, 2026 07:34:31 Свич проверяет все варианты подряд, пока не попадётся нужный. Если их прям много, то предлагаю сделать на указателях. Вероятно, так будет быстрее работать.
Самый быстрый и правильный вариант - это таблицы.
В командах машинного кода обычно есть поле код операции.

Извлекаем его и дальше по таблице переходим на подпрограмму обработки данного кода. Никаких "IF" вообще не надо. Только маски и таблицы. Как, собственно, процессор и работает.
Аватара пользователя
Фунтик
Собутыльник Кота
Сообщения: 2660
Зарегистрирован: Пт фев 12, 2010 13:47:17

Re: Котятам-шестиклассникам

Сообщение Фунтик »

SfS писал(а): Пн май 04, 2026 09:46:27 Только маски и таблицы.
Трансыч ещё switch/case не освоил, а вы ему...
Аватара пользователя
Transformer-V
Друг Кота
Сообщения: 4091
Зарегистрирован: Пн окт 03, 2016 22:50:22
Контактная информация:

Re: Котятам-шестиклассникам

Сообщение Transformer-V »

Фунтик писал(а): Пн май 04, 2026 06:59:56 Трансыч, в почему используешь код вида
if ( Instr == 0x08 )
? Инструкций несколько, обрабатываются типовым образом в одном месте, для этого в языке есть конструкция switch/case. Заодно позволяет избавится от goto из вложенного блока. Программу легче писать, а впоследствии - читать и сопровождать. Это от незнания языка, на котором пишешь?
Фунтик, он же рапра, он же мартиан- что ты имеешь против if и goto?

switch() {case 0x00: break; default:} не подходит для данной задачи, потому что case принимает только константы, поэтому, феерически в очередной раз ты облажался. Более того, если посмотреть как реализован switch или if в ASM - практически неотличим. Обсуждать с тобою ЯП все равно что ребенка учить держать ложку.
Фунтик писал(а): Пн май 04, 2026 06:59:56 И да, разве вызов CF() после первого сложения не нужен? Там же тоже переполнение возможно. Да, тогда потеряется значение переноса, которое было перед вызовом - надо менять порядок сложения. Сначала прибавляем CF к одному операнду, перевзводим его CF(), потом прибавляем ко второму операнду, и снова перевзводим CF()... Вот тогда будет правильно и ничего не потеряется.
Очередная ахинея в стиле ОБС
Фунтик писал(а): Пн май 04, 2026 06:59:56 Не рановато за
взялся? Может сначала поучиться хоть немножко?
Хочешь проверить мои знания? Готов облажаться в очередной раз?

Даю тебе задание, язык C, главное условие задачи запрет на использование переменных(стековых, "глобальных"), ASM вставок, интринсики.

И так у тебя есть 32 битный адрес 0xABCDEF01, требуется записать в память по данному адресу 32 битное безнаковое число 0x24F28A2C.

Жду ответа, в противном случае в очередной раз обосрешься у всех на виду.
Аватара пользователя
Transformer-V
Друг Кота
Сообщения: 4091
Зарегистрирован: Пн окт 03, 2016 22:50:22
Контактная информация:

Re: Котятам-шестиклассникам

Сообщение Transformer-V »

МЕХАНИКД писал(а): Пн май 04, 2026 09:24:44 :) В Этом и был мой вопрос. Что с Чипом делать, куда вставлять чтоб играть? 85-ые годы- ползающих тараканов на экране -танчики.... шутка.
Каким чипом? Ознакомься наконец что такое виртуальная машина или байт - код машина.
SfS
Друг Кота
Сообщения: 19339
Зарегистрирован: Пт янв 12, 2007 11:21:39
Откуда: Томск

Re: Котятам-шестиклассникам

Сообщение SfS »

Каждый инструмент хорош для своего применения. )
Аватара пользователя
Transformer-V
Друг Кота
Сообщения: 4091
Зарегистрирован: Пн окт 03, 2016 22:50:22
Контактная информация:

Re: Котятам-шестиклассникам

Сообщение Transformer-V »

Время вышло. Фунтик предсказуемо обосрался.
SfS
Друг Кота
Сообщения: 19339
Зарегистрирован: Пт янв 12, 2007 11:21:39
Откуда: Томск

Re: Котятам-шестиклассникам

Сообщение SfS »

Transformer-V писал(а): Пн май 04, 2026 09:56:04 И так у тебя есть 32 битный адрес 0xABCDEF01, требуется записать в память по данному адресу 32 битное безнаковое число 0x24F28A2C.
Условие не полное. Например, если процессор не требует выравнивания - это одно. А если требует (как ARM, например) - это другое...
Аватара пользователя
Transformer-V
Друг Кота
Сообщения: 4091
Зарегистрирован: Пн окт 03, 2016 22:50:22
Контактная информация:

Re: Котятам-шестиклассникам

Сообщение Transformer-V »

Задача хорошая, в полной мере показывает опыт программиста. По всей видимости Фунтик судорожно гуглит в поисках готового кода но, ответа так и не нашел.
SfS
Друг Кота
Сообщения: 19339
Зарегистрирован: Пт янв 12, 2007 11:21:39
Откуда: Томск

Re: Котятам-шестиклассникам

Сообщение SfS »

Transformer-V писал(а): Пн май 04, 2026 10:14:53 Задача хорошая, в полной мере показывает опыт программиста. По всей видимости Фунтик судорожно гуглит в поисках готового кода но, ответа так и не нашел.
Если проц не требует выравнивания, всё просто: *((uint32_t*)(addr)) = value;
Аватара пользователя
Transformer-V
Друг Кота
Сообщения: 4091
Зарегистрирован: Пн окт 03, 2016 22:50:22
Контактная информация:

Re: Котятам-шестиклассникам

Сообщение Transformer-V »

SfS писал(а): Пн май 04, 2026 10:26:35 Если проц не требует выравнивания, всё просто: *((uint32_t*)(addr)) = value;
Молодец!
Аватара пользователя
Фунтик
Собутыльник Кота
Сообщения: 2660
Зарегистрирован: Пт фев 12, 2010 13:47:17

Re: Котятам-шестиклассникам

Сообщение Фунтик »

Transformer-V писал(а): Пн май 04, 2026 09:56:04 Фунтик, он же рапра, он же мартиан
Ошибся, Фунтик к указанным персонажам отношения не имеет.
Transformer-V писал(а): Пн май 04, 2026 09:56:04 Даю тебе задание, язык C, главное условие задачи запрет на использование переменных(стековых, "глобальных"), ASM вставок, интринсики.
себе дай.
Transformer-V писал(а): Пн май 04, 2026 09:56:04 И так у тебя есть 32 битный адрес 0xABCDEF01, требуется записать в память по данному адресу 32 битное безнаковое число 0x24F28A2C.
ты долбанутый, что ли? Прямая адресация - начало начал и основ. Хотя б с косвенной что-то придумал бы :-)
Transformer-V писал(а): Пн май 04, 2026 09:56:04 Жду ответа, в противном случае в очередной раз обосрешься у всех на виду.
В твоих терминах - ты уже обосрался. Причём как раз у всех на виду.
Transformer-V писал(а): Пн май 04, 2026 09:56:04 Очередная ахинея в стиле ОБС
Ну попробуй с установленным флагом CF вызови свой ADC с операндами, сумма которых тоже вызывает переполнение (CF устанавливает). И сравни свой результат с результатом на целевом процессоре. Будешь сильно удивлён. Без всяких стилей ОБС.
Transformer-V писал(а): Пн май 04, 2026 10:14:53 По всей видимости Фунтик судорожно гуглит
у Фунтика своих дел полно, чем общение с недоумками. Уже, исходно, со второй картинки обосравшимися (перейду на твою лексику, коль ты без неё не можешь).
Аватара пользователя
МЕХАНИКД
Друг Кота
Сообщения: 5455
Зарегистрирован: Сб ноя 05, 2022 18:28:06

Re: Котятам-шестиклассникам

Сообщение МЕХАНИКД »

Transformer-V писал(а): Пн май 04, 2026 10:01:17 Каким чипом? Ознакомься наконец что такое виртуальная машина или байт - код машина.
А для кого ты тогда всё это делаешь, чтоб самому поиграть и всё?
Я думал ты что-то для пользы других делаешь...
Как мой племянник, в какой-то фирме работает по разработке игр на заказ.... и видимо ещё чего-то.
Чем он конкретно занят не знаю, но с баблом вроде всё в норме -крутой джип, Харлей ещё чтоб по ихним "сборам" кататься...
У меня Твёрдая Тройка по русскому, но, даже я иногда, делаю ошибки.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25163
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Котятам-шестиклассникам

Сообщение КРАМ »

Transformer-V писал(а): Пн май 04, 2026 10:14:53 Задача хорошая, в полной мере показывает опыт программиста.
Ничего она не показывает. Ты просто не имеешь никакого опыта в эмбедде с контроллерами.
Предложенная тобой "задача" - это типичный код любого хедера в SPL.
ЗЫ. Впрочем, твой очень начальный уровень в программировании виден из приведенного тобой кода.
if - это детский сад в контексте задачи.
А goto - это днище... :facepalm:
Даже неопытный программист знает, что подобные задачи решаются через таблицу указателей.
Сами эмулируемые инструкции - это функции, а контекст ядра эмулируемого процессора должен быть структурой передаваемой в функцию и возвращаемую этой функцией.
Аватара пользователя
Transformer-V
Друг Кота
Сообщения: 4091
Зарегистрирован: Пн окт 03, 2016 22:50:22
Контактная информация:

Re: Котятам-шестиклассникам

Сообщение Transformer-V »

Фунтик писал(а): Пн май 04, 2026 11:21:47 Фунтика своих дел полно, чем общение с недоумками.
Обтекай функтик, твой трюк с срачем в очередной раз не удался.
КРАМ писал(а): Пн май 04, 2026 15:38:27 Ничего она не показывает.
Показывает конечно, особенно твои поза....позапрошлогодние жалобы о том как ты въежал N количество минут что делает запись в C while(*Buffer++); Тогда я еще засомневался как данный товарищ может работать ведущем инженером, не зная основ C
КРАМ писал(а): Пн май 04, 2026 15:38:27 Ты просто не имеешь никакого опыта в эмбедде с контроллерами.
Все твои контроллеры с небольшим количеством комманд я могу воспроизвести на машине X64, для меня этот игрушка и детский лепет. А теперь пораскинь своими оставшемся мозгами имеется у меня опыт написания программ MCU или таки нет.
КРАМ писал(а): Пн май 04, 2026 15:38:27 Предложенная тобой "задача" - это типичный код любого хедера в SPL.
С предложенной задачей ты не справишься даже на 1%, потому что опыта написания ПО под платформу X64, да еще и под OS у тебя нет. Для тебя это темный лес и банальная зависть к данной группе программистов.
КРАМ писал(а): Пн май 04, 2026 15:38:27 ЗЫ. Впрочем, твой очень начальный уровень в программировании виден из приведенного тобой кода.
Ничего не видно. Высокопроизводительный парсер команд я не показал.
КРАМ писал(а): Пн май 04, 2026 15:38:27 if - это детский сад в контексте задачи.
Если if для тебя детский сад, то пора тебе заново начать учиться, потому что такой феерической глупости я еще не читал.
КРАМ писал(а): Пн май 04, 2026 15:38:27 А goto - это днище... :facepalm:
Даже неопытный программист знает, что подобные задачи решаются через таблицу указателей.
goto она же JMP безусловный переход днище у тех, у кого руки из жопы, только не рассказывай что в своих днишенских 8 битных MCU ты не юзал данную команду. Для получения большой производительности данная задача не решается через "таблицу указателей".
Аватара пользователя
Transformer-V
Друг Кота
Сообщения: 4091
Зарегистрирован: Пн окт 03, 2016 22:50:22
Контактная информация:

Re: Котятам-шестиклассникам

Сообщение Transformer-V »

МЕХАНИКД писал(а): Пн май 04, 2026 12:17:01 А для кого ты тогда всё это делаешь, чтоб самому поиграть и всё?
Я думал ты что-то для пользы других делаешь...
Ты ознакомился с виртуальными машинами?
МЕХАНИКД писал(а): Пн май 04, 2026 12:17:01 Как мой племянник, в какой-то фирме работает по разработке игр на заказ.... и видимо ещё чего-то.
Чем он конкретно занят не знаю, но с баблом вроде всё в норме -крутой джип, Харлей ещё чтоб по ихним "сборам" кататься...
Твой племянник наверняка пишет код который исполняется на интерпретаторе -виртуальной машине типа платформе NETDOT, впрочем любой школьник может писать код под указанную машину. Где за тебя большую часть рутины выполняет машина.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25163
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Котятам-шестиклассникам

Сообщение КРАМ »

Transformer-V писал(а): Пн май 04, 2026 17:06:20 Показывает конечно, особенно твои поза....позапрошлогодние жалобы о том как ты въежал N количество минут что делает запись в C while(*Buffer++)

Ты меня с кем то спутал. Впрочем, я себя и не отношу к профессиональным программистам. Я вообще то радиоинженер. :tea:
Transformer-V писал(а): Пн май 04, 2026 17:06:20 Все твои контроллеры с небольшим количеством комманд я могу воспроизвести на машине X64, для меня этот игрушка и детский лепет.

Мы уже увидели КАК ты это "можешь".
Оч. смешно. :music:
Transformer-V писал(а): Пн май 04, 2026 17:06:20 С предложенной задачей ты не справишься даже на 1%, потому что опыта написания ПО под платформу X64...

Предложенная тобой "задача" не имеет прямого отношения к платформе. Это просто код на Си. На любой платформе.
Transformer-V писал(а): Пн май 04, 2026 17:06:20 Ничего не видно. Высокопроизводительный парсер команд я не показал.

А у тебя его и нет. if - это тупой перебор. Таблица указателей - это практически мгновенный переход на функцию эмулирующую инструкцию.
К тому же твои if - это гарантированный спагетти-код.
Transformer-V писал(а): Пн май 04, 2026 17:06:20 Если if для тебя детский сад, то пора тебе заново начать учиться, потому что такой феерической глупости я еще не читал.

У глупца любое адекватное решение - глупость. Так устроен этот мир.
Transformer-V писал(а): Пн май 04, 2026 17:06:20 goto она же JMP безусловный переход днище у тех, у кого руки из жопы, только не рассказывай что в своих днишенских 8 битных MCU ты не юзал данную команду. Для получения большой производительности данная задача не решается через "таблицу указателей".

JMP - это инструкция ядра, а не код на Си. Ты пишешь код на Си, а не на АСМе. Эмуляция JMP не является goto. Это присвоение одному из полей структуры (счетчику команд) значения адреса перехода.
В общем, твоя безграмотность в программировании на Си раскрылась в полном объеме. Поздравляю. :))) :))) :)))
Аватара пользователя
Transformer-V
Друг Кота
Сообщения: 4091
Зарегистрирован: Пн окт 03, 2016 22:50:22
Контактная информация:

Re: Котятам-шестиклассникам

Сообщение Transformer-V »

КРАМ писал(а): Пн май 04, 2026 17:25:45 Ты меня с кем то спутал. Впрочем, я себя и не отношу к профессиональным программистам. Я вообще то радиоинженер. :tea:
Тогда резонный вопрос что ты забыл в подтеме программирования?
КРАМ писал(а): Пн май 04, 2026 17:25:45 Мы уже увидели КАК ты это "можешь".
Оч. смешно. :music:
Не страдай гиперболизмом. Пока что это бессильное блеянье...
КРАМ писал(а): Пн май 04, 2026 17:25:45 Предложенная тобой "задача" не имеет прямого отношения к платформе. Это просто код на Си. На любой платформе.
Имеет конечно.
КРАМ писал(а): Пн май 04, 2026 17:25:45 А у тебя его и нет. if - это тупой перебор. Таблица указателей - это практически мгновенный переход на функцию эмулирующую инструкцию.
К тому же твои if - это гарантированный спегетти-код.
Шо за дурь ты опять несешь. Есть условный массив, в нем код MCU, этот массив необходимо прогнать через обработчик - парсер, никаких "мгновенных переходов через указатели" не будет. Все сведется в сравнении if, причем каждый байт массива.
КРАМ писал(а): Пн май 04, 2026 17:25:45 У глупца любое адекватное решение - глупость. Так устроен этот мир.
Мы сейчас не мир обсуждаем, а твои пробелы в ЯП C
КРАМ писал(а): Пн май 04, 2026 17:25:45 JMP - это инструкция ядра, а не код на Си. Ты пишешь код на Си, а не на АСМе. Эмуляция JMP не является goto. Это присвоение одному из полей структуры (счетчику команд) значения адреса перехода.
Феерическая дурь. Изучи как реализована goto в языке в C на платформе X64 без использования виртуальных машин потом расскажешь что увидишь. Ты еще раз доказал свои незнания

goto на платформе x86/x64 это инструкция JMP addr
КРАМ писал(а): Пн май 04, 2026 17:25:45 В общем, твоя безграмотность в программировании на Си раскрылась в полном объеме. Поздравляю. :))) :))) :)))
Годно слился наш крам.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25163
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Котятам-шестиклассникам

Сообщение КРАМ »

Transformer-V писал(а): Пн май 04, 2026 17:42:13 Тогда резонный вопрос что ты забыл в подтеме программирования?
Во первых, это никакая не "подтема программирования". Это тупо МЯУ для клоунов типа тебя и Витюши Меркатора. Один затеял, другой влез вообще не в тему.
Transformer-V писал(а): Пн май 04, 2026 17:42:13
КРАМ писал(а): Пн май 04, 2026 17:25:45 Предложенная тобой "задача" не имеет прямого отношения к платформе. Это просто код на Си. На любой платформе.
Имеет конечно.
То есть у тебя "специальный язык Си для х86"? :music:
Не путай реализацию компилятора и сам язык. "Это две большие разницы и каждая из них разная." (с)
Transformer-V писал(а): Пн май 04, 2026 17:42:13Есть условный массив, в нем код MCU, этот массив необходимо прогнать через обработчик - парсер, никаких "мгновенных переходов через указатели" не будет. Все сведется в сравнении if, причем каждый байт массива.
Вот именно такое решение и есть тупая глупость.
Исходный хекс эмулируемого процессора должен исполняться в порядке его следования. Его не нужно транслировать в код х86, иначе это будет не эмуляция.
Transformer-V писал(а): Пн май 04, 2026 17:42:13
КРАМ писал(а): Пн май 04, 2026 17:25:45 JMP - это инструкция ядра, а не код на Си. Ты пишешь код на Си, а не на АСМе. Эмуляция JMP не является goto. Это присвоение одному из полей структуры (счетчику команд) значения адреса перехода.
Изучи как реализована goto в языке в C на платформе X64
Дурачок, какая разница как реализован goto на х86? Ты пишешь код на Си, а Си как язык платформонезависим. К эмуляции JMP целевого процессора реализация goto на х86 никакого отношения не имеет от слова совсем.
Учи наконец матчасть и не смеши почтенную публику своими глупостями.
Аватара пользователя
Transformer-V
Друг Кота
Сообщения: 4091
Зарегистрирован: Пн окт 03, 2016 22:50:22
Контактная информация:

Re: Котятам-шестиклассникам

Сообщение Transformer-V »

КРАМ писал(а): Пн май 04, 2026 17:53:45 Во первых, это никакая не "подтема программирования". Это тупо МЯУ для клоунов типа тебя и Витюши Меркатора. Один затеял, другой влез вообще не в тему.
Свои разборки и недопонимание с неким Витюшей оставь при себе.
КРАМ писал(а): Пн май 04, 2026 17:53:45 То есть у тебя "специальный язык Си для х86"? :music:
Не путай реализацию компилятора и сам язык. "Это две большие разницы и каждая из них разная." (с)
Смеюсь, прочти содержимое первого моего сообщения в этой теме. Под какую платформу пишется ПО, не пытайся выкинуть платформу с целью оправдать свою дурь
КРАМ писал(а): Пн май 04, 2026 17:53:45 Вот именно такое решение и есть тупая глупость.
Исходный хекс эмулируемого процессора должен исполняться в порядке его следования. Его не нужно транслировать в код х86, иначе это будет не эмуляция.
Бггг... а кто тебе сказал что он не исполняется? Program counter изучи что такое, именно он рулит прыжками по адресам массива с кодом MCU, рулит изменяя адрес указателя массива в котором хранится код MCU.

Его реализация очень простая, (адрес) BufferCodeMcu+ProgramCounter, (данные) извлечение байта Instr=*BufferCodeMcu; (обработка) Работа с ProgramCounter и стеком если требуется переход.

КРАМ писал(а): Пн май 04, 2026 17:53:45 Дурачок, какая разница как реализован goto на х86? Ты пишешь код на Си, а Си как язык платформонезависим. К эмуляции JMP целевого процессора реализация goto на х86 никакого отношения не имеет от слова совсем.
Учи наконец матчасть и не смеши почтенную публику своими глупостями.
Гиперболоидный дурень, читай самое первое сообщение, в нем нет упоминания о платформонезависимости. Все остальное твое бляенье это очередной уход от подтемы обсуждения.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25163
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Котятам-шестиклассникам

Сообщение КРАМ »

Тяжелый клинический случай...
:facepalm:
Трансформер, иди нах. Твои тупые речи не заслуживают комментов.
Твое место исключительно в МЯУ.
Обтекай.
Ответить

Вернуться в «МЯЯЯУ!»