คำสั่ง XOR
S หมายถึง รีจิสเตอร์ 8 บิต (r), ข้อมูลขนาด 8 บิต (n) และหน่วยความจำ (HL)
การ XOR จะกระทำแบบบิตต่อบิตโดยถ้าค่าอินพุตเหมือนกันจะได้เอาท์พุตเป็น 0 ถ้าค่าอินพุตต่างกันจะได้ผลลัพธ์เป็น 1 ผลลัพธ์ของการกระทำจะเก็บไว้ในรีจิสเตอร์ A
ตัวอย่าง
LD A,47H ; A = 47H = 0100 0111B
XOR 0FH ; XOR 0FH = 0000 1111B
จะได้ผลลัพธ์ในรีจิสเตอร์ A = 0100 1000B
= 4 8 H
การกระทำคำสั่งทางลอจิก มีความพิเศษประการหนึ่งคือ จะเป็นการล้าง (Clear) ข้อมูลในแฟลก Cy ของรีจิสเตอร์ F ไปด้วยในตัว ดังนั้น ในการเขียนโปรแกรมเราจึงมักพบคำสั่งในลักษณะแปลกๆเช่น AND A หรือ OR A ซึ่งเป็นการนำข้อมูลในรีจิสเตอร์ A มา AND หรือ OR กับตัวเอง ซึ่งถ้าพิจารณาทางด้านผลลัพธ์แล้วจะไม่มีอะไรเปลี่ยนแปลง เนื่องจากการ AND หรือ OR ตัวเองของรีจิสเตอร์ A ผลลัพธ์ใน A ก็จะยังมีค่าเท่าเดิมทุกประการ
เช่น ถ้าให้ A = 1010 0111B
ND กับ 1010 0111B
ผลลัพธ์ = 1010 0111B คงเดิม
ดังนั้นจุดประสงค์ของการใช้คำสั่งดังกล่าว คือต้องการล้างข้อมูลในแฟลก Cy ให้เป็นมีค่าเป็นศูนย์ และถ้าใช้ คำสั่ง XOR A นอกจากจะเป็นการล้างข้อมูล Cy แล้ว ก็จะทำให้ค่าข้อมูลในรีจิสเตอร์ A เป็น ศูนย์ด้วย เพราะเป็นการกระทำ XOR ด้วยค่าที่ตรงกัน
เช่น ถ้าให้ A = 1010 0111B
XOR กับ 1010 0111B
ผลลัพธ์ = 0000 0000B = 00H