ไมโครโปรเซสเซอร์ - 8086 อินเตอร์รัปต์

Interruptเป็นวิธีการสร้างการหยุดชั่วคราวระหว่างการทำงานของโปรแกรมและอนุญาตให้อุปกรณ์ต่อพ่วงเข้าถึงไมโครโปรเซสเซอร์ ไมโครโปรเซสเซอร์ตอบสนองต่อการขัดจังหวะนั้นด้วยไฟล์ISR (Interrupt Service Routine) ซึ่งเป็นโปรแกรมสั้น ๆ ในการสั่งไมโครโปรเซสเซอร์เกี่ยวกับวิธีจัดการกับการขัดจังหวะ

ภาพต่อไปนี้แสดงประเภทของการขัดจังหวะที่เรามีในไมโครโปรเซสเซอร์ 8086 -

ฮาร์ดแวร์ขัดจังหวะ

การขัดจังหวะของฮาร์ดแวร์เกิดจากอุปกรณ์ต่อพ่วงใด ๆ โดยการส่งสัญญาณผ่านพินที่ระบุไปยังไมโครโปรเซสเซอร์

8086 มีพินขัดจังหวะฮาร์ดแวร์สองตัวคือ NMI และ INTR NMI คืออินเทอร์รัปต์ที่ไม่สามารถปิดบังได้และ INTR เป็นอินเทอร์รัปต์ที่สามารถปกปิดได้ซึ่งมีลำดับความสำคัญต่ำ อีกหนึ่งพินอินเทอร์รัปต์ที่เกี่ยวข้องคือ INTA เรียกว่าอินเตอร์รัปต์รับทราบ

NMI

เป็นพินอินเทอร์รัปต์ (NMI) ที่ไม่สามารถปกปิดได้เพียงตัวเดียวที่มีลำดับความสำคัญสูงกว่าพินคำขอขัดจังหวะแบบมาสก์ (INTR) และเป็นอินเทอร์รัปต์ประเภท 2

เมื่อเปิดใช้งานการขัดจังหวะนี้การดำเนินการเหล่านี้จะเกิดขึ้น -

  • ดำเนินการตามคำสั่งปัจจุบันที่กำลังดำเนินการอยู่

  • พุชค่าแฟล็กรีจิสเตอร์บนสแต็ก

  • พุชค่า CS (ส่วนรหัส) และค่า IP (ตัวชี้คำสั่ง) ของที่อยู่ที่ส่งคืนไปยังสแต็ก

  • IP ถูกโหลดจากเนื้อหาของคำว่าตำแหน่ง 00008H

  • CS ถูกโหลดจากเนื้อหาของตำแหน่งคำถัดไป 0000AH

  • แฟล็กขัดจังหวะและแฟล็กกับดักถูกรีเซ็ตเป็น 0

INTR

INTR เป็นอินเทอร์รัปต์ที่สามารถปกปิดได้เนื่องจากไมโครโปรเซสเซอร์จะถูกขัดจังหวะต่อเมื่อมีการเปิดใช้งานอินเทอร์รัปต์โดยใช้คำสั่ง set interrupt flag ไม่ควรเปิดใช้งานโดยใช้คำสั่ง clear interrupt Flag

INTR interrupt ถูกเปิดใช้งานโดยพอร์ต I / O หากเปิดใช้งานการขัดจังหวะและ NMI ถูกปิดใช้งานไมโครโปรเซสเซอร์จะทำการดำเนินการปัจจุบันให้เสร็จสมบูรณ์ก่อนและส่ง '0' บนขา INTA สองครั้ง '0' ตัวแรกหมายถึง INTA แจ้งให้อุปกรณ์ภายนอกเตรียมพร้อมและในช่วง '0' ที่สองไมโครโปรเซสเซอร์จะรับ 8 บิตพูดว่า X จากตัวควบคุมขัดจังหวะที่ตั้งโปรแกรมได้

การดำเนินการเหล่านี้ดำเนินการโดยไมโครโปรเซสเซอร์ -

  • ขั้นแรกให้ทำตามคำสั่งปัจจุบัน

  • เปิดใช้งานเอาต์พุต INTA และรับประเภทการขัดจังหวะ X พูดว่า

  • ค่าแฟล็กรีจิสเตอร์ค่า CS ของที่อยู่ผู้ส่งและค่า IP ของที่อยู่ผู้ส่งจะถูกพุชไปที่สแต็ก

  • ค่า IP ถูกโหลดจากเนื้อหาของตำแหน่งคำ X × 4

  • CS ถูกโหลดจากเนื้อหาของตำแหน่งคำถัดไป

  • อินเตอร์รัปต์แฟล็กและแฟล็กกับดักถูกรีเซ็ตเป็น 0

ซอฟต์แวร์ขัดจังหวะ

คำแนะนำบางอย่างจะถูกแทรกในตำแหน่งที่ต้องการลงในโปรแกรมเพื่อสร้างอินเทอร์รัปต์ คำแนะนำการขัดจังหวะเหล่านี้สามารถใช้เพื่อทดสอบการทำงานของตัวจัดการขัดจังหวะต่างๆ ประกอบด้วย -

