Осуществляет операции побитового умножения (операция И) .
|
||||||||||||||||
СИНТАКСИС
| ||||||||||||||||
AND reg,reg
AND con,reg
AND con,mem
AND mem,reg
AND reg,mem
|
||||||||||||||||
АРГУМЕНТЫ
| ||||||||||||||||
reg — регистры общего назначения
con — константное значение, адрес памяти и т.п.
mem — адрес памяти
|
||||||||||||||||
ОПИСАНИЕ
| ||||||||||||||||
Данная инструкция позволяет производить операции логического умножения пятью способами, указанными выше.
Операция логического умножения представляет собой побитовую операцию по И (конъюнкции), осуществляемой с двумя операндами A и B в качестве которых могут выступать хранящиеся значение в регистре, доступное по адресу памяти или непосредственно константным значением.
AND операнд А, операнд B
Побитовая операция по И осуществляется согласно с таблицей истиности, представленной в таблице 1, операнд B логически умножается на операнд А. Поэтому результат выполнения данной операции будет представлен в операнде B в соотвествие с синтаксисом в GAS.
В языке программирования GNU C данная oперация выполняется через оператор & между двумя переменными ( в т.ч. с членами структуры и элементами массива) или константой с одной переменной.
Таблица 1
Как видно из таблицы истинности (табл. 1), побитовая операция И даст логическую единицу только тогда, когда оба операнда A и B имеют равное ей значение.
Из следующего примера, инструкция andl обнуляет младщие 4-ре бита адреса в регистре ESP для выравнивания стека перед выделением кадра к 16-ти разрядной границе.
Другой интересный пример – использование инструкции andl при взятии остатка от деления оператором % в GNU C.
| ||||||||||||||||