วิทยาศาสตร์ยอดนิยม สแต็กคือที่เก็บข้อมูลของเครื่อง Java ที่ไม่ใช่อัจฉริยะ

โปสเตอร์ต้นฉบับ: 2014000 จำนวนการดู: 95 ตอบกลับ: 1 โพสต์ใน: 2012-06-24 12:13:30
สแต็กเป็นพื้นที่ที่ใช้ในการจัดเก็บข้อมูล ไม่มีอะไรพิเศษเกี่ยวกับบริเวณนี้เอง มันเป็นเพียงส่วนหนึ่งของ RAM ภายใน สิ่งที่พิเศษคือวิธีที่มันจัดเก็บและเข้าถึงข้อมูล ซึ่งเรียกว่า 'เข้าก่อน, ออกก่อน, ออกก่อน' และสแต็กมีคำแนะนำการถ่ายโอนข้อมูลพิเศษ ซึ่งก็คือ 'P USH' และ 'POP' มีหน่วยพิเศษเฉพาะเพื่อรองรับสิ่งเหล่านั้น กล่าวคือ SP ตัวชี้สแต็ก เมื่อใดก็ตามที่ดำเนินการคำสั่ง PUSH SP จะลดลง 2 โดยอัตโนมัติ (ขึ้นอยู่กับค่าเดิม) เมื่อใดก็ตามที่ดำเนินการคำสั่ง POP SP จะเพิ่มขึ้น 2 โดยอัตโนมัติ (ขึ้นอยู่กับค่าดั้งเดิม) เนื่องจากค่าใน SP สามารถเปลี่ยนแปลงได้ตามคำสั่ง ตราบใดที่ค่าของ SP ถูกเปลี่ยนแปลงเมื่อเริ่มต้นโปรแกรม คุณจึงสามารถตั้งค่าสแต็กในหน่วยหน่วยความจำที่ระบุได้ ตัวอย่างเช่น ที่จุดเริ่มต้นของโปรแกรม คำสั่ง MOV SP, #5FH ใช้เพื่อตั้งค่าสแต็กในยูนิตโดยเริ่มจากหน่วยหน่วยความจำ 60H โดยทั่วไปจะมีคำสั่งให้ตั้งค่า stack pointer ที่จุดเริ่มต้นของโปรแกรมเสมอ เพราะเมื่อ start up ค่าเริ่มต้นของ SP จะเป็น 07H ซึ่งจะทำให้ stack เริ่มจากหน่วย 08H แล้วย้อนกลับ พื้นที่ตั้งแต่ 08H ถึง 1FH คือพื้นที่ลงทะเบียนการทำงานที่สอง สาม และสี่ของ 8031 ​​ซึ่งมักใช้ซึ่งจะทำให้ข้อมูลสับสน เมื่อผู้เขียนโปรแกรมต่างกันเขียนโปรแกรม คำสั่งสแต็กการเริ่มต้นจะไม่เหมือนกันทุกประการ นี่เป็นเรื่องของนิสัยของผู้เขียน เมื่อตั้งค่าพื้นที่สแต็ก ไม่ได้หมายความว่าพื้นที่นั้นจะกลายเป็นหน่วยความจำพิเศษ มันยังคงสามารถใช้เป็นพื้นที่หน่วยความจำธรรมดาได้ แต่โดยทั่วไปแล้วโปรแกรมเมอร์จะไม่ใช้เป็นหน่วยความจำธรรมดา
ตอบ 🤍 0 📤 แบ่งปัน เก็บรวบรวม
เข้าใจแล้ว ขอบคุณที่แบ่งปัน
— โหลดคำตอบทั้งหมดแล้ว —

ทิ้งคำตอบไว้