Действительно ли булева алгебра ДЕЙСТВИТЕЛЬНО необходима для программирования на ассемблере?
Мне нужно знать, потому что я нахожу все это запутанным. Я сейчас нахожусь в классе алгебры колледжа, хотя некоторая булева алгебра кажется довольно простой (коммутативность, ассоциативные свойства и т. Д., Т.е. базовая алгебра). Я читал "Искусство программирования на ассемблере", но потом я прочитал главу о булевой алгебре и разочаровался. Автор использует то, что я считаю "произвольными" символами для своих операторов, хотя я не знаю, какие операторы являются обычными. Я привык к C++!, && и || операторы для операций NOT, AND и OR соответственно. В электронной книге есть опечатки и другие вещи, которые затрудняют чтение.
Дело в том, является ли эта глава абсолютно необходимой для изучения? Есть ли какие-нибудь книги по программированию сборок x64 для начинающих? Этот компьютер имеет 64-битный процессор AMD. Я читал Программирование с нуля, но это для Linux. Я мог следовать этому, потому что его легче читать, но я попытался скомпилировать пример, но он не сработал. Даже с изменениями в коде, чтобы сделать его совместимым с Windows, не нужно играть в кости.
2 ответа
Да, это очень важно понять. Булева алгебра используется для реализации аппаратного обеспечения, а также отвечает за многие операции сборки. && - это И, || это или,! нет и т.д. Google таблицы правды для всех этих, они очень просты. Вам нужна только простая основа, чтобы понять операции так, как вы их видите.
Я бы сказал, что основы булевой алгебры необходимы, по крайней мере, для понимания каждого программиста, независимо от языка программирования.
Это дает вам возможность:
- эффективно управлять битами и битовыми полями
- оптимизировать выражения (например,
(a and b) or (c and b)
знак равно(a or c) and b
; Кстати, если вы заменитеand
с*
а такжеor
с+
, вы получите то же самое, что и в вашей обычной алгебре) - оптимизировать код
- понимать чужой код