Ёжли алгоритм и ТОЛЬКО СРАВНЕНИЕ...
Есть регистр флагов с заранее записанным числом, равным количеству пар сравниваемых регистров.
Делаем любые возможные операции сравнения из имеющегося набора команд последовательно с каждой парой.
Если имело место совпадение - декремент регистра флагов, иначе пропуск декремента.
По исчерпании сравниваемого проверяем содержимое остатка в регистре.
Если там нуль - все байты совпали.
А для сверки можно и xor помучить, главное перенос в таком случае БЕЗРАЗЛИЧЕН.
[uquote="Vlad_RK",url="/forum/viewtopic.php?p=3507273#p3507273"]P.S. Чего ты ко мне прицепился?[/uquote]
Интернет-общение обостряет восприятие текста диалогов. Психологическая особенность человека. Придавать эмоциональную окраску текстовым сообщениям. Так как мы не смотрим друг другу в глаза, и не знаем состояние оппонента, воображение дополняет сухой текст эмоциональным окрасом до максимума. То есть, так как нет точных данных, на всякий случай, текстовая информация считается угрозой. Это чистая физиология и психология, на уровне инстинктов.
Поэтому, я к тебе "не прицепился". Твой вопрос прост и примитивен. Достаточно открыть книгу. Что ты сделал, чтобы ответить на этот вопрос. Я отвечу за тебя. Ничего. Ты не захотел тратить никаких усилий и пошел на форум. А теперь я разворачиваю всю глубину того, что хотел сказать. Если ты не не приложил никаких усилий для ответа на этот вопрос, что ты будешь делать дальше, когда перед тобой встанет более сложный вопрос? Снова лапки кверху и на форум?
На форум нужно бежать, когда ты сделал все что только можно и оказался в тупике.
Моим критикам посвящается: форумы нужны. Но начинающие должны хоть что-то делать и сами. Читать книги, пробовать. РАБОТАТЬ. А не бежать при малейших трудностях на форумах. Контент форума должен быть качественным. Не примитивные вопросы, а интересные проблемы, проекты. И наполнение контента в наших руках. Иначе можно скатиться до уровня - а что делает та или иная команда?
Z_h_e писал(а):В ДШ не обозначено как устанавливается флаг Z командой сpc, а только сам факт что она влияет на Z, надо смотреть отдельный документ. Смысл в том, что если флаг Z был сброшен перед выполнением этой команды, то он останется сброшенным в любом случае.
в отдельном документе по командам AVR четко указано, как выставляется флаг Z: кроме 8 битов результата еще берется предыдущее значение флага Z.
то есть, предыдущее значение флага Z ВЛИЯЕТ на новое значение этого флага.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Starichok51 писал(а):в отдельном документе по командам AVR четко указано, как выставляется флаг Z:
Именно это я и написал, не?
Starichok51 писал(а):то есть, предыдущее значение флага Z ВЛИЯЕТ на новое значение этого флага.
Я бы по другому это сформулировал, тоже самое, но с более дружественной для понимания трактовкой. Такие команды умеют только сбрасывать флаг Z, но не устанавливать.
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Установить - это значит перевести из состояния 0 в 1.
В логическом выражении установки флага Z используется конъюнкция с текущим Z.
Если теущий Zтек=0. То чему будет равен Zнов=Zтек*(любое значение).
И по логике. Если бы команды типа CPC умели устанавливать флаг Z, как мог бы работать такой набор команд на проверку нуля?
а если Zтек = 1, то Zнов тоже будет = 1, если в регистре будет 0. то есть, флаг установится.
то есть, в командах условного перехода (например, больше или равно) при равенстве операндов флаг нуля будет УСТАНАВЛИВАТЬСЯ после каждого побайтного сравнения, то есть, получения нулевого результата...
Добавлено after 38 minutes 56 seconds:
Starichok51 писал(а):если в регистре будет 0
тут и выше я ошибочку допустил.
нужно было написать в результате сравнения, а не в регистре.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Starichok51 писал(а):а если Zтек = 1, то Zнов тоже будет = 1, если в регистре будет 0. то есть, флаг установится.
Флаг не установится, он не сбросится. В любой НТД (в частности в ДШ если угодно) установка флага означает перевод его в 1 из любого состояния (по буржуйски этот термин звучит как set).
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
с таким же успехом можно считать, что команда
срс ... заново устанавливает флаг нуля в случае равенства операндов, если флаг уже был установлен.
или заново сбрасывает флаг нуля, если флаг был сброшен, независимо от результата сравнения.
это ничуть не противоречит логике приведенной формулы.
тут дело вкуса - каждый может трактовать работу команды, как ему нравится...
тебе нравится, что она умеет только сбрасывать, а мне нравится, что она умеет и устанавливать и сбрасывать...
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Starichok51 писал(а):тут дело вкуса - каждый может трактовать работу команды, как ему нравится...
тебе нравится, что она умеет только сбрасывать, а мне нравится, что она умеет и устанавливать и сбрасывать...
Мне нравится когда используют единую общепринятую терминологию, а не придумывают свою. В противном случае тебя никто понимать не будет.
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
тогда дай точное указание на единую общепринятую терминологию, где сказано, что эта команда НЕ УМЕЕТ устанавливать флаг нуля.
лично я по формуле истинности вижу, что она УМЕЕТ это делать.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Это называется логическое выражение. Вы можете не только свою терминологию использовать, но и даже новый язык придумать со своим алфавитом, но понимать Вас никто не будет.
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.