8 Modify The Status Registers
ได้มีกำหนดไว้ว่า CPSR และ SPSR เป็น Register ของโปรเซสเซอร์ แต่กลับไม่เป็นส่วนหนึ่งในชุด Register หลัก ดังนั้นการเข้าถึงมันทั้งสองจึงไม่สามารถทำได้ด้วยคำสั่งปกติ โดยจะมีเพียงสองคำสั่งเท่านั้นที่จะจัดการกับ Register ทั้งสองได้โดยตรง คำสั่งนั้นคือ MSR และ MRS ซึ่งจะใช้ในการย้ายข้อมูลภายใน CPSR หรือ SPSR ไปยัง Register ที่เราเลือก ตัวอย่างเช่น หากเราต้องการที่จะไม่รับ IRQ interrupt เราต้องย้าย CPSR ไปที่ Register จากนั้นทำการ Set ค่าที่ I-bit เพื่อทำการปิดการรับ Interrupt จากนั้นนำค่ากลับเข้าไปกำหนดยัง CPSR ใหม่
......
คำสั่ง MSR และ MRS สามารถทำงานได้ในทุกๆ mode ของ Processor ยกเว้น User mode ด้วยเหตุนี้การที่จะเปิด/ปิดการรับ Interrupt ต้องทำผ่าน Exception เช่น Reset, FIQ, IRQ, หรือ SWI
ไม่มีความคิดเห็น:
แสดงความคิดเห็น