2012-10-26 22 views
9

मैं जीसीसी का उपयोग कर अपने कर्नेल पर काम कर रहा हूं, और एएसएम कोड से सी फ़ंक्शंस को कॉल करते समय, मुझे add esp,xx स्वयं करना होगा। कुछ खोज के बाद मुझे पता चला कि stdcall एक माइक्रोसॉफ्ट आविष्कार है और इसका उपयोग जीसीसी में नहीं कर सकता है। क्या इस काम को करने का कोई आसान तरीका है?क्या जीसीसी में स्टडकॉल के लिए कोई समकक्ष है?

+0

जब से तुम उल्लेख किया है कि यह अपनी खुद की गिरी है, मैं हटा दिया है संदर्भ। –

उत्तर

5

क्या लिनक्स में stdcall का कोई समकक्ष है?

Linux परिवेश

प्रतीक्षा में मेरी गिरी, इस अपनी खुद की गिरी, या लिनक्स कर्नेल है? क्योंकि अगर यह आपका स्वयं का कर्नेल है, तो यह अब लिनक्स नहीं है।

  1. आप लिनक्स पर काम कर रहे हैं, तो आप नियमित रूप से बुला परंपराओं से चिपके रहते हैं और अपने विधानसभा मिलान करने के लिए लिखने के लिए चाहता हूँ।

  2. यदि आप अपने कर्नेल पर काम कर रहे हैं, तो आप जो कुछ भी चाहते हैं वह कर सकते हैं। जीसीसी और बजना ix86 प्रोसेसर पर दोनों समर्थन stdcall बुला सम्मेलनों, उदाहरण के लिए,

    #define stdcall __attribute__((stdcall)) 
    

    देखें: लिनक्स के लिए Function Attributes (GCC manual)

+0

बहुत बहुत धन्यवाद! मैं अपने स्वयं के कर्नेल को जीसीसी के साथ संकलित कर रहा हूं और किसी ने कहा कि लिनक्स जीसीसी में कोई स्टडकॉल नहीं है। लेकिन यह आपके कोड के साथ अच्छी तरह से काम करता है! – babel92

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

  • कोई संबंधित समस्या नहीं^_^