ทะเบียนอเนกประสงค์

เรียนรู้ว่ารีจิสเตอร์อเนกประสงค์ทำหน้าที่เป็น "กระดานขีดเขียน" ที่รวดเร็วเป็นพิเศษสำหรับสมองของคอมพิวเตอร์ของคุณได้อย่างไร

ทะเบียนอเนกประสงค์

รีจิสเตอร์คือกลุ่มของฟลิปเปอร์ ข้อมูลดิจิทัลขนาด 1 บิตจะถูกจัดเก็บโดยใช้ฟลิปเปอร์ การรวมฟลิปเปอร์จำนวนมากเข้าด้วยกันจะช่วยขยายความจุในการจัดเก็บข้อมูลให้สามารถเก็บข้อมูลได้จำนวนมาก เราต้องใช้รีจิสเตอร์ขนาด n บิตที่มีฟลิปเปอร์จำนวน n ตัว หากเราต้องการจัดเก็บคำขนาด n บิต

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

ทะเบียนอเนกประสงค์

การลงทะเบียนการดำเนินการ

เมื่อเราป้อนข้อมูลเข้าสู่ระบบ ข้อมูลเหล่านั้นจะถูกจัดเก็บไว้ในรีจิสเตอร์ และเมื่อระบบส่งผลลัพธ์กลับมาหลังจากประมวลผลแล้ว ผลลัพธ์เหล่านั้นก็จะถูกดึงออกมาจากรีจิสเตอร์เช่นกัน เพื่อให้ซีพียูสามารถนำไปใช้ประมวลผลข้อมูลที่ผู้ใช้ป้อนเข้ามาได้

การทำงานของรีจิสเตอร์นั้นอาศัยหลักการทำงานสามอย่างดังนี้:

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

ประเภทของทะเบียน

  • ทะเบียนสถานะและควบคุม
  • สมุดบันทึกข้อมูลอเนกประสงค์
  • ลงทะเบียนเพื่อวัตถุประสงค์พิเศษ

สถานะการลงทะเบียนและการควบคุม

รีจิสเตอร์สถานะและควบคุมจะรายงานและอนุญาตให้แก้ไขสถานะของโปรเซสเซอร์และสถานะของโปรแกรมที่กำลังทำงานอยู่

รอบการดำเนินการ

สมุดทะเบียนข้อมูลอเนกประสงค์:

รีจิสเตอร์อเนกประสงค์เป็นรีจิสเตอร์เพิ่มเติมที่มีอยู่ในซีพียูและถูกใช้งานเมื่อใดก็ตามที่ต้องการเข้าถึงข้อมูลหรือตำแหน่งหน่วยความจำ โดยส่วนใหญ่จะใช้สำหรับเก็บข้อมูลดังต่อไปนี้:

  • ตัวดำเนินการสำหรับการดำเนินการทางตรรกะและทางคณิตศาสตร์
  • ตัวดำเนินการใช้ในการคำนวณที่อยู่
  • ตัวชี้หน่วยความจำ

รีจิสเตอร์ข้อมูลอเนกประสงค์มี 3 ประเภท ได้แก่:

รีจิสเตอร์ข้อมูล: รีจิสเตอร์ข้อมูลประกอบด้วยรีจิสเตอร์ข้อมูล 32 บิตจำนวนสี่ตัว ใช้สำหรับคำนวณทางคณิตศาสตร์ ตรรกะ และการดำเนินการอื่นๆ รีจิสเตอร์ข้อมูลยังแบ่งออกเป็นสี่ประเภท:

  • AX:นี่คือรีจิสเตอร์สะสม (Accumulator Register) มี 16 บิต ซึ่งถูกแบ่งออกเป็นสองรีจิสเตอร์ 8 บิต คือ AH และ AL ทำให้สามารถประมวลผลคำสั่ง 8 บิตได้ ในไมโครโปรเซสเซอร์ 8086 จะใช้ในคำสั่งคำนวณทางคณิตศาสตร์ ตรรกะ และการส่งข้อมูล ตัวเลขตัวใดตัวหนึ่งในการดำเนินการและการหารจะต้องอยู่ในรูปแบบ AX หรือ AL
  • BX:นี่คือรีจิสเตอร์ฐาน (Base Register) มี 16 บิต และแบ่งออกเป็นสองรีจิสเตอร์ขนาด 8 บิต คือ BH และ BL รีจิสเตอร์ที่อยู่ (Address Register) คือรีจิสเตอร์ BX ซึ่งโดยปกติจะมีตัวชี้ข้อมูล (Data Pointer) สำหรับการกำหนดแอดเดรสแบบทางอ้อม โดยอ้างอิงจากรีจิสเตอร์ นี้
  • CX:นี่คือรีจิสเตอร์นับ (Counter Register) มี 16 บิต แบ่งออกเป็นสองรีจิสเตอร์ 8 บิต คือ CH และ CL ทำให้สามารถประมวลผลคำสั่ง 8 บิตได้ ทำหน้าที่เป็นตัวนับสำหรับลูป ช่วยให้การพัฒนาลูปโปรแกรมง่ายขึ้น คำสั่งเลื่อน/หมุน และการจัดการสตริง ล้วนอนุญาตให้ใช้รีจิสเตอร์นับเป็นตัวนับ ได้
  • DX:นี่คือรีจิสเตอร์ข้อมูล (Data Register) มี 16 บิต แบ่งออกเป็นสองรีจิสเตอร์ 8 บิต คือ DH และ DL ดังนั้นจึงสามารถประมวลผลคำสั่ง 8 บิตได้ ในการทำงานของ I/O รีจิสเตอร์ข้อมูลสามารถใช้เป็นหมายเลขพอร์ตได้ นอกจากนี้ยังใช้สำหรับการหารและการคูณด้วย

