คำสั่ง BIT


      ใช้ในการตรวจสอบบิต (Test Bit) ของข้อมูลที่กำหนด โดยค่าข้อมูลจะไม่มีการเปลี่ยนแปลง แต่จะส่งผลไปที่ แฟลกศูนย์ของรีจิสเตอร์ F

รูปแบบคำสั่ง       BIT b,S

      โดย b หมายถึง บิตของ S ที่ต้องการตรวจสอบค่า โดยจะมีค่าระหว่าง 0 ถึง 7
          S อาจจะเป็น รีจิสเตอร์(r) คือ A,B,C,D,E,H และ L
                 หรือ ข้อมูลในหน่วยความจำที่ชี้ด้วย (HL)
                 หรือ ข้อมูลในหน่วยความจำที่ชี้ดด้วย (IX + d),(IY + d)

ตัวอย่าง การเขียนคำสั่ง
      BIT 2,E      ; 0ตรวจสอบ บิต 2 ของรีจิสเตอร์ E
      BIT 0,(HL)   ; ตรวจสอบ บิต 0 ของหน่วยความจำที่ HLชี้
      RES 7,(IX+2) ; ตรวจสอบ บิต 7 ของหน่วยความจำที่ IX ชี้บวกกับ 2

ลักษณะการกระทำ
      Z flag ⬅ 1 ถ้าค่าของบิตที่ตรวจสอบมีค่าเป็น 0
      Z flag ⬅ 0 ถ้าค่าของบิตที่ตรวจสอบมีค่าเป็น 1

      คือจะตรวจสอบบิตที่ระบุ ถ้ามีค่าเป็น 0 แฟลกศูนย์ (Zero Flag) จะถูกเซ็ตเป็น 1แต่ถ้าค่าของบิตนั้นเป็น 1 ค่าของบิตนั้นเป็น 1ค่าของแฟลกศูนย์ จะถูกรีเซ็ตเป็น 0 โดยค่าข้อมูลที่ถูกตรวจสอบจะมีค่าคงเดิม เช่น ถ้าข้อมูลในรีจิสเตอร์ E มีค่าเป็น 1010 0011B เมื่อใช้คำสั่ง BIT 2,E รีจิสเตอร์ E จะมีค่าคงเดิมคือ เป็น 1010 0011Bแต่Zero Flag ในรีจิสเตอร์ F จะถูกเซ็ตเป็น 1 หรือกรณีให้ IX มีค่าเป็น 2200Hและข้อมูลในหน่วยความจำ 2202H มีค่าเป็น 1010 0111Bใช้คำสั่ง BIT 7,(IX+2) ค่าของหน่วยความจำจะไม่เปลี่ยนแปลงแต่ Zero Flag ในรีจิสเตอร์ F จะถูกรีเซ็ตเป็น 0 เนื่องจากบิต 7 ของข้อมูลในหน่วยความจำแอดเดรส 2202H ให้มีค่าเป็น 1
      เรามักใช้การตรวจสอบบิต ตรวจสอบค่าข้อมูลอินพุตที่รับเข้ามาเฉพาะที่ต้องการ เช่น ในกรณีมีสวิตช์ต่ออยู่ 4 ตัวในขา D0-D3 ถ้าต้องการตรวจสอบเฉพาะสวิตช์ที่ต่ออยู่ที่ขา D1 เราก็ใช้เพียงการรับข้อมูลเข้ามาในรีจิสเตอร์ A ด้วยคำสั่ง IN A,(PORT) แล้วตรวจสอบบิต 0 ด้วยคำสั่ง BIT 0,Aจากนั้นนำไปดำเนินการต่อโดยใช้คำสั่งที่เกี่ยวข้องกับการตรวจสอบค่าแฟลกศูนย์