การลงทะเบียนสถานะคืออะไร?

การลงทะเบียนสถานะ - หรือที่เรียกว่าการลงทะเบียนสถานะคำสถานะโปรแกรมและการลงทะเบียนรหัสเงื่อนไข - หมายถึงการรวมกันของบิตธงภายในโปรเซสเซอร์ รีจิสเตอร์เป็นวงจรตัวประมวลผลและคล้ายกับตำแหน่งหน่วยความจำซึ่งหมายถึงข้อมูลที่สามารถเขียนและอ่านได้ การลงทะเบียนสถานะมักจะไม่ได้มีที่อยู่เนื่องจากไมโครโปรเซสเซอร์ใช้ภายใน ในหน่วยประมวลผลกลาง (CPU) ที่เป็นแบบ 8 บิตบิตสถานะการลงทะเบียนสามารถ ตั้งค่า เท่ากับจำนวน 1 หรือ ล้าง เท่ากับจำนวน 0 โดยผลการดำเนินงานของหน่วยประมวลผลสารพัน หน่วยประมวลผลบางครั้งการตั้งค่าหรือล้างบิตตัวเอง แต่เวลาอื่น ๆ คำสั่งโปรแกรมเฉพาะชุดหรือล้างบิต

บิตการลงทะเบียนสถานะจะเรียกว่าแฟล็กหรือแฟล็กแฟล็กและถูกใช้โดยโปรแกรมเมอร์เพื่อวัตถุประสงค์ในการเขียนโปรแกรมบางอย่าง การตั้งค่าสถานะแต่ละรายการในการลงทะเบียนสถานะมีวัตถุประสงค์เฉพาะ การตั้งค่าสถานะการพกพาหากการดำเนินการก่อนหน้านี้ทำบิตที่เจ็ด - หรือการตั้งค่าลบ - ล้นมากเกินไปหรือทำให้ต่ำกว่าพกพาดำเนินการ มันตั้งค่าในระหว่างการเปลี่ยนแปลงของตรรกะการเปรียบเทียบและเลขคณิต การตั้งค่าสถานะเป็นศูนย์ถ้าผลลัพธ์การดำเนินการล่าสุดคือ 0

การตั้งค่าสถานะที่เรียกว่า "การขัดจังหวะการปิดใช้งาน" ดำเนินการโดยอนุญาตหรือไม่อนุญาตการดำเนินการขัดจังหวะซึ่งเป็นคำแนะนำที่หยุดการดำเนินการชั่วคราวเพื่อให้สามารถดำเนินการอื่นได้ชั่วคราว เมื่อตั้งค่าสถานะเฉพาะนี้การขัดจังหวะจะไม่ได้รับอนุญาตให้ทำงาน แต่เมื่อชัดเจนการขัดจังหวะจะได้รับอนุญาต แฟล็กอื่นที่เรียกว่าแฟล็กทศนิยมอนุญาตให้ตัวประมวลผลติดตามโหมดไบนารีที่สูงขึ้นเพื่อดำเนินการสมการทางคณิตศาสตร์ที่ไร้ที่ติ เมื่อตั้งค่าสถานะจะใช้โหมดไบนารีขั้นสูงนี้ บิตลงทะเบียนอื่นคือบิตแฟล็กตัวแบ่งซึ่งตั้งค่าเมื่อคำสั่ง Force Interrupt (BRK) ถูกเรียกใช้งาน

การตั้งค่าสถานะโอเวอร์โฟลว์ในระหว่างการดำเนินการทางคณิตศาสตร์หากการดำเนินการให้ผลลัพธ์ที่ไม่ถูกต้อง แฟล็กเชิงลบตั้งค่าหากผลลัพธ์ล่าสุดของการดำเนินการตั้งเป็น 1 แฟล็กสุดท้ายที่เรียกว่าบิต 5 เป็นนิรนามและตั้งค่าเสมอที่ 1 โปรแกรมเมอร์ส่วนใหญ่ไม่มีประโยชน์สำหรับบิตนี้โดยเฉพาะ

การลงทะเบียน FLAGS เป็นตัวอย่างหนึ่งของการลงทะเบียนสถานะซึ่งใช้ในหน่วยประมวลผลกลางบางหน่วยและมีสถานะปัจจุบันของโปรเซสเซอร์ มันกว้าง 16 บิตและประสบความสำเร็จโดย EFLAGS และ RFLAGS, การลงทะเบียน 32- บิตและ 64- บิตการลงทะเบียนตามลำดับ อย่างไรก็ตามการลงทะเบียน FLAGS มีแฟล็กบางตัวที่แตกต่างจากการลงทะเบียน 8 บิตดั้งเดิมรวมถึงแฟล็กพาริตี, แฟล็กเสริมและแฟล็กแทร็บ