รีจิสเตอร์ตัวชี้: รีจิสเตอร์ตัวชี้ประกอบด้วยส่วนซ้าย 16 บิต (SP และ BP) และรีจิสเตอร์ ESP และ EBP 32 บิต

  • SP:นี่คือตัวชี้สแต็ก (stack pointer) ใช้สำหรับชี้ไปยังสแต็กของโปรแกรม ในการเข้าถึงเซ็กเมนต์ของสแต็ก จะใช้ SS เป็นตัวชี้ มีขนาด 16 บิต ระบุตำแหน่งรายการบนสุดของสแต็ก ตัวชี้สแต็กจะเป็น (FFFE)H ถ้าสแต็กว่างเปล่า เซ็กเมนต์ของสแต็กจะสัมพันธ์กับแอดเดรสออฟเซ็ตของมัน
  • BP:นี่คือตัวชี้ฐาน (base pointer) ซึ่งใช้ชี้ไปยังข้อมูลในส่วนของสแต็ก (stack segment) เราสามารถใช้ BP ในการเข้าถึงข้อมูลในส่วนอื่นๆ ได้ ต่างจาก SP BP มีขนาด 16 บิต โดยหลักๆ แล้วทำหน้าที่เข้าถึงพารามิเตอร์ที่ส่งผ่านทางสแต็ก ส่วนของสแต็กจะสัมพันธ์กับแอดเดรสออฟเซ็ตของมัน

รีจิสเตอร์ดัชนี: 16 บิตขวาสุดของรีจิสเตอร์ดัชนี ESI และ EDI ขนาด 32 บิต SI และ DI บางครั้งใช้สำหรับการบวก บางครั้งสำหรับการลบ รวมถึงการกำหนดแอดเดรสแบบดัชนีด้วย

  • SI:รีจิสเตอร์ดัชนีแหล่งที่มานี้ใช้สำหรับระบุที่อยู่หน่วยความจำภายในเซ็กเมนต์ข้อมูลที่ DS กำลังเข้าถึง ดังนั้นจึงง่ายต่อการเข้าถึงตำแหน่งหน่วยความจำที่ต่อเนื่องกันโดยการเพิ่มค่าใน SI มีขนาด 16 บิต และมีค่าออฟเซ็ ต
  • DI:หน้าที่ของรีจิสเตอร์แสดงเจตนา (Intent Register) นี้คล้ายกับ SI การดำเนินการแบบลูกโซ่ (Chain Operations) เป็นกลุ่มย่อยของคำสั่งที่ใช้ DI ในการเข้าถึงที่อยู่หน่วยความจำที่ระบุโดย ES โดยทั่วไปจะใช้เป็นตัวบ่งชี้เจตนาสำหรับการดำเนินการแบบลูกโซ่

การลงทะเบียนเพื่อวัตถุประสงค์พิเศษ:

