एक दृष्टिकोण कार्यक्रम की विधानसभा सूची को देखना है।
कार्यक्रम को संकलित करने के बाद (सत्यापन या डाउनलोड बटन के माध्यम से) उस निर्देशिका का पता लगाएं, जहां .cpp, .hex, और .elf के लिए प्रोग्राम को संग्रहीत किया गया है। (यदि आपको उन्हें ढूंढने में परेशानी हो, तो Arduino IDE में संक्षिप्त रूप से वर्बोज़ संकलन विकल्प चालू करें और आउटपुट में निर्देशिका नामों को देखें।)
उस डायरेक्टरी में, avr-objdump -S fn.cpp.elf चलाएं > listing.txt जहाँ fn.cpp.elf आपके स्केच का नाम .inoलिया गया है और .cpp.elfअंत में जोड़ा गया है। उदाहरण के लिए, स्केच के साथ serialecho.ino:
avr-objdump -S serialecho.cpp.elf> लिस्टिंग.txt
listing.txtफ़ाइल देखें , और हेक्स अंकगणितीय का उपयोग करके प्रत्येक फ़ंक्शन के शुरुआती पते को उसके अंतिम पते से घटाएं। उदाहरण के लिए, setupकोड के साथ
शून्य सेटअप () {Serial.begin (9600); }
लिस्टिंग में हम देखेंगे
00000144 <setup>:
...(6 lines snipped)...
144: 26 e0 ldi r18, 0x06 ; 6
146: 40 e8 ldi r20, 0x80 ; 128
148: 55 e2 ldi r21, 0x25 ; 37
14a: 60 e0 ldi r22, 0x00 ; 0
14c: 70 e0 ldi r23, 0x00 ; 0
14e: 80 e1 ldi r24, 0x10 ; 16
150: 92 e0 ldi r25, 0x02 ; 2
152: db c1 rjmp .+950 ; 0x50a <_ZN14HardwareSerial5beginEmh>
00000154 <loop>:
गणना 0x154–0x144 = 0x10 का यह भाग दिखाता है कि यह setup16 बाइट्स लंबा है।
ये उदाहरण एक लिनक्स सिस्टम पर उत्पन्न हुए थे। मुझे लगता है कि दृष्टिकोण MSWindows सिस्टम पर समान है, इसके अलावा आपको avr-objdump.exeइसके बजाय कहने की avr-objdumpआवश्यकता हो सकती है, और इसके पथ को निर्दिष्ट करने की आवश्यकता हो सकती है। देखें, उदाहरण के लिए, Assemler परिणाम, कहाँ? forum.arduino.cc पर धागा।