एक GNU परियोजना में कुछ स्रोत कोड के माध्यम से पढ़ते समय, मैं इनलाइन विधानसभा के इस बिट में आए:सहायता 86 इनलाइन विधानसभा में समझ DIV अनुदेश
__asm__ (
"divq %4"
: "=a" (q), "=d" (r)
: "0" (n0), "1" (n1), "rm" (d)
);
यहाँ चर q
, r
, n0
, n1
, और d
64-बिट पूर्णांक हैं। मुझे यह पता लगाने के लिए पर्याप्त असेंबली पता है कि यह क्या करता है, लेकिन कुछ विवरण हैं जिनके बारे में मैं निश्चित नहीं हूं।
मैं क्या समझ:
हम d
द्वारा RAX रजिस्टर की सामग्री को विभाजित कर रहे हैं q
में भागफल रखने, और r
में शेष का मौक़ा मिला।
मैं क्या समझ में नहीं आता
- क्यों तीन आदानों यहाँ हैं? हमें केवल लाभांश और एक विभाजक इनपुट करने की आवश्यकता है, तो का उपयोग 3 इनपुट के लिए क्या हो सकता है?
- मैं नहीं बता सकता कि कौन से इनपुट लाभांश हैं। अधिक आम तौर पर, मुझे वास्तव में कुछ भी नहीं दिखता है आरएक्स रजिस्टर, में लोड किया जा रहा है, तो यह कैसे पता चलेगा कि क्या विभाजित करना है?
+1 अच्छी तरह से फ़ॉर्मेटेड प्रश्न। मुझे "जो मैं समझता हूं" और "जो मैं समझ नहीं पा रहा हूं" अनुभाग पसंद करता हूं। –