ในการจัดเก็บข้อมูลสถานะของเครื่องและเปลี่ยนแปลงการกำหนดค่าสถานะ จะใช้รีจิสเตอร์เฉพาะกิจ กล่าวอีกนัยหนึ่งคือ CPU มีรีจิสเตอร์จำนวนหนึ่งที่ใช้ในการประมวลผลคำสั่ง ซึ่งรีจิสเตอร์เหล่านี้เรียกว่ารีจิสเตอร์เฉพาะกิจ มีรีจิสเตอร์เฉพาะกิจแปดประเภท ได้แก่ cs, ds, ss, es, fs และ gs ซึ่งจัดอยู่ในกลุ่มรีจิสเตอร์เซ็กเมนต์ รีจิสเตอร์เหล่านี้มีตัวเลือกเซ็กเมนต์ได้มากถึงหกตัว

  • CS (Code Segment Register):รีจิสเตอร์ 16 บิตที่เรียกว่า Code Segment (CS) จะเก็บที่อยู่ของเซ็กเมนต์ขนาด 64 KB พร้อมกับคำสั่งของ CPU การเข้าถึงคำสั่งทั้งหมดที่อ้างอิงโดยรีจิสเตอร์ตัวชี้คำสั่ง (IP) จะดำเนินการโดย CPU โดยใช้ CS Segment รีจิสเตอร์ CS ไม่สามารถเปลี่ยนแปลงได้โดยตรง เมื่อใช้คำสั่งกระโดดระยะไกล (Remote Jump), การเรียกระยะไกล (Remote Call) และการคืนค่าระยะไกล (Remote Return) รีจิสเตอร์ CS จะได้รับการอัปเด ต
  • DS (Data Segment Register):ส่วนข้อมูลโปรแกรมขนาด 64KB จะถูกประมวลผลโดยใช้รีจิสเตอร์ 16 บิตที่เรียกว่าส่วนข้อมูล โดยค่าเริ่มต้น โปรเซสเซอร์จะเข้าใจว่าส่วนข้อมูลนี้มีข้อมูลทั้งหมดที่อ้างอิงโดยรีจิสเตอร์ทั่วไป (AX, BX, CX และ DX) และรีจิสเตอร์ดัชนี (SI, DI) คำสั่ง POP และ LDS สามารถใช้เพื่อแก้ไขรีจิสเตอร์ DS ได้โดยตรง
  • SS (Stack Segment Register):รีจิสเตอร์ 16 บิตที่เรียกว่ารีจิสเตอร์เซ็กเมนต์สแต็กจะเก็บที่อยู่ของเซ็กเมนต์ขนาด 64KB ในสแต็กซอฟต์แวร์ โดยค่าเริ่มต้น CPU จะเข้าใจว่ารีจิสเตอร์เซ็กเมนต์สแต็กมีข้อมูลทั้งหมดที่อ้างอิงโดยรีจิสเตอร์พอยเตอร์สแต็ก (SP) และรีจิสเตอร์พอยเตอร์ฐาน (BP) คำ
  • ES (Complementary Segment Register):รีจิสเตอร์ 16 บิตที่เรียกว่าเซกเมนต์เสริมนี้เก็บที่อยู่ของเซกเมนต์ขนาด 64KB ซึ่งโดยทั่วไปจะบรรจุข้อมูลโปรแกรม ในคำสั่งการจัดการสตริง CPU จะถือว่ารีจิสเตอร์ DI อ้างอิงถึงเซกเมนต์ ES โดยค่าเริ่มต้น คำสั่ง POP และ LES สามารถใช้เพื่ออัปเด ตรี
  • FS (File Segment Register):รีจิสเตอร์ FS ไม่มีวัตถุประสงค์ที่กำหนดไว้ล่วงหน้าโดย CPU แต่ระบบปฏิบัติการที่ใช้งานอยู่จะเป็นผู้กำหนดวัตถุประสงค์ให้ ในกระบวนการของ Windows FS ใช้เพื่อชี้ไปยังบล็อกข้อมูลสตรีม (TIBs )
  • GS (Graphics Segment Register):รีจิสเตอร์ GS ใช้ใน Windows 64 บิตเพื่อชี้ไปยังโครงสร้างที่กำหนดโดยระบบปฏิบัติการ โดยทั่วไปแล้ว เคอร์เนลของระบบปฏิบัติการจะใช้ GS เพื่อเข้าถึงหน่วยความจำที่สงวนไว้สำหรับเธรด Windows ใช้รีจิสเตอร์ GS เพื่อควบคุมหน่วยความจำที่สงวนไว้สำหรับเธรด ในการเข้าถึงหน่วยความจำที่สงวนไว้สำหรับ CPU เคอร์เนลของ Linux จะใช้ GS ตัวชี้ไปยังหน่วยความจำเฉพาะเธรด หรือ TLS มักถูกใช้เป็น GS
  • IP (Instruction Pointer Register):รีจิสเตอร์ CS และ IP ถูกใช้โดย 8086 เพื่อเข้าถึงคำสั่งต่างๆ หมายเลขเซ็กเมนต์ของคำสั่งถัดไปจะถูกเก็บไว้ในรีจิสเตอร์ CS ในขณะที่ค่าออฟเซ็ตจะถูกเก็บไว้ในรีจิสเตอร์ IP ทุกครั้งที่มีการประมวลผลคำสั่ง IP จะถูกแก้ไขให้ชี้ไปยังคำสั่งถัดไป IP ไม่สามารถแก้ไขได้โดยตรงจากคำสั่ง ซึ่งแตกต่างจากรีจิสเตอร์อื่นๆ คำสั่งอาจไม่มี IP เป็นตัวถูกดำเนินการ ก็ได้
  • รีจิสเตอร์แฟล็ก:รีจิสเตอร์สถานะสำหรับซีพียู x86 จะเก็บสถานะปัจจุบันของซีพียู และเรียกว่ารีจิสเตอร์แฟล็ก ขนาดและความสำคัญของบิตแฟล็กจะแตกต่างกันไปตามสถาปัตยกรรม โดยทั่วไปแล้วจะรวมข้อมูลเกี่ยวกับข้อจำกัดในการทำงานปัจจุบันของซีพียู รวมถึงผลลัพธ์ของการคำนวณทางคณิตศาสตร์ ข้อจำกัดบางอย่างอาจห้ามการทำงานของคำสั่ง "พิเศษ" บางประเภท และป้องกันการเรียกใช้งานอินเตอร์รัปต์บางอย่าง แฟล็กสถานะอื่นๆ อาจแทนที่การแมปหน่วยความจำและระบุการตอบสนองที่ซีพียูจะมีในกรณีที่เกิดการโอเวอร์โหลดทางคณิตศาสตร์

บทความที่เกี่ยวข้อง

ทะเบียนอเนกประสงค์

เรียนรู้ว่ารีจิสเตอร์อเนกประสงค์ทำหน้าที่เป็น "กระดานขีดเขียน" ที่รวดเร็วเป็นพิเศษสำหรับสมองของคอมพิวเตอร์ของคุณได้อย่างไร

นักเขียนบทความ
by 
นักเขียนบทความ
ทะเบียนอเนกประสงค์

ทะเบียนอเนกประสงค์

เรียนรู้ว่ารีจิสเตอร์อเนกประสงค์ทำหน้าที่เป็น "กระดานขีดเขียน" ที่รวดเร็วเป็นพิเศษสำหรับสมองของคอมพิวเตอร์ของคุณได้อย่างไร

รีจิสเตอร์คือกลุ่มของฟลิปเปอร์ ข้อมูลดิจิทัลขนาด 1 บิตจะถูกจัดเก็บโดยใช้ฟลิปเปอร์ การรวมฟลิปเปอร์จำนวนมากเข้าด้วยกันจะช่วยขยายความจุในการจัดเก็บข้อมูลให้สามารถเก็บข้อมูลได้จำนวนมาก เราต้องใช้รีจิสเตอร์ขนาด n บิตที่มีฟลิปเปอร์จำนวน n ตัว หากเราต้องการจัดเก็บคำขนาด n บิต

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

ทะเบียนอเนกประสงค์

การลงทะเบียนการดำเนินการ

เมื่อเราป้อนข้อมูลเข้าสู่ระบบ ข้อมูลเหล่านั้นจะถูกจัดเก็บไว้ในรีจิสเตอร์ และเมื่อระบบส่งผลลัพธ์กลับมาหลังจากประมวลผลแล้ว ผลลัพธ์เหล่านั้นก็จะถูกดึงออกมาจากรีจิสเตอร์เช่นกัน เพื่อให้ซีพียูสามารถนำไปใช้ประมวลผลข้อมูลที่ผู้ใช้ป้อนเข้ามาได้

การทำงานของรีจิสเตอร์นั้นอาศัยหลักการทำงานสามอย่างดังนี้:

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

