|
Ушел с форума
16379 / 7691 / 1080
Регистрация: 11.11.2010
Сообщений: 13,771
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 14.11.2013, 07:16 [ТС] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ГЛАВА 9 Булева алгебра располагает тремя основными операциями – И, ИЛИ, НЕ, которые позволяют производить сложение, вычитание, умножение, деление и сравнение символов и чисел. Любые функции, которые Вы только пожелаете реализовать, можно осуществить, комбинируя вентили названных типов. Для всех функций, реализуемых в компьютере, имеется свое схемное представление, которое вступает в действие каждый раз, когда в регистр команд попадает соответствующая команда.ЛОГИЧЕСКИЕ КОМАНДЫ (часть 1/2) Логические команды выполняют логические операции, известные вам по языкам высокого уровня – инверсию, конъюнкцию и дизъюнкцию. Логические команды реализуют поразрядные операции: i-й разряд результата зависит только от i-х разрядов операндов. Логическая операция выполняется сразу над всеми разрядами операндов одновременно, параллельно. Операндами логических команд должны быть либо байты, либо слова, либо двойные слова, либо счетверенные слова, но не то и другое одновременно (размер операндов должен обязательно совпадать!). В качестве второго операнда могут также использовать так называемую маску, записанную не в шестнадцатеричном, а в двоичном коде. Команда NOT Синтаксис команды: NOT < DEST>(Логическое отрицание = logical NOT)
Возможные варианты команды: not reg/mem Семантика команды: операция логического отрицания для операнда DEST размерностью байт, слово или двойное слово. Псевдокод: Алгоритм работы:
А вот так, если «размазать» по коду последовательности команд, можно «спрятать» команду NOT AL
(Логическое И = logical AND)
AND <DEST>,<SRC> Возможные варианты команды: and reg/mem,reg(8/16/32/64) and reg,mem(8/16/32/64) and reg/mem,imm(8/16/32) MMX pand mmx,m64/mmx SSE andps xmm,m128/xmm SSE2 andpd xmm,m128/xmm pand xmm,m128/xmm Семантика команды: операция логического умножения над битами операнда DEST размерностью байт, слово, двойное, учетверенное слово или параграф. Псевдокод: Алгоритм работы:
Команда cmp eax,0 занимает 3/5 байт и выполняется за 4 такта синхронизации, команда and eax,eax занимает 2 байта и выполняется на 1 такт быстрее. Команду AND можно использовать вместо MOV для размещения в ячейке памяти/регистре нулевого значения. В отличие от MOV логические команды могут использовать знаковое расширение числа.
(Логическое включающее ИЛИ = logical OR)
OR <DEST>,<SRC> Возможные варианты команды: or reg/mem,reg(8/16/32/64) or reg,mem(8/16/32/64) or reg/mem,imm(8/16/32) MMX por mmx,m64/mmx SSE orps xmm,m128/xmm SSE2 orpd xmm,m128/xmm por xmm,m128/xmm Семантика команды: операция логического ИЛИ над битами операнда DEST. Псевдокод: Алгоритм работы:
Команда cmp eax,0 занимает 3/5 байта и выполняется за 4 такта синхронизации, команда or eax,eax занимает 2 байта и выполняется на 1 такт быстрее.
Команда XOR Синтаксис команды:(Логическое исключающее ИЛИ = logical EXCLUSIVE OR)
XOR <DEST>,<SRC> Возможные варианты команды: xor reg/mem, reg xor reg, mem xor reg/mem, imm MMX pxor mmx,m64/mmx SSE xorps xmm,m128/xmm SSE2 xorpd xmm,m128/xmm pxor xmm,m128/xmm Семантика команды: операция логического исключающего ИЛИ над операндом DEST размерностью байт, слово или двойное слово. Алгоритм работы:
Применение: эту операцию удобно использовать для инвертирования или сравнения определенных битов операндов. Используется для простейшего шифрования и дешифровки:
Шифрование с помощью команды XOR Шифр простой замены. Возьмем символы «A», «B», «C» и выполним операцию XOR с символом «1». В зашифрованном тексте на месте символов «A», «B» и «C» будут стоять «p», «s» и «r» соответственно.
Частота распределения букв в русском языке Определить какой ключ использовался при шифровании, если вам удалось отгадать хотя бы несколько букв можно, исходя из следующего свойства операции XOR:
X xor Key = Y Например, если вы определили, что символу «A» (ASCII-код 41h) соответствует символ «p» (ASCII-код 70h), тогда «A» xor «p» = «1» (ASCII-код 31h) вернет ключ, которым текст шифровали.Y xor Key = X X xor Y = Key
(X or Y)-(X and Y) Возможные варианты команды:(X and (not Y))or((not X) and Y) (not(X or (not Y)))or(not((not X) or Y)) not((X or (not Y))and((not X) or Y)) Команда ANDN (Логическое И-НЕ (штрих Шеффера) = logical AND-NOT)
MMX pandn mmx,m64/mmx SSE andnps xmm,m128/xmm SSE2 andnpd xmm,m128/xmm pandn xmm,m128/xmm Семантика команды: операция штрих Шеффера над операндом DEST размерностью байт, слово, двойное или учетверенное слово. Алгоритм работы:
(Логическое сравнение = TEST operands)
TEST <SRC1>,<SRC2> Возможные варианты команды: test reg,reg/mem test mem,reg test reg/mem,imm Семантика команды: операция логического сравнения операнда SRC1 и SRC2 размерностью байт, слово, двойное или учетверенное слово. Аналог операции логического умножения AND, но результат умножения никуда не записывается (и поэтому команда TEST выполняется быстрее команды AND). Главное в команде – установка флагов. Алгоритм работы:
TEMP SF IF TEMP = 0 THEN ZF ELSE ZF ENDIF; PF CF OF Применение: эту команду удобно использовать для получения информации о том, являются ли заданные биты операнда SRC1 нулевыми. Для анализа результата используется флаг ZF, который равен 1, если результат логического умножения равен нулю: Пример:
[CENTER]
0
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 14.11.2013, 07:16 | |
|
Ответы с готовыми решениями:
51
Электронный пропуск Ищу электронный справочник по ассемблеру Порекомендуйте какой-нибудь учебник для FASM |
|
Новые блоги и статьи
|
|||
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть не большие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|