INT- ขัดคำสั่งพร้อมหมายเลขประเภท

เป็นคำสั่ง 2 ไบต์ ไบต์แรกให้รหัส op และไบต์ที่สองระบุหมายเลขประเภทการขัดจังหวะ มีการขัดจังหวะ 256 ประเภทภายใต้กลุ่มนี้

การดำเนินการรวมถึงขั้นตอนต่อไปนี้ -

  • ค่าแฟล็กรีจิสเตอร์จะถูกพุชไปที่สแต็ก

  • ค่า CS ของที่อยู่ผู้ส่งคืนและค่า IP ของที่อยู่ผู้ส่งจะถูกพุชไปที่สแต็ก

  • IP ถูกโหลดจากเนื้อหาของตำแหน่งคำว่า 'type number' × 4

  • CS ถูกโหลดจากเนื้อหาของตำแหน่งคำถัดไป

  • Interrupt Flag และ Trap Flag ถูกรีเซ็ตเป็น 0

ที่อยู่เริ่มต้นสำหรับอินเตอร์รัปต์ type0 คือ 000000H สำหรับอินเตอร์รัปต์ type1 คือ 00004H ในทำนองเดียวกันสำหรับ type2 คือ 00008H และ……เป็นต้น พอยน์เตอร์ห้าตัวแรกเป็นพอยน์เตอร์ขัดจังหวะโดยเฉพาะ กล่าวคือ -

  • TYPE 0 การขัดจังหวะแสดงถึงการแบ่งตามสถานการณ์เป็นศูนย์

  • TYPE 1 การขัดจังหวะหมายถึงการดำเนินการขั้นตอนเดียวในระหว่างการดีบักของโปรแกรม

  • TYPE 2 การขัดจังหวะหมายถึงการขัดจังหวะ NMI ที่ไม่สามารถปิดบังได้

  • TYPE 3 การขัดจังหวะหมายถึงการขัดจังหวะจุดพัก

  • TYPE 4 การขัดจังหวะหมายถึงการขัดจังหวะล้น

การขัดจังหวะจาก Type 5 ถึง Type 31 สงวนไว้สำหรับไมโครโปรเซสเซอร์ขั้นสูงอื่น ๆ และอินเตอร์รัปต์จาก 32 ถึง Type 255 พร้อมใช้งานสำหรับการขัดจังหวะฮาร์ดแวร์และซอฟต์แวร์

INT 3-Break Point Interrupt คำแนะนำ

เป็นคำสั่ง 1 ไบต์ที่มีรหัส op คือ CCH คำแนะนำเหล่านี้จะถูกแทรกลงในโปรแกรมเพื่อให้เมื่อโปรเซสเซอร์ไปถึงที่นั่นก็จะหยุดการทำงานของโปรแกรมตามปกติและทำตามขั้นตอนจุดพัก

การดำเนินการรวมถึงขั้นตอนต่อไปนี้ -

  • ค่าแฟล็กรีจิสเตอร์จะถูกพุชไปที่สแต็ก

  • ค่า CS ของที่อยู่ผู้ส่งคืนและค่า IP ของที่อยู่ผู้ส่งจะถูกพุชไปที่สแต็ก

  • IP ถูกโหลดจากเนื้อหาของตำแหน่งคำ 3 × 4 = 0000CH

  • CS ถูกโหลดจากเนื้อหาของตำแหน่งคำถัดไป

  • Interrupt Flag และ Trap Flag ถูกรีเซ็ตเป็น 0

INTO - ขัดจังหวะคำสั่งล้น

มันเป็นคำสั่ง 1 ไบต์และช่วยในการจำ INTO. op-code สำหรับคำสั่งนี้คือ CEH ตามที่ชื่อแนะนำว่าเป็นคำสั่งขัดจังหวะแบบมีเงื่อนไขกล่าวคือจะใช้งานได้เฉพาะเมื่อตั้งค่าแฟล็กล้นเป็น 1 และแตกแขนงไปยังตัวจัดการขัดจังหวะที่มีหมายเลขประเภทการขัดจังหวะคือ 4 หากแฟล็กโอเวอร์โฟลว์ถูกรีเซ็ตการดำเนินการจะดำเนินต่อไป คำแนะนำต่อไป

การดำเนินการรวมถึงขั้นตอนต่อไปนี้ -

  • ค่าแฟล็กรีจิสเตอร์จะถูกพุชไปที่สแต็ก

  • ค่า CS ของที่อยู่ผู้ส่งคืนและค่า IP ของที่อยู่ผู้ส่งจะถูกพุชไปที่สแต็ก

  • IP ถูกโหลดจากเนื้อหาของตำแหน่งคำ 4 × 4 = 00010H

  • CS ถูกโหลดจากเนื้อหาของตำแหน่งคำถัดไป

  • แฟล็กอินเทอร์รัปต์และแฟล็กกับดักถูกรีเซ็ตเป็น 0