ประเภทของทะเบียน

  • ทะเบียนสถานะและควบคุม
  • สมุดบันทึกข้อมูลอเนกประสงค์
  • ลงทะเบียนเพื่อวัตถุประสงค์พิเศษ

สถานะการลงทะเบียนและการควบคุม

รีจิสเตอร์สถานะและควบคุมจะรายงานและอนุญาตให้แก้ไขสถานะของโปรเซสเซอร์และสถานะของโปรแกรมที่กำลังทำงานอยู่

รอบการดำเนินการ

สมุดทะเบียนข้อมูลอเนกประสงค์:

รีจิสเตอร์อเนกประสงค์เป็นรีจิสเตอร์เพิ่มเติมที่มีอยู่ในซีพียูและถูกใช้งานเมื่อใดก็ตามที่ต้องการเข้าถึงข้อมูลหรือตำแหน่งหน่วยความจำ โดยส่วนใหญ่จะใช้สำหรับเก็บข้อมูลดังต่อไปนี้:

  • ตัวดำเนินการสำหรับการดำเนินการทางตรรกะและทางคณิตศาสตร์
  • ตัวดำเนินการใช้ในการคำนวณที่อยู่
  • ตัวชี้หน่วยความจำ

รีจิสเตอร์ข้อมูลอเนกประสงค์มี 3 ประเภท ได้แก่:

รีจิสเตอร์ข้อมูล: รีจิสเตอร์ข้อมูลประกอบด้วยรีจิสเตอร์ข้อมูล 32 บิตจำนวนสี่ตัว ใช้สำหรับคำนวณทางคณิตศาสตร์ ตรรกะ และการดำเนินการอื่นๆ รีจิสเตอร์ข้อมูลยังแบ่งออกเป็นสี่ประเภท:

  • AX:นี่คือรีจิสเตอร์สะสม (Accumulator Register) มี 16 บิต ซึ่งถูกแบ่งออกเป็นสองรีจิสเตอร์ 8 บิต คือ AH และ AL ทำให้สามารถประมวลผลคำสั่ง 8 บิตได้ ในไมโครโปรเซสเซอร์ 8086 จะใช้ในคำสั่งคำนวณทางคณิตศาสตร์ ตรรกะ และการส่งข้อมูล ตัวเลขตัวใดตัวหนึ่งในการดำเนินการและการหารจะต้องอยู่ในรูปแบบ AX หรือ AL
  • BX:นี่คือรีจิสเตอร์ฐาน (Base Register) มี 16 บิต และแบ่งออกเป็นสองรีจิสเตอร์ขนาด 8 บิต คือ BH และ BL รีจิสเตอร์ที่อยู่ (Address Register) คือรีจิสเตอร์ BX ซึ่งโดยปกติจะมีตัวชี้ข้อมูล (Data Pointer) สำหรับการกำหนดแอดเดรสแบบทางอ้อม โดยอ้างอิงจากรีจิสเตอร์ นี้
  • CX:นี่คือรีจิสเตอร์นับ (Counter Register) มี 16 บิต แบ่งออกเป็นสองรีจิสเตอร์ 8 บิต คือ CH และ CL ทำให้สามารถประมวลผลคำสั่ง 8 บิตได้ ทำหน้าที่เป็นตัวนับสำหรับลูป ช่วยให้การพัฒนาลูปโปรแกรมง่ายขึ้น คำสั่งเลื่อน/หมุน และการจัดการสตริง ล้วนอนุญาตให้ใช้รีจิสเตอร์นับเป็นตัวนับ ได้
  • DX:นี่คือรีจิสเตอร์ข้อมูล (Data Register) มี 16 บิต แบ่งออกเป็นสองรีจิสเตอร์ 8 บิต คือ DH และ DL ดังนั้นจึงสามารถประมวลผลคำสั่ง 8 บิตได้ ในการทำงานของ I/O รีจิสเตอร์ข้อมูลสามารถใช้เป็นหมายเลขพอร์ตได้ นอกจากนี้ยังใช้สำหรับการหารและการคูณด้วย

รีจิสเตอร์ตัวชี้: รีจิสเตอร์ตัวชี้ประกอบด้วยส่วนซ้าย 16 บิต (SP และ BP) และรีจิสเตอร์ ESP และ EBP 32 บิต

  • SP:นี่คือตัวชี้สแต็ก (stack pointer) ใช้สำหรับชี้ไปยังสแต็กของโปรแกรม ในการเข้าถึงเซ็กเมนต์ของสแต็ก จะใช้ SS เป็นตัวชี้ มีขนาด 16 บิต ระบุตำแหน่งรายการบนสุดของสแต็ก ตัวชี้สแต็กจะเป็น (FFFE)H ถ้าสแต็กว่างเปล่า เซ็กเมนต์ของสแต็กจะสัมพันธ์กับแอดเดรสออฟเซ็ตของมัน
  • BP:นี่คือตัวชี้ฐาน (base pointer) ซึ่งใช้ชี้ไปยังข้อมูลในส่วนของสแต็ก (stack segment) เราสามารถใช้ BP ในการเข้าถึงข้อมูลในส่วนอื่นๆ ได้ ต่างจาก SP BP มีขนาด 16 บิต โดยหลักๆ แล้วทำหน้าที่เข้าถึงพารามิเตอร์ที่ส่งผ่านทางสแต็ก ส่วนของสแต็กจะสัมพันธ์กับแอดเดรสออฟเซ็ตของมัน

