Bosh sahifa Wiki Logical Instruction

Logical Instruction

Logical Instruction — operand bitlari ustida AND, OR, XOR, NOT va ularga yaqin mantiqiy amallarni bajaradigan mashina buyrug‘i. Har natija biti odatda mos kirish bitlari bilan mustaqil hisoblanadi. Bu buyruqlar niqoblash, bit maydonini o‘zgartirish, bayroq tekshirish va past darajadagi ma’lumot tuzilmalarini boshqarishda ishlatiladi.

Asosiy amallar

AND faqat ikkala operandda bir bo‘lgan bitlarni saqlaydi. OR kamida bittasida bir bo‘lgan bitni o‘rnatadi. XOR bitlar farq qilganda bir beradi; bir xil niqob bilan ikki marta XOR qilish boshlang‘ich qiymatni qaytaradi. NOT bitta operandning barcha bitini teskarilaydi.

Masalan, qiymatning eng past to‘rt bitini olish uchun value AND 0x0F ishlatiladi. Belgilangan bitni yoqish uchun OR, o‘chirish uchun inkor qilingan niqob bilan AND, almashtirish uchun XOR qo‘llanadi. Bu amallar faqat operand kengligidagi bitlarga ta’sir qiladi.

Siljitish bilan aloqasi

Shift va rotate ba’zan logical instruction oilasiga kiritiladi. Logical right shift yuqori bitlarni nol bilan to‘ldiradi; arithmetic right shift signed qiymat ishorasini saqlash uchun yuqori bitni takrorlaydi. Rotate chiqib ketgan bitlarni qarama-qarshi tomonga qaytaradi. Bit maydonini ajratishda siljitish va niqoblash ko‘pincha birga ishlatiladi.

Immediate niqob buyruq formatiga sig‘masa, assembler uni bir necha buyruqda qurishi mumkin. Ayrim ISA tez-tez uchraydigan takroriy bit naqshlarini ixcham kodlaydi. Bu sintaktik qulaylik semantik mantiqiy natijani o‘zgartirmaydi.

Shart va holat

Mantiqiy buyruq natijaning nol yoki manfiy ekanini condition code’larda qayd etishi mumkin. Carry va overflow bayroqlarining xulqi ISAga bog‘liq: o‘zgarmasligi, tozalanishi yoki aniq qiymat olishi mumkin. Bayroqdan keyingi branch uchun spetsifikatsiyadagi aynan shu qoida muhim.

Test buyrug‘i AND natijasini registrga yozmasdan faqat bayroqlarni yangilashi mumkin. Bu bit mavjudligini tekshirish uchun qulay. Ba’zi arxitekturalarda u alohida mnemonic bo‘lsa-da, dekoder ichida oddiy mantiqiy mikrooperatsiyaga aylanishi mumkin.

Qo‘llanish va xavfsizlik

Ruxsatlar bit to‘plami, rang kanallari, tarmoq sarlavhalari va apparat registrlari mantiqiy buyruqlar bilan boshqariladi. Biroq bit raqami, baytlar tartibi va maydon kengligi noto‘g‘ri tanlansa, boshqa maydon tasodifan o‘zgaradi. O‘qish-o‘zgartirish-yozish ketma-ketligi ko‘p oqimda atomik bo‘lmasa, boshqa yozuvni yo‘qotishi mumkin.

XOR oddiy shifrlashning o‘zi emas. Kalit oqimi xavfsiz yaratilsa, stream cipher ichida XOR ishlatiladi, ammo takrorlanuvchi qisqa kalit bilan XOR maxfiylikni ishonchli ta’minlamaydi. Kriptografik xususiyat butun algoritm va kalit boshqaruvidan keladi.

Bit sanash va tanlash

Zamonaviy ISA mantiqiy oilani population count, count-leading-zeros, bit reverse va bit deposit/extract kabi amallar bilan kengaytirishi mumkin. Ular umumiy AND va shift ketma-ketligini bitta buyruqqa qisqartiradi. Indeks daraxti, bitmap allocator va siqilgan ma’lumot tuzilmasida bu amallar katta foyda beradi, ammo kengaytma bo‘lmagan protsessor uchun portativ dasturiy fallback kerak.

Constant-time tanlashda to‘liq bit niqobi ikki qiymatni branchsiz birlashtiradi: bir qiymat niqob bilan, ikkinchisi uning inkori bilan AND qilinib, natijalar OR qilinadi. Kompilyator buni qayta branchga aylantirmasligi va mask maxfiy shartdan to‘liq kenglikda xavfsiz hosil bo‘lishi lozim.

Logical immediate kodlanadigan niqoblar to‘plami cheklangan bo‘lishi mumkin. Assembler sig‘magan niqobni registrda quradi, shu sabab manbada bitta mnemonic ko‘ringani bilan yakuniy buyruqlar soni arxitekturaga bog‘liq.

Bog‘liq tushunchalar

bitmask, AND operation, XOR operation, bit shift, condition code, atomic bit operation