วิทยาศาสตร์ยอดนิยม สแต็กคือที่เก็บข้อมูลของเครื่อง Java ที่ไม่ใช่อัจฉริยะ
สแต็กเป็นพื้นที่ที่ใช้ในการจัดเก็บข้อมูล ไม่มีอะไรพิเศษเกี่ยวกับบริเวณนี้เอง มันเป็นเพียงส่วนหนึ่งของ 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 ซึ่งมักใช้ซึ่งจะทำให้ข้อมูลสับสน เมื่อผู้เขียนโปรแกรมต่างกันเขียนโปรแกรม คำสั่งสแต็กการเริ่มต้นจะไม่เหมือนกันทุกประการ นี่เป็นเรื่องของนิสัยของผู้เขียน เมื่อตั้งค่าพื้นที่สแต็ก ไม่ได้หมายความว่าพื้นที่นั้นจะกลายเป็นหน่วยความจำพิเศษ มันยังคงสามารถใช้เป็นพื้นที่หน่วยความจำธรรมดาได้ แต่โดยทั่วไปแล้วโปรแกรมเมอร์จะไม่ใช้เป็นหน่วยความจำธรรมดา
ตอบกลับ (1)
เข้าใจแล้ว ขอบคุณที่แบ่งปัน
— โหลดคำตอบทั้งหมดแล้ว —