รีจิสเตอร์ดัชนี: 16 บิตขวาสุดของรีจิสเตอร์ดัชนี ESI และ EDI ขนาด 32 บิต SI และ DI บางครั้งใช้สำหรับการบวก บางครั้งสำหรับการลบ รวมถึงการกำหนดแอดเดรสแบบดัชนีด้วย

  • SI:รีจิสเตอร์ดัชนีแหล่งที่มานี้ใช้สำหรับระบุที่อยู่หน่วยความจำภายในเซ็กเมนต์ข้อมูลที่ DS กำลังเข้าถึง ดังนั้นจึงง่ายต่อการเข้าถึงตำแหน่งหน่วยความจำที่ต่อเนื่องกันโดยการเพิ่มค่าใน SI มีขนาด 16 บิต และมีค่าออฟเซ็ ต
  • DI:หน้าที่ของรีจิสเตอร์แสดงเจตนา (Intent Register) นี้คล้ายกับ SI การดำเนินการแบบลูกโซ่ (Chain Operations) เป็นกลุ่มย่อยของคำสั่งที่ใช้ DI ในการเข้าถึงที่อยู่หน่วยความจำที่ระบุโดย ES โดยทั่วไปจะใช้เป็นตัวบ่งชี้เจตนาสำหรับการดำเนินการแบบลูกโซ่

การลงทะเบียนเพื่อวัตถุประสงค์พิเศษ:

ในการจัดเก็บข้อมูลสถานะของเครื่องและเปลี่ยนแปลงการกำหนดค่าสถานะ จะใช้รีจิสเตอร์เฉพาะกิจ กล่าวอีกนัยหนึ่งคือ CPU มีรีจิสเตอร์จำนวนหนึ่งที่ใช้ในการประมวลผลคำสั่ง ซึ่งรีจิสเตอร์เหล่านี้เรียกว่ารีจิสเตอร์เฉพาะกิจ มีรีจิสเตอร์เฉพาะกิจแปดประเภท ได้แก่ cs, ds, ss, es, fs และ gs ซึ่งจัดอยู่ในกลุ่มรีจิสเตอร์เซ็กเมนต์ รีจิสเตอร์เหล่านี้มีตัวเลือกเซ็กเมนต์ได้มากถึงหกตัว

  • CS (Code Segment Register):รีจิสเตอร์ 16 บิตที่เรียกว่า Code Segment (CS) จะเก็บที่อยู่ของเซ็กเมนต์ขนาด 64 KB พร้อมกับคำสั่งของ CPU การเข้าถึงคำสั่งทั้งหมดที่อ้างอิงโดยรีจิสเตอร์ตัวชี้คำสั่ง (IP) จะดำเนินการโดย CPU โดยใช้ CS Segment รีจิสเตอร์ CS ไม่สามารถเปลี่ยนแปลงได้โดยตรง เมื่อใช้คำสั่งกระโดดระยะไกล (Remote Jump), การเรียกระยะไกล (Remote Call) และการคืนค่าระยะไกล (Remote Return) รีจิสเตอร์ CS จะได้รับการอัปเด ต
  • DS (Data Segment Register):ส่วนข้อมูลโปรแกรมขนาด 64KB จะถูกประมวลผลโดยใช้รีจิสเตอร์ 16 บิตที่เรียกว่าส่วนข้อมูล โดยค่าเริ่มต้น โปรเซสเซอร์จะเข้าใจว่าส่วนข้อมูลนี้มีข้อมูลทั้งหมดที่อ้างอิงโดยรีจิสเตอร์ทั่วไป (AX, BX, CX และ DX) และรีจิสเตอร์ดัชนี (SI, DI) คำสั่ง POP และ LDS สามารถใช้เพื่อแก้ไขรีจิสเตอร์ DS ได้โดยตรง
  • SS (Stack Segment Register):รีจิสเตอร์ 16 บิตที่เรียกว่ารีจิสเตอร์เซ็กเมนต์สแต็กจะเก็บที่อยู่ของเซ็กเมนต์ขนาด 64KB ในสแต็กซอฟต์แวร์ โดยค่าเริ่มต้น CPU จะเข้าใจว่ารีจิสเตอร์เซ็กเมนต์สแต็กมีข้อมูลทั้งหมดที่อ้างอิงโดยรีจิสเตอร์พอยเตอร์สแต็ก (SP) และรีจิสเตอร์พอยเตอร์ฐาน (BP) คำ
  • ES (Complementary Segment Register):รีจิสเตอร์ 16 บิตที่เรียกว่าเซกเมนต์เสริมนี้เก็บที่อยู่ของเซกเมนต์ขนาด 64KB ซึ่งโดยทั่วไปจะบรรจุข้อมูลโปรแกรม ในคำสั่งการจัดการสตริง CPU จะถือว่ารีจิสเตอร์ DI อ้างอิงถึงเซกเมนต์ ES โดยค่าเริ่มต้น คำสั่ง POP และ LES สามารถใช้เพื่ออัปเด ตรี
  • FS (File Segment Register):รีจิสเตอร์ FS ไม่มีวัตถุประสงค์ที่กำหนดไว้ล่วงหน้าโดย CPU แต่ระบบปฏิบัติการที่ใช้งานอยู่จะเป็นผู้กำหนดวัตถุประสงค์ให้ ในกระบวนการของ Windows FS ใช้เพื่อชี้ไปยังบล็อกข้อมูลสตรีม (TIBs )
  • GS (Graphics Segment Register):รีจิสเตอร์ GS ใช้ใน Windows 64 บิตเพื่อชี้ไปยังโครงสร้างที่กำหนดโดยระบบปฏิบัติการ โดยทั่วไปแล้ว เคอร์เนลของระบบปฏิบัติการจะใช้ GS เพื่อเข้าถึงหน่วยความจำที่สงวนไว้สำหรับเธรด Windows ใช้รีจิสเตอร์ GS เพื่อควบคุมหน่วยความจำที่สงวนไว้สำหรับเธรด ในการเข้าถึงหน่วยความจำที่สงวนไว้สำหรับ CPU เคอร์เนลของ Linux จะใช้ GS ตัวชี้ไปยังหน่วยความจำเฉพาะเธรด หรือ TLS มักถูกใช้เป็น GS
  • IP (Instruction Pointer Register):รีจิสเตอร์ CS และ IP ถูกใช้โดย 8086 เพื่อเข้าถึงคำสั่งต่างๆ หมายเลขเซ็กเมนต์ของคำสั่งถัดไปจะถูกเก็บไว้ในรีจิสเตอร์ CS ในขณะที่ค่าออฟเซ็ตจะถูกเก็บไว้ในรีจิสเตอร์ IP ทุกครั้งที่มีการประมวลผลคำสั่ง IP จะถูกแก้ไขให้ชี้ไปยังคำสั่งถัดไป IP ไม่สามารถแก้ไขได้โดยตรงจากคำสั่ง ซึ่งแตกต่างจากรีจิสเตอร์อื่นๆ คำสั่งอาจไม่มี IP เป็นตัวถูกดำเนินการ ก็ได้
  • รีจิสเตอร์แฟล็ก:รีจิสเตอร์สถานะสำหรับซีพียู x86 จะเก็บสถานะปัจจุบันของซีพียู และเรียกว่ารีจิสเตอร์แฟล็ก ขนาดและความสำคัญของบิตแฟล็กจะแตกต่างกันไปตามสถาปัตยกรรม โดยทั่วไปแล้วจะรวมข้อมูลเกี่ยวกับข้อจำกัดในการทำงานปัจจุบันของซีพียู รวมถึงผลลัพธ์ของการคำนวณทางคณิตศาสตร์ ข้อจำกัดบางอย่างอาจห้ามการทำงานของคำสั่ง "พิเศษ" บางประเภท และป้องกันการเรียกใช้งานอินเตอร์รัปต์บางอย่าง แฟล็กสถานะอื่นๆ อาจแทนที่การแมปหน่วยความจำและระบุการตอบสนองที่ซีพียูจะมีในกรณีที่เกิดการโอเวอร์โหลดทางคณิตศาสตร์

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

