8085 Addressing Modes & Interrupts
ตอนนี้ให้เราพูดถึงโหมดการกำหนดแอดเดรสในไมโครโปรเซสเซอร์ 8085
โหมดที่อยู่ใน 8085
นี่คือคำแนะนำที่ใช้ในการถ่ายโอนข้อมูลจากรีจิสเตอร์หนึ่งไปยังรีจิสเตอร์อื่นจากหน่วยความจำไปยังรีจิสเตอร์และจากรีจิสเตอร์ไปยังหน่วยความจำโดยไม่มีการเปลี่ยนแปลงใด ๆ ในเนื้อหา โหมดการกำหนดแอดเดรสใน 8085 แบ่งออกเป็น 5 กลุ่ม -
โหมดกำหนดแอดเดรสทันที
ในโหมดนี้ข้อมูล 8/16 บิตถูกระบุในคำสั่งเป็นหนึ่งในตัวถูกดำเนินการ For example: MVI K, 20F: หมายถึง 20F ถูกคัดลอกไปยังรีจิสเตอร์ K
ลงทะเบียนโหมดการกำหนดที่อยู่
ในโหมดนี้ข้อมูลจะถูกคัดลอกจากทะเบียนหนึ่งไปยังอีกทะเบียนหนึ่ง For example: MOV K, B: หมายถึงข้อมูลในรีจิสเตอร์ B ถูกคัดลอกไปลงทะเบียน K
โหมดกำหนดแอดเดรสโดยตรง
ในโหมดนี้ข้อมูลจะถูกคัดลอกโดยตรงจากที่อยู่ที่ระบุไปยังรีจิสเตอร์ For example: LDB 5000K: หมายถึงข้อมูลที่อยู่ 5000K ถูกคัดลอกเพื่อลงทะเบียน B
โหมดที่อยู่ทางอ้อม
ในโหมดนี้ข้อมูลจะถูกถ่ายโอนจากรีจิสเตอร์หนึ่งไปยังอีกรีจิสเตอร์โดยใช้แอดเดรสที่ระบุโดยรีจิสเตอร์ For example: MOV K, B: หมายถึงข้อมูลถูกถ่ายโอนจากที่อยู่หน่วยความจำที่ระบุโดยรีจิสเตอร์ไปยังรีจิสเตอร์ K
โหมดการกำหนดแอดเดรสโดยนัย
โหมดนี้ไม่ต้องการตัวถูกดำเนินการใด ๆ ข้อมูลถูกระบุโดย opcode เองFor example: CMP.
ขัดจังหวะใน 8085
อินเทอร์รัปต์คือสัญญาณที่สร้างโดยอุปกรณ์ภายนอกเพื่อขอให้ไมโครโปรเซสเซอร์ทำงาน มีสัญญาณขัดจังหวะ 5 สัญญาณ ได้แก่ TRAP, RST 7.5, RST 6.5, RST 5.5 และ INTR
การขัดจังหวะแบ่งออกเป็นกลุ่มต่อไปนี้ตามพารามิเตอร์ -
Vector interrupt - ในอินเทอร์รัปต์ประเภทนี้โพรเซสเซอร์จะทราบแอดเดรสของอินเตอร์รัปต์ For example: RST7.5, RST6.5, RST5.5, TRAP
Non-Vector interrupt - ในการขัดจังหวะประเภทนี้โปรเซสเซอร์ไม่ทราบที่อยู่ของการขัดจังหวะดังนั้นอุปกรณ์จะต้องส่งที่อยู่การขัดจังหวะออกจากภายนอกเพื่อดำเนินการขัดจังหวะ For example: INTR.
Maskable interrupt - ในการขัดจังหวะประเภทนี้เราสามารถปิดใช้งานการขัดจังหวะโดยเขียนคำสั่งบางอย่างลงในโปรแกรม For example: RST7.5, RST6.5, RST5.5
Non-Maskable interrupt - ในการขัดจังหวะประเภทนี้เราไม่สามารถปิดการใช้งานการขัดจังหวะโดยการเขียนคำสั่งบางอย่างลงในโปรแกรม For example: กับดัก
Software interrupt- ในการขัดจังหวะประเภทนี้โปรแกรมเมอร์จะต้องเพิ่มคำสั่งลงในโปรแกรมเพื่อดำเนินการขัดจังหวะ มีซอฟต์แวร์ขัดจังหวะ 8 ตัวใน 8085 ได้แก่ RST0, RST1, RST2, RST3, RST4, RST5, RST6 และ RST7
Hardware interrupt - มี 5 พินขัดจังหวะใน 8085 ที่ใช้เป็นตัวขัดจังหวะฮาร์ดแวร์ ได้แก่ TRAP, RST7.5, RST6.5, RST5.5, INTA
Note- NTA ไม่ใช่การขัดจังหวะ แต่จะใช้โดยไมโครโปรเซสเซอร์เพื่อส่งการตอบรับ TRAP มีลำดับความสำคัญสูงสุดตามด้วย RST7.5 และอื่น ๆ
Interrupt Service Routine (ISR)
โปรแกรมขนาดเล็กหรือรูทีนที่เมื่อเรียกใช้งานจะให้บริการที่มาของการขัดจังหวะที่เกี่ยวข้องเรียกว่า ISR
กับดัก
เป็นการขัดจังหวะแบบไม่ปิดบังซึ่งมีลำดับความสำคัญสูงสุดในบรรดาอินเทอร์รัปต์ทั้งหมด Bydefault จะเปิดใช้งานจนกว่าจะได้รับการตอบรับ ในกรณีที่เกิดความล้มเหลวจะดำเนินการเป็น ISR และส่งข้อมูลไปยังหน่วยความจำสำรอง การขัดจังหวะนี้จะถ่ายโอนการควบคุมไปยังตำแหน่ง 0024H
RST7.5
เป็นการขัดจังหวะแบบสวมหน้ากากได้ซึ่งมีลำดับความสำคัญสูงสุดเป็นอันดับสองในบรรดาอินเทอร์รัปต์ทั้งหมด เมื่อการขัดจังหวะนี้ถูกดำเนินการโปรเซสเซอร์จะบันทึกเนื้อหาของการลงทะเบียนพีซีลงในสแต็กและแตกแขนงไปยังที่อยู่ 003CH
RST 6.5
เป็นการขัดจังหวะแบบสวมหน้ากากได้ซึ่งมีลำดับความสำคัญสูงสุดเป็นอันดับสามในบรรดาอินเทอร์รัปต์ทั้งหมด เมื่อการขัดจังหวะนี้ถูกดำเนินการโปรเซสเซอร์จะบันทึกเนื้อหาของการลงทะเบียนพีซีลงในสแต็กและแตกแขนงไปยังที่อยู่ 0034H
RST 5.5
เป็นการขัดจังหวะแบบสวมหน้ากากได้ เมื่อการขัดจังหวะนี้ถูกเรียกใช้โปรเซสเซอร์จะบันทึกเนื้อหาของการลงทะเบียนพีซีลงในสแต็กและแตกแขนงไปยังที่อยู่ 002CH
INTR
เป็นการขัดจังหวะแบบสวมหน้ากากได้ซึ่งมีลำดับความสำคัญต่ำที่สุดในบรรดาอินเทอร์รัปต์ทั้งหมด สามารถปิดใช้งานได้โดยการรีเซ็ตไมโครโปรเซสเซอร์
เมื่อไหร่ INTR signal goes highเหตุการณ์ต่อไปนี้สามารถเกิดขึ้นได้ -
ไมโครโปรเซสเซอร์จะตรวจสอบสถานะของสัญญาณ INTR ระหว่างการดำเนินการของแต่ละคำสั่ง
เมื่อสัญญาณ INTR สูงไมโครโปรเซสเซอร์จะดำเนินการตามคำสั่งปัจจุบันและส่งสัญญาณรับทราบการขัดจังหวะต่ำที่ใช้งานอยู่
เมื่อได้รับคำแนะนำไมโครโปรเซสเซอร์จะบันทึกที่อยู่ของคำสั่งถัดไปบนสแตกและดำเนินการตามคำสั่งที่ได้รับ