یکی از دستورات منطقی موجود در زابن برنامه نویسی اسمبلی دستور AND است که دستورالعمل and عمل and منطقی را روی دو عملوند خود انجام می دهد و نتیجه را در عملوند اول ذخیره می کند. فرم کلی آن به صورت زیر است:

and dest, src

طبق جدول زیر عمل and روی بیت های متناظر دو عملوند انجام می شود. هر بیت نتیجه در صورتی یک است که بیت های متناظر هر دو عملوند یک باشند در غیر اینصورت صفر می شود.

54

 

دستورالعمل and به شکل های زیر می تواند بکار برود:

and register, register
and memory, register
and register, memory
and register, immediate data
and memory, immediate data
and /AL, immediate data

دستورالعمل and روی فلگ های زیر تاثیر می گذارد:

• فلگ carry و overflow را صفر می کند.
• فلگ های zero، sign و parity با توجه به نتیجه تاثیر می پذیرند.

فلگ zero وقتی دو عملوند در هیچ مکانی بیت مشابه نداشته باشند یک می شود.

مثال

mov AX, C123h

and AX, 82F6h

25

دستورالعمل and برای محاسبه سریع باقیمانده یک عدد بر توانی از ۲ می تواند استفاده شود. برای پیدا کردن باقیمانده عملوندی بر مقدار ۲n کافیست and عملوند با مقدار ۲n-1 محاسبه شود.

مثال. دستور زیر باقیمانده بر عدد ۸ را محاسبه می کند.

and AX, 7