บทความที่เกี่ยวข้อง

ทะเบียนอเนกประสงค์

ทะเบียนอเนกประสงค์

เรียนรู้ว่ารีจิสเตอร์อเนกประสงค์ทำหน้าที่เป็น "กระดานขีดเขียน" ที่รวดเร็วเป็นพิเศษสำหรับสมองของคอมพิวเตอร์ของคุณได้อย่างไร

Lorem ipsum dolor amet consectetur adipiscing elit tortor massa arcu non.

รีจิสเตอร์คือกลุ่มของฟลิปเปอร์ ข้อมูลดิจิทัลขนาด 1 บิตจะถูกจัดเก็บโดยใช้ฟลิปเปอร์ การรวมฟลิปเปอร์จำนวนมากเข้าด้วยกันจะช่วยขยายความจุในการจัดเก็บข้อมูลให้สามารถเก็บข้อมูลได้จำนวนมาก เราต้องใช้รีจิสเตอร์ขนาด n บิตที่มีฟลิปเปอร์จำนวน n ตัว หากเราต้องการจัดเก็บคำขนาด n บิต

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

ทะเบียนอเนกประสงค์

การลงทะเบียนการดำเนินการ

เมื่อเราป้อนข้อมูลเข้าสู่ระบบ ข้อมูลเหล่านั้นจะถูกจัดเก็บไว้ในรีจิสเตอร์ และเมื่อระบบส่งผลลัพธ์กลับมาหลังจากประมวลผลแล้ว ผลลัพธ์เหล่านั้นก็จะถูกดึงออกมาจากรีจิสเตอร์เช่นกัน เพื่อให้ซีพียูสามารถนำไปใช้ประมวลผลข้อมูลที่ผู้ใช้ป้อนเข้ามาได้

การทำงานของรีจิสเตอร์นั้นอาศัยหลักการทำงานสามอย่างดังนี้:

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

ประเภทของทะเบียน

  • ทะเบียนสถานะและควบคุม
  • สมุดบันทึกข้อมูลอเนกประสงค์
  • ลงทะเบียนเพื่อวัตถุประสงค์พิเศษ

สถานะการลงทะเบียนและการควบคุม

รีจิสเตอร์สถานะและควบคุมจะรายงานและอนุญาตให้แก้ไขสถานะของโปรเซสเซอร์และสถานะของโปรแกรมที่กำลังทำงานอยู่

รอบการดำเนินการ

สมุดทะเบียนข้อมูลอเนกประสงค์:

รีจิสเตอร์อเนกประสงค์เป็นรีจิสเตอร์เพิ่มเติมที่มีอยู่ในซีพียูและถูกใช้งานเมื่อใดก็ตามที่ต้องการเข้าถึงข้อมูลหรือตำแหน่งหน่วยความจำ โดยส่วนใหญ่จะใช้สำหรับเก็บข้อมูลดังต่อไปนี้:

  • ตัวดำเนินการสำหรับการดำเนินการทางตรรกะและทางคณิตศาสตร์
  • ตัวดำเนินการใช้ในการคำนวณที่อยู่
  • ตัวชี้หน่วยความจำ

รีจิสเตอร์ข้อมูลอเนกประสงค์มี 3 ประเภท ได้แก่:

