สารบัญ:
คำจำกัดความ - ทะเบียนที่ไม่ลบเลือนหมายความว่าอะไร?
การลงทะเบียนแบบไม่ลบเลือนคือชนิดของเนื้อหา register witth ที่ต้องถูกสงวนไว้ผ่านการเรียกรูทีนย่อย เมื่อใดก็ตามที่ค่าของการลงทะเบียนแบบไม่ลบเลือนจะถูกเปลี่ยนโดยรูทีนค่าเก่าจะต้องถูกบันทึกไว้ในสแต็กก่อนที่จะเปลี่ยนการลงทะเบียนและค่านั้นจะต้องถูกเรียกคืนก่อนกลับมา การลงทะเบียนคล้ายกับตัวแปรยกเว้นว่ามีการลงทะเบียนจำนวนคงที่ การลงทะเบียนทุกครั้งเป็นตำแหน่งที่ไม่ซ้ำกันใน CPU ซึ่งมีการบันทึกค่าเดียว การลงทะเบียนเป็นที่เดียวที่สามารถใช้ฟังก์ชันทางคณิตศาสตร์เช่นการเพิ่มการคูณการลบ ฯลฯ สามารถดำเนินการได้ รีจิสเตอร์มักจะถือพอยน์เตอร์ที่อ้างถึงหน่วยความจำ การย้ายค่าระหว่างหน่วยความจำและการลงทะเบียนเป็นปรากฏการณ์ที่พบได้ทั่วไป
Techopedia อธิบายการลงทะเบียนแบบไม่ลบเลือน
ต่อไปนี้เป็นตัวอย่างของการลงทะเบียนที่ไม่ลบเลือน:
- ebx : การลงทะเบียนที่ไม่ลบเลือนใช้เพื่อวัตถุประสงค์ทั่วไป มันมักจะถูกตั้งค่าเป็นค่าทั่วไปทั้งหมดผ่านฟังก์ชั่นเพื่อเร่งการคำนวณ
- esi : การลงทะเบียนที่ไม่ลบเลือนใช้เพื่อวัตถุประสงค์ทั่วไป มันถูกใช้เป็นตัวชี้โดยเฉพาะอย่างยิ่งสำหรับคำแนะนำคลาส "rep-" ที่ต้องการต้นทางและปลายทางสำหรับข้อมูล ที่นี่ ESI ชี้ไปที่แหล่งที่มา โดยทั่วไป esi เก็บข้อมูลที่ใช้ทั้งหมดผ่านฟังก์ชั่นเนื่องจากมันไม่ได้มีแนวโน้มที่จะเปลี่ยนแปลง
- edi : การลงทะเบียนที่ไม่ลบเลือนอื่นใช้เพื่อวัตถุประสงค์ทั่วไป สิ่งนี้มักใช้เป็นตัวชี้ edi เหมือนกับ esi ยกเว้นว่ามันมักจะชี้ไปที่ปลายทาง
- ebp : การลงทะเบียนอื่นที่ไม่ลบเลือนซึ่งใช้เป็นทะเบียนทั่วไป มันมีการใช้งานสองแบบที่แตกต่างกันตามการตั้งค่าการคอมไพล์ มันเป็นทั้งการลงทะเบียนวัตถุประสงค์ทั่วไปหรือตัวชี้เฟรม หากการรวบรวมไม่ได้รับการปรับให้เหมาะสมหรือหากรหัสนั้นเขียนด้วยมือ ebp จะตรวจสอบตำแหน่งของสแต็กเมื่อเริ่มทำงาน เนื่องจากสแต็กมีการเปลี่ยนแปลงทั้งหมดผ่านฟังก์ชันเมื่อตั้งค่า ebp ที่ค่าดั้งเดิมตัวแปรที่บันทึกไว้ในสแต็กจะได้รับอนุญาตให้อ้างอิงได้อย่างง่ายดาย หากการรวบรวมได้รับการปรับให้เหมาะสม ebp จะถูกใช้เป็นวัตถุประสงค์ทั่วไปในการลงทะเบียนเพื่อจัดเก็บข้อมูลประเภทใด ๆ ในขณะที่การคำนวณสำหรับตัวชี้สแต็กจะดำเนินการขึ้นอยู่กับการเคลื่อนไหวของมัน
