ทำไม MIPS ใช้ R0 เป็น“ ศูนย์” เมื่อคุณทำได้เพียง XOR สองรีจิสเตอร์เพื่อสร้าง 0
ฉันคิดว่าฉันกำลังมองหาคำตอบสำหรับคำถามเรื่องไม่สำคัญ ฉันพยายามที่จะเข้าใจว่าทำไม MIPS Architecture จึงใช้ค่า "ศูนย์" ที่ชัดเจนในการลงทะเบียนเมื่อคุณสามารถบรรลุสิ่งเดียวกันโดยเพียงแค่ XOR'ing การลงทะเบียนใด ๆ กับตัวเอง อาจกล่าวได้ว่าการดำเนินการเสร็จแล้วสำหรับคุณ อย่างไรก็ตามฉันไม่สามารถจินตนาการถึงสถานการณ์ที่คุณจะใช้ค่า "ศูนย์" จำนวนมากได้ ฉันอ่านเอกสารต้นฉบับของ Hennessey และมันแค่กำหนดค่าศูนย์ให้เป็นเรื่องจริงโดยไม่มีเหตุผลจริงใด ๆ เหตุผลเชิงตรรกะที่มีการกำหนดเลขฐานสองแบบฮาร์ดโค้ดเป็นศูนย์หรือไม่? ปรับปรุง: ใน 8k ของปฏิบัติการจาก xc32-gcc สำหรับแกน MIPS ใน PIC32MZ ฉันมีอินสแตนซ์เดียวของ "ศูนย์" add t3,t1,zero คำตอบที่แท้จริง: ฉันได้รับรางวัลสำหรับผู้ที่มีข้อมูลเกี่ยวกับ MIPS และรหัสเงื่อนไข คำตอบนั้นอยู่ในโครงสร้างของ MIPS สำหรับเงื่อนไขต่างๆ แม้ว่าในตอนแรกฉันไม่ต้องการกำหนดเวลาให้กับเรื่องนี้ แต่ฉันได้ตรวจสอบสถาปัตยกรรมสำหรับopensparc , MIPS-Vและ OpenPOWER (เอกสารนี้เป็นภายใน) และนี่คือผลสรุป การลงทะเบียน R0 จำเป็นสำหรับการเปรียบเทียบสาขาเนื่องจากสถาปัตยกรรมของไปป์ไลน์ …