รีจิสเตอร์ข้อมูล: รีจิสเตอร์ข้อมูลประกอบด้วยรีจิสเตอร์ข้อมูล 32 บิตจำนวนสี่ตัว ใช้สำหรับคำนวณทางคณิตศาสตร์ ตรรกะ และการดำเนินการอื่นๆ รีจิสเตอร์ข้อมูลยังแบ่งออกเป็นสี่ประเภท:

  • AX:นี่คือรีจิสเตอร์สะสม (Accumulator Register) มี 16 บิต ซึ่งถูกแบ่งออกเป็นสองรีจิสเตอร์ 8 บิต คือ AH และ AL ทำให้สามารถประมวลผลคำสั่ง 8 บิตได้ ในไมโครโปรเซสเซอร์ 8086 จะใช้ในคำสั่งคำนวณทางคณิตศาสตร์ ตรรกะ และการส่งข้อมูล ตัวเลขตัวใดตัวหนึ่งในการดำเนินการและการหารจะต้องอยู่ในรูปแบบ AX หรือ AL
  • BX:นี่คือรีจิสเตอร์ฐาน (Base Register) มี 16 บิต และแบ่งออกเป็นสองรีจิสเตอร์ขนาด 8 บิต คือ BH และ BL รีจิสเตอร์ที่อยู่ (Address Register) คือรีจิสเตอร์ BX ซึ่งโดยปกติจะมีตัวชี้ข้อมูล (Data Pointer) สำหรับการกำหนดแอดเดรสแบบทางอ้อม โดยอ้างอิงจากรีจิสเตอร์ นี้
  • CX:นี่คือรีจิสเตอร์นับ (Counter Register) มี 16 บิต แบ่งออกเป็นสองรีจิสเตอร์ 8 บิต คือ CH และ CL ทำให้สามารถประมวลผลคำสั่ง 8 บิตได้ ทำหน้าที่เป็นตัวนับสำหรับลูป ช่วยให้การพัฒนาลูปโปรแกรมง่ายขึ้น คำสั่งเลื่อน/หมุน และการจัดการสตริง ล้วนอนุญาตให้ใช้รีจิสเตอร์นับเป็นตัวนับ ได้
  • DX:นี่คือรีจิสเตอร์ข้อมูล (Data Register) มี 16 บิต แบ่งออกเป็นสองรีจิสเตอร์ 8 บิต คือ DH และ DL ดังนั้นจึงสามารถประมวลผลคำสั่ง 8 บิตได้ ในการทำงานของ I/O รีจิสเตอร์ข้อมูลสามารถใช้เป็นหมายเลขพอร์ตได้ นอกจากนี้ยังใช้สำหรับการหารและการคูณด้วย

รีจิสเตอร์ตัวชี้: รีจิสเตอร์ตัวชี้ประกอบด้วยส่วนซ้าย 16 บิต (SP และ BP) และรีจิสเตอร์ ESP และ EBP 32 บิต

  • SP:นี่คือตัวชี้สแต็ก (stack pointer) ใช้สำหรับชี้ไปยังสแต็กของโปรแกรม ในการเข้าถึงเซ็กเมนต์ของสแต็ก จะใช้ SS เป็นตัวชี้ มีขนาด 16 บิต ระบุตำแหน่งรายการบนสุดของสแต็ก ตัวชี้สแต็กจะเป็น (FFFE)H ถ้าสแต็กว่างเปล่า เซ็กเมนต์ของสแต็กจะสัมพันธ์กับแอดเดรสออฟเซ็ตของมัน
  • BP:นี่คือตัวชี้ฐาน (base pointer) ซึ่งใช้ชี้ไปยังข้อมูลในส่วนของสแต็ก (stack segment) เราสามารถใช้ BP ในการเข้าถึงข้อมูลในส่วนอื่นๆ ได้ ต่างจาก SP BP มีขนาด 16 บิต โดยหลักๆ แล้วทำหน้าที่เข้าถึงพารามิเตอร์ที่ส่งผ่านทางสแต็ก ส่วนของสแต็กจะสัมพันธ์กับแอดเดรสออฟเซ็ตของมัน

รีจิสเตอร์ดัชนี: 16 บิตขวาสุดของรีจิสเตอร์ดัชนี ESI และ EDI ขนาด 32 บิต SI และ DI บางครั้งใช้สำหรับการบวก บางครั้งสำหรับการลบ รวมถึงการกำหนดแอดเดรสแบบดัชนีด้วย

  • SI:รีจิสเตอร์ดัชนีแหล่งที่มานี้ใช้สำหรับระบุที่อยู่หน่วยความจำภายในเซ็กเมนต์ข้อมูลที่ DS กำลังเข้าถึง ดังนั้นจึงง่ายต่อการเข้าถึงตำแหน่งหน่วยความจำที่ต่อเนื่องกันโดยการเพิ่มค่าใน SI มีขนาด 16 บิต และมีค่าออฟเซ็ ต
  • DI:หน้าที่ของรีจิสเตอร์แสดงเจตนา (Intent Register) นี้คล้ายกับ SI การดำเนินการแบบลูกโซ่ (Chain Operations) เป็นกลุ่มย่อยของคำสั่งที่ใช้ DI ในการเข้าถึงที่อยู่หน่วยความจำที่ระบุโดย ES โดยทั่วไปจะใช้เป็นตัวบ่งชี้เจตนาสำหรับการดำเนินการแบบลูกโซ่

การลงทะเบียนเพื่อวัตถุประสงค์พิเศษ:

