CPU มีการตรวจจับในตัว สถาปัตยกรรมชุดคำสั่งส่วนใหญ่ระบุว่า CPU จะดักจับตัวจัดการข้อยกเว้นสำหรับจำนวนเต็มหารด้วยศูนย์ (ฉันไม่คิดว่ามันจะสนใจถ้าเงินปันผลเป็นศูนย์)
เป็นไปได้ว่าการตรวจสอบตัวหารศูนย์เกิดขึ้นพร้อมกันในฮาร์ดแวร์พร้อมกับความพยายามที่จะทำการแบ่งอย่างไรก็ตามการตรวจจับเงื่อนไขที่กระทำผิดได้อย่างมีประสิทธิภาพยกเลิกการหารและกับดักแทนดังนั้นเราจึงไม่สามารถบอกได้ว่าบางส่วน ของมันพยายามแบ่งหรือไม่
(ฮาร์ดแวร์มักจะทำงานอย่างนั้นทำหลายอย่างพร้อมกันแล้วเลือกผลลัพธ์ที่เหมาะสมหลังจากนั้นเพราะการดำเนินการแต่ละอย่างสามารถเริ่มต้นได้ทันทีแทนที่จะเป็นลำดับในการเลือกการดำเนินการที่เหมาะสม)
กลไกดักจับข้อยกเว้นเดียวกันจะใช้เมื่อเปิดการตรวจจับล้นซึ่งคุณมักจะถามโดยใช้คำสั่ง add / sub / mul อื่น (หรือตั้งค่าสถานะตามคำแนะนำเหล่านั้น)
ส่วนจุดลอยตัวยังมีการตรวจจับสำหรับการหารด้วยศูนย์ แต่ส่งกลับค่าที่แตกต่าง ( IEEE 754ระบุNaN ) แทนการดักจับไปที่ตัวจัดการข้อยกเว้น
หากสมมุติว่า CPU ตัดการตรวจจับใด ๆ เพื่อพยายามหารด้วยศูนย์ปัญหาอาจรวมถึง:
- การแขวน CPU (เช่นใน inf. loop) - สิ่งนี้อาจเกิดขึ้นหาก CPU ใช้อัลกอริทึมในการหารที่จะหยุดเมื่อตัวเศษน้อยกว่าตัวหาร (ในค่าสัมบูรณ์) แฮงค์แบบนี้จะนับว่าพังซีพียู
- a (อาจเป็นไปได้) คำตอบขยะถ้า CPU ใช้ตัวนับเพื่อยุติการหารด้วยจำนวนขั้นตอนการหารที่เป็นไปได้สูงสุด (เช่น 31 หรือ 32 บนเครื่อง 32 บิต)