Skip to main content

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

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

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

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

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

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