ในการจัดเก็บข้อมูลสถานะของเครื่องและเปลี่ยนแปลงการกำหนดค่าสถานะ จะใช้รีจิสเตอร์เฉพาะกิจ กล่าวอีกนัยหนึ่งคือ CPU มีรีจิสเตอร์จำนวนหนึ่งที่ใช้ในการประมวลผลคำสั่ง ซึ่งรีจิสเตอร์เหล่านี้เรียกว่ารีจิสเตอร์เฉพาะกิจ มีรีจิสเตอร์เฉพาะกิจแปดประเภท ได้แก่ cs, ds, ss, es, fs และ gs ซึ่งจัดอยู่ในกลุ่มรีจิสเตอร์เซ็กเมนต์ รีจิสเตอร์เหล่านี้มีตัวเลือกเซ็กเมนต์ได้มากถึงหกตัว

  • CS (Code Segment Register):รีจิสเตอร์ 16 บิตที่เรียกว่า Code Segment (CS) จะเก็บที่อยู่ของเซ็กเมนต์ขนาด 64 KB พร้อมกับคำสั่งของ CPU การเข้าถึงคำสั่งทั้งหมดที่อ้างอิงโดยรีจิสเตอร์ตัวชี้คำสั่ง (IP) จะดำเนินการโดย CPU โดยใช้ CS Segment รีจิสเตอร์ CS ไม่สามารถเปลี่ยนแปลงได้โดยตรง เมื่อใช้คำสั่งกระโดดระยะไกล (Remote Jump), การเรียกระยะไกล (Remote Call) และการคืนค่าระยะไกล (Remote Return) รีจิสเตอร์ CS จะได้รับการอัปเด ต
  • DS (Data Segment Register):ส่วนข้อมูลโปรแกรมขนาด 64KB จะถูกประมวลผลโดยใช้รีจิสเตอร์ 16 บิตที่เรียกว่าส่วนข้อมูล โดยค่าเริ่มต้น โปรเซสเซอร์จะเข้าใจว่าส่วนข้อมูลนี้มีข้อมูลทั้งหมดที่อ้างอิงโดยรีจิสเตอร์ทั่วไป (AX, BX, CX และ DX) และรีจิสเตอร์ดัชนี (SI, DI) คำสั่ง POP และ LDS สามารถใช้เพื่อแก้ไขรีจิสเตอร์ DS ได้โดยตรง
  • SS (Stack Segment Register):รีจิสเตอร์ 16 บิตที่เรียกว่ารีจิสเตอร์เซ็กเมนต์สแต็กจะเก็บที่อยู่ของเซ็กเมนต์ขนาด 64KB ในสแต็กซอฟต์แวร์ โดยค่าเริ่มต้น CPU จะเข้าใจว่ารีจิสเตอร์เซ็กเมนต์สแต็กมีข้อมูลทั้งหมดที่อ้างอิงโดยรีจิสเตอร์พอยเตอร์สแต็ก (SP) และรีจิสเตอร์พอยเตอร์ฐาน (BP) คำ
  • ES (Complementary Segment Register):รีจิสเตอร์ 16 บิตที่เรียกว่าเซกเมนต์เสริมนี้เก็บที่อยู่ของเซกเมนต์ขนาด 64KB ซึ่งโดยทั่วไปจะบรรจุข้อมูลโปรแกรม ในคำสั่งการจัดการสตริง CPU จะถือว่ารีจิสเตอร์ DI อ้างอิงถึงเซกเมนต์ ES โดยค่าเริ่มต้น คำสั่ง POP และ LES สามารถใช้เพื่ออัปเด ตรี
  • FS (File Segment Register):รีจิสเตอร์ FS ไม่มีวัตถุประสงค์ที่กำหนดไว้ล่วงหน้าโดย CPU แต่ระบบปฏิบัติการที่ใช้งานอยู่จะเป็นผู้กำหนดวัตถุประสงค์ให้ ในกระบวนการของ Windows FS ใช้เพื่อชี้ไปยังบล็อกข้อมูลสตรีม (TIBs )
  • GS (Graphics Segment Register):รีจิสเตอร์ GS ใช้ใน Windows 64 บิตเพื่อชี้ไปยังโครงสร้างที่กำหนดโดยระบบปฏิบัติการ โดยทั่วไปแล้ว เคอร์เนลของระบบปฏิบัติการจะใช้ GS เพื่อเข้าถึงหน่วยความจำที่สงวนไว้สำหรับเธรด Windows ใช้รีจิสเตอร์ GS เพื่อควบคุมหน่วยความจำที่สงวนไว้สำหรับเธรด ในการเข้าถึงหน่วยความจำที่สงวนไว้สำหรับ CPU เคอร์เนลของ Linux จะใช้ GS ตัวชี้ไปยังหน่วยความจำเฉพาะเธรด หรือ TLS มักถูกใช้เป็น GS
  • IP (Instruction Pointer Register):รีจิสเตอร์ CS และ IP ถูกใช้โดย 8086 เพื่อเข้าถึงคำสั่งต่างๆ หมายเลขเซ็กเมนต์ของคำสั่งถัดไปจะถูกเก็บไว้ในรีจิสเตอร์ CS ในขณะที่ค่าออฟเซ็ตจะถูกเก็บไว้ในรีจิสเตอร์ IP ทุกครั้งที่มีการประมวลผลคำสั่ง IP จะถูกแก้ไขให้ชี้ไปยังคำสั่งถัดไป IP ไม่สามารถแก้ไขได้โดยตรงจากคำสั่ง ซึ่งแตกต่างจากรีจิสเตอร์อื่นๆ คำสั่งอาจไม่มี IP เป็นตัวถูกดำเนินการ ก็ได้
  • รีจิสเตอร์แฟล็ก:รีจิสเตอร์สถานะสำหรับซีพียู x86 จะเก็บสถานะปัจจุบันของซีพียู และเรียกว่ารีจิสเตอร์แฟล็ก ขนาดและความสำคัญของบิตแฟล็กจะแตกต่างกันไปตามสถาปัตยกรรม โดยทั่วไปแล้วจะรวมข้อมูลเกี่ยวกับข้อจำกัดในการทำงานปัจจุบันของซีพียู รวมถึงผลลัพธ์ของการคำนวณทางคณิตศาสตร์ ข้อจำกัดบางอย่างอาจห้ามการทำงานของคำสั่ง "พิเศษ" บางประเภท และป้องกันการเรียกใช้งานอินเตอร์รัปต์บางอย่าง แฟล็กสถานะอื่นๆ อาจแทนที่การแมปหน่วยความจำและระบุการตอบสนองที่ซีพียูจะมีในกรณีที่เกิดการโอเวอร์โหลดทางคณิตศาสตร์

Related articles