ไมโครโปรเซสเซอร์ - 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