2009-06-03 9 views
6

असेंबली (मुख्य रूप से पीआईसी) के लिए कोई संहिता सम्मेलन है?असेंबली (मुख्य रूप से पीआईसी) के लिए कोई कोड सम्मेलन है?

+2

मैं इसे ऑफटॉप नहीं कहूंगा, लेकिन मेरा कोड सम्मेलन सी या सी ++ का उपयोग करना है, असेंबलर नहीं। टिप्पणियों के साथ –

+0

भी समझौते में। मेरा सम्मेलन केवल गति/अंतरिक्ष के अनुकूलन के अंतिम उपाय के रूप में असेंबली का उपयोग करना होगा। – kenny

+0

मुझे उत्पाद की कीमत को कम करने की आवश्यकता है। सी मेरे लिए सबसे अच्छा विकल्प नहीं है। –

उत्तर

7

मिल जाएगा मैं Assembly Language Style Guide(PDF) जो आप में रुचि हो सकती खोजने के लिए सक्षम था।

+1

यह सामान्य शैली है, लेकिन टिप्पणियां बहुत लुभावनी हैं (बहुत कम स्तर या अपरिचित)। – starblue

+0

यह शुरू करने के लिए एक अच्छा दस्तावेज़ है। लेकिन जैसा कि ऊपर –

+0

से ऊपर टिप्पणी की गई है, मैंने यहां एक ही प्रश्न बना दिया है: http://electronics.stackexchange.com/questions/7468/are-there-any-code-conventions-for-assembly और शायद आप चाहते हैं वहां भी जवाब देना पसंद है। –

0

मुझे नहीं लगता कि कुछ औपचारिक है, लेकिन उनकी वेबसाइट पर कोडिंग नमूने पढ़ने से आपको सामान्य मुहावरे का स्वाद मिलता है। बस जागरूक रहें कि कई अलग-अलग शौकियों से बहुत सारे 'योगदान' हैं, और वे बहुत अच्छे नहीं हो सकते हैं।

अन्य परियोजनाओं की भी जांच करें, अधिकांश में बदसूरत कोड होगा; लेकिन आपको एक मणि या दो मिल जाएगा।

मैंने कभी भी पीआईसी पर कार्यक्रम नहीं किया, लेकिन कोड को पढ़ने के लिए पसंद आया। मैं वास्तव में एक अच्छा और साफ निष्पादन प्रवाह के साथ एक "वास्तविक समय ओएस" याद है। याद रखें कि कोडिंग शैली कितनी संगत थी, लेकिन मैं वहां से शुरू करूंगा।

यह बेहतर है उनमें से ज्यादातर को पढ़ने के लिए और जब यह गद्य जितना आसान है, तो आप अपने शैली

6

जब लेखन असेंबली, यह बहुत उपयोगी है और पर सभी ओवरबोर्ड पर टिप्पणी नहीं प्रत्येक पंक्ति

+0

मैं बस कुछ ऐसा कहने जा रहा था। मेरे पास कुछ टिप्पणियों के साथ कुछ साल पहले कुछ पुरानी असेंबली है, और मुझे इनमें से कोई भी समझ में नहीं आता है। – Zifre

0

मैं जेसन एस के साथ हूं - यदि संभव हो तो एक सी कंपाइलर का उपयोग करें, भले ही आप असेंबली भाषा की कुछ पंक्तियों को एम्बेड करते हैं "__asm" कीवर्ड का उपयोग कर आपकी ".c" फ़ाइल।

यदि आपको पीआईसी के लिए असेंबलर में पूरे कार्यक्रम लिखना है, तो अनुशंसित फ़ंक्शन कॉल सम्मेलन PIClist: PIC Paging and PCLATH पर है।

0

यह वास्तव में आपके द्वारा उपयोग किए जा रहे पीआईसी के मॉडल पर निर्भर करेगा। उदाहरण के लिए, पीआईसी 16 और पीआईसी 18 में बहुत सारे असेंबली उदाहरण हैं जो आसानी से वेब पर पाए जा सकते हैं।

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

2

यह इस बात पर निर्भर करता है कि आपके प्रोग्रामिंग असेंबली में या सी कंपाइलर का उपयोग आपके लिए असेंबली बनाने के लिए करते हैं, यदि प्रदर्शन महत्वपूर्ण है तो सी कंपाइलर का उपयोग न करें, असेंबली स्वयं लिखें।

लेकिन सामान्य रूप से सम्मेलन प्रत्येक पंक्ति पर टिप्पणी करना है, सार्थक सूचक नामों के साथ सरल सबराउटिन का उपयोग करें। वहाँ somethings तुम खंड पर टिप्पणी की है, यानी

start: movlw 0x24  // \ 
      movf count  // put 24 into count 


    MyCount: decfsz count  //decrement count and exit if done 
      goto myCount //do the loop 
      goto exit  //count is done exit 

इस विशिष्ट कोडिंग, पते के लिए प्रथम स्तंभ आदेश के लिए अगले पॉइंटर और संबद्ध आप आमतौर पर पहले हैडर अनुभाग में वार्स परिभाषित वार्स है वास्तविक कार्यक्रम, लेकिन यह उस संयोजन के लिए विशेष है जिसका आप उपयोग कर रहे हैं। कुछ आपको परिवर्तनीय सूचक विकल्प नहीं देते हैं और आपको प्रत्यक्ष स्मृति स्थान का उपयोग करना होगा। यदि आप डिस्सेबलर से वापस आने वाले टिप्पणी कोड को देखते हैं तो यह दिखेगा।

0020 movlw 0x24 
    0021 movf 0x25  // 0x25 = memory address of count 
    0022 decfsz 0x25 
    0023 goto 0x0022 // loop back to 0x22 until count = 0 
    0024 goto 0x01FF 

तो आप इसे बाहर टिप्पणी समूह के लिए सुनिश्चित करें कि आपके कोड का उपयोग करें 'nop की शुरुआत की तरह अच्छा दौर संख्या बीच में आता है और इस तरह के लिए 2 और 20 के बीच स्पष्ट 20 छोड़ने के पते का पता करने के लिए कोड की भरपाई के लिए बनाते हैं।चिप के आधार पर मैं 12f675 के लिए बहुत सारे कोड लिखता हूं, इसलिए यह मॉडल मैं आमतौर पर उपयोग करता हूं।

भी सरल स्पष्ट सबराउटिन में कोड रखता है और वहां पते को आपके शुरुआती सबराउटिन के बीच 10 या तो नॉप के ब्लॉक छोड़ने के अच्छे दौर संख्याएं होनी चाहिए, आप हमेशा वापस जा सकते हैं और बाद में अपने कोड को संपीड़ित कर सकते हैं। और हमेशा अपने कोड पर टिप्पणी करें आप इसे पर्याप्त टिप्पणी नहीं कर सकते हैं।

भी मैं सामान्य रूप से स्मृति के अंत के रूप में अपने init मार्ग को डालता हूं क्योंकि उस वास्तविक कार्यक्रम के लिए अधिकतम स्थान छोड़ने योग्य है।

आशा है कि कुछ मदद करता है।

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