คำสั่ง SET


      ใช้ในการเซ็ทบิตข้อมูลให้เป็นลอจิก 1

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

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

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

ลักษณะการกระทำ       b ⬅ 1

      ถ้าข้อมูลในรีจิสเตอร์ E มีค่าเป็น 0000 0000B
      เมื่อใช้คำสั่ง SET 2,E รีจิสเตอร์ E จะมีค่าเป็น 0000 0100B
      คือบิต 3 ของรีจิสเตอร์จะถูกเซ็ตเป็น 1
      หรือกรณี ใช้คำสั่ง SET 7,(IX+2)
      ถ้า IX มีค่าเป็น 2200H ตำแหน่งหน่วยความจำที่อ้างถึง คือ 2200H+1 = 2202H
      ซึ่ง ถ้าค่าเดิมมีค่าเป็น 0000 0000B
      ก็จะถูกเปลี่ยนค่าเป็น 1000 0000B
      คือจะเช็ตเฉพาะบิต 7 ของข้อมูลในหน่วยความจำแอดเดรส 2202H ให้มีค่าเป็น 1

      ในกรณีต้องการเซ็ททุกบิตให้มีค่าเป็น 1 จะใช้วิธีกำหนดค่าFF = 1111 1111H ด้วยคำสั่ง LD มากกว่าที่จะใช้คำสั่ง SET เช่น
           LD E,FFH  ; เซ็ต ให้ทุกบิตของรีจิสเตอร์ E มีค่าเป็น 1
           LD A,0FH ; เซ็ต 4 บิตล่างของรีจิสเตอร์ A มีค่าเป็น 1

ตัวอย่างรูปภาพ SET b,r โดยค่า r คือรีจิสเตอร์ใดๆ เช่น รีจิสเตอร์ C ส่วน b นั้น อาจมีค่าเท่าไหร่ก็ได้ขึ้นอยู่กับว่าเราต้องการเซทบิทใด b มีค่าตั้งแต่ 0-7

รูปแสดงการทำงาน SET