के बाद, एक नमूना कार्यक्रम के objdump का आउटपुट हैसंकार्य पीढ़ी एएमडी
080483b4 <display>:
80483b4: 55 push %ebp
80483b5: 89 e5 mov %esp,%ebp
80483b7: 83 ec 18 sub $0x18,%esp
80483ba: 8b 45 0c mov 0xc(%ebp),%eax
80483bd: 89 44 24 04 mov %eax,0x4(%esp)
80483c1: 8d 45 fe lea 0xfffffffe(%ebp),%eax
80483c4: 89 04 24 mov %eax,(%esp)
80483c7: e8 ec fe ff ff call 80482b8 <[email protected]>
80483cc: 8b 45 08 mov 0x8(%ebp),%eax
80483cf: 89 44 24 04 mov %eax,0x4(%esp)
80483d3: c7 04 24 f0 84 04 08 movl $0x80484f0,(%esp)
80483da: e8 e9 fe ff ff call 80482c8 <[email protected]>
80483df: c9 leave
80483e0: c3 ret
080483e1 <main>:
80483e1: 8d 4c 24 04 lea 0x4(%esp),%ecx
80483e5: 83 e4 f0 and $0xfffffff0,%esp
80483e8: ff 71 fc pushl 0xfffffffc(%ecx)
80483eb: 55 push %ebp
80483ec: 89 e5 mov %esp,%ebp
80483ee: 51 push %ecx
80483ef: 83 ec 24 sub $0x24,%esp
80483f2: c7 44 24 04 f3 84 04 movl $0x80484f3,0x4(%esp)
80483f9: 08
80483fa: c7 04 24 0a 00 00 00 movl $0xa,(%esp)
8048401: e8 ae ff ff ff call 80483b4 <display>
8048406: b8 00 00 00 00 mov $0x0,%eax
804840b: 83 c4 24 add $0x24,%esp
804840e: 59 pop %ecx
804840f: 5d pop %ebp
8048410: 8d 61 fc lea 0xfffffffc(%ecx),%esp
क्या मैं समझने की जरूरत है, मुख्य हम पते पर निम्न देखें में है - 8,048,401, कॉल 80483 बी 4, हालांकि मशीन कोड है - ई 8 एई एफएफ एफएफ एफएफ। मैं देखता हूं कि कॉल निर्देश E8 है लेकिन फ़ंक्शन 80483b4 का पता FFFFFFAE को डीकोड करने का तरीका कैसा है? मैंने Google में बहुत सी खोज की लेकिन यह कुछ भी वापस नहीं आया। क्या कोई भी समझा सकता है?
आपकी टिप्पणियों के लिए धन्यवाद। तो यह केवल निकट कॉल के लिए है। एफएआर कॉल के बारे में क्या? आपकी टिप्पणी से मैं समझता हूं कि निकट कॉल E8 है। क्या एफएआर भी ई 8 कॉल करता है? इसके अलावा, क्या एफएआर कॉल के लिए ऑपरेशन abosolute addres होगा ?? –
@ सैमिरबायद सुदूर कॉल '9ए' हैं और पूर्ण पते लेते हैं। 'एफएफ' भी है जो पूर्ण अप्रत्यक्ष पते के साथ कुछ करता है, लेकिन मुझे यकीन नहीं है कि वे कैसे काम करते हैं। पेज पर उस वॉल्यूम सेट (यानी शीर्ष पर) के पृष्ठ 716 को देखें, जिसे मैंने अधिक विस्तार से जोड़ा है। – spencercw
@ सैमिरबायड: एक्स 86_64 पर भी सुदूर कॉल दुर्लभ हैं। लाइब्रेरी कॉल आमतौर पर पीएलटी के माध्यम से की जाती हैं, इसलिए ऐसा करने के लिए आपको 2 GiByte से बड़ा टेक्स्ट सेगमेंट चाहिए। – hirschhornsalz