2010-10-10 12 views
7

मैं एटी & टी सिंटैक्स का उपयोग 86 विधानसभा के लिए चल बिन्दु गणित पर एक सभ्य संसाधन लगाने के लिए पिछले सप्ताह के लिए कोशिश कर रहा है के लिए एक संदर्भ। आदर्श रूप से, ऑपकोड की एक सूची, वे क्या करते हैं, और जहां फ्लोट संग्रहित होते हैं। मैं आईईईई 754 प्रतिनिधित्व से परिचित हूं। मैं फ़्लोटिंग पॉइंट स्टैक से परिचित नहीं हूं, और कोई असेंबली फ्लोटिंग पॉइंट अंकगणित का जिक्र करती है।एटी एंड टी वाक्यविन्यास विधानसभा चल बिन्दु अंकगणितीय

यह अजीब है यह कितना मुश्किल मिल रहा है।

संपादित करें: मैं पिछले एक महीने विधानसभा सीखने के लिए जीसीसी एस उत्पादन को देख रहा हूँ। इस तरह मैंने फ्लोटिंग पॉइंट अंकगणित को छोड़कर सब कुछ पता लगाया। ऑप्टिमाइज़ेशन के बिना संकलित दर्जनों छोटे कार्यक्रमों के माध्यम से जाने के बाद भी, मैं अभी भी फ्लोटिंग पॉइंट ऑपोड्स और स्टैक के बारे में बहुत कुछ नहीं समझ सकता। मुझे केवल छोटे उदाहरण ऑनलाइन मिले हैं।

+0

पुन संपादित करें: तो, सुझाव 'पढ़ने के लिए libm', और इंटेल मैनुअल को पढ़ने का पालन करें। मुझे खेद है, आपके पास कोई विकल्प नहीं है। _no_ सभ्य एटी एंड टी-सिंटैक्स-आधारित संसाधन हैं, क्योंकि x86 असेंबली प्रोग्रामिंग के बारे में _nobody_ गंभीर इसका उपयोग करता है। –

+1

ठीक है, तो मैं यह कहने के बारे में थोड़ा कठोर था कि कोई भी एटी एंड टी वाक्यविन्यास का गंभीर उपयोग नहीं करता है। वैसे भी, यदि आप "devpro-libm" के लिए Google हैं, तो आप OpenSolaris में उपयोग किए गए 'libm' कोड को डाउनलोड कर सकते हैं। यह 'glibc' से अधिक हल्का डाउनलोड हो सकता है। फिर, 'usr/src/libm/src/i386/common' निर्देशिका में देखें --- यह कट्टर फ़्लोटिंग-पॉइंट असेंबली का सोनामाइन है, जो सभी एटी एंड टी सिंटैक्स में लिखे गए हैं। –

+1

मैं वास्तव में बस इसे डाउनलोड करने वाला था। धन्यवाद :) मैं एटी एंड टी सिंटैक्स को भी नापसंद करता हूं और इसमें कुछ गंभीर असंगतताएं हैं - लेकिन मुझे इसका उपयोग करना है जो मुझे उपयोग करना है। इंटेल सिंटैक्स होने के बावजूद, [यह] (http://www.programmers-corner.com/tutorial/31) एक संक्षिप्त गाइड है जो मैं ढूंढ रहा था। एटी एंड टी वाक्यविन्यास को समायोजित करने के लिए परिवर्तन आसान हैं। – Kizaru

उत्तर

4

ठीक है। इंटेल सिंटैक्स के साथ पहले शुरू करें, क्योंकि अधिकांश x86 असेंबली कोडर इसका उपयोग करते हैं। Intel's manuals सीखने के लिए एक महान संसाधन है कि कैसे x86 फ्लोटिंग-पॉइंट सामग्री को संभालता है।

के बाद आप सामान्य रूप में 86 विधानसभा जानने के लिए, एटी & टी वाक्य रचना तो जानने के लिए मुश्किल नहीं है। ध्यान देने योग्य मुख्य बातें हैं:

  • रजिस्ट्रार % द्वारा उपसर्ग किए गए हैं; सांख्यिक स्थिरांक $
  • रजिस्टर आदेश से लगी होती हैं सबसे दो संकार्य निर्देश (यानी स्रोत पहले, पिछले को लक्षित)
  • अनुदेश नाम आकार निर्दिष्ट के लिए बदली है; तो mov dword ptr [ebx], 1337 के बजाय, आप movl $1337, (%ebx) कहेंगे।
+0

मैं इंटेल वाक्यविन्यास का उपयोग नहीं कर सकता। यह एक कंपाइलर प्रोजेक्ट के लिए है और हम एटी एंड टी सिंटैक्स का उपयोग कर रहे हैं, इसलिए यह जीसीसी के साथ काम करता है। – Kizaru

+2

@ किज़ारू: मुझे पता है कि आप अपनी परियोजना के लिए इसे _use_ नहीं कर सकते हैं। लेकिन आपको पहले इसके साथ _learn_ करना चाहिए। प्रारंभ में, अपने असेंबलर के रूप में नासम का प्रयोग करें। फिर, एक बार जब आप x86 असेंबली प्रोग्रामिंग का लटका लेंगे, _then_ एटी एंड टी सिंटैक्स का उपयोग करें। यदि आप चाहते हैं, तो शुरुआत में नस्ल को लक्षित करने के लिए, आपकी प्रोजेक्ट दोनों प्रारूपों में आउटपुट करने में सक्षम हो। –

+0

मेरे पास इस समय फ्लोट को छोड़कर सब कुछ के लिए संकलक पूरी तरह से सेट है। यह एक चीज है जो मुझे वापस पकड़ रही है। यह एक कोर्स के लिए एक परियोजना है। – Kizaru

संबंधित मुद्दे