यह एक बहुत ही दिलचस्प सवाल है। वहाँ लाखों निर्देश सेट हैं, लेकिन बहुत ही सामान्य रूप से उपयोग किए जाने वाले मुट्ठी भर।
पहली चीज जो मैं देखूंगा वह मूल और इच्छित उपयोग है। यदि आपको संदेह है कि यह अमेरिका में डिजाइन किया गया था , तो आप मुख्य रूप से अंग्रेजी में उपलब्ध डेटशीट के साथ प्रोसेसर को लक्षित करेंगे। यदि यह एशिया में डिज़ाइन किया गया था, तो ऐसे कई प्रोसेसर हैं जो बड़े पैमाने पर निर्मित उपकरणों के लिए उपयोग करते हैं जो कि अमेरिकी इंजीनियर शायद ही कभी देखते हैं। यहां तक कि यूरोप में कुछ प्रोसेसर हैं जो दूसरों की तुलना में अधिक सामान्य हैं।
मैं फिर कोड आकार और कार्यक्षमता पर एक नज़र डालूँगा (यह मानते हुए कि आपको पता है कि कोड कुछ हद तक क्या करता है)। यदि यह कोड की कुछ मेगाबाइट है, तो आप बहुत अधिक एम्बेडेड 8 बिट प्रोसेसर पर बहुत अधिक छूट दे सकते हैं और बाहरी मेमोरी वाले बड़े उपकरणों को देखना शुरू कर सकते हैं। यदि यह कुछ किलोबाइट या उससे कम है, तो आप इसके बजाय छोटे, सस्ते उपकरणों पर ध्यान केंद्रित करना चाहते हैं। यदि कार्यक्षमता सरल है, तो यह चार बिट प्रोसेसर के लिए कोड भी हो सकता है।
इस समय यह स्मृति संरचना को देखने लायक है। कम से कम प्रोग्राम सेक्शन और डेटा सेक्शन होने की संभावना है। यदि यह एक द्विआधारी फ़ाइल (बनाम इंटेल हेक्स या मोटरोला एस रिकॉर्ड) है, तो आपके पास बहुत कम जानकारी है कि स्मृति में डेटा के कुछ हिस्से कैसे रखे जा रहे हैं। एक हेक्स संपादक कुछ पैटर्न दिखा सकता है। यदि यह एक हेक्स या एस रिकॉर्ड प्रारूप में आता है, तो आपके पास इसके लिए आवश्यक प्रोसेसर की मेमोरी संरचना के बारे में अधिक जानकारी हो सकती है। कुछ प्रोसेसर प्रोग्राम मेमोरी लोकेशन 0 पर रीसेट करते हैं, कुछ उच्चतम मेमोरी लोकेशन पर। कार्यक्रम में एक अलग मेमोरी स्थान में प्रारंभिक मान EEPROM शामिल हो सकते हैं। यदि यह सुरक्षित प्रोसेसर के लिए है (जैसा कि बैंकिंग में उपयोग किया जाता है) तो इसमें विषम मेमोरी लोकेशन के लिए सुरक्षा कुंजी भी हो सकती है।
यह जिस भाषा में प्रोग्राम किया गया था, उसके आधार पर, आपके पास कुछ अतिरिक्त सुराग हो सकते हैं। यदि इसे सी या इसी तरह की प्रक्रियात्मक भाषा में प्रोग्राम किया गया था, तो स्टैक से मूल मानों को वापस करने के लिए बहुत सारे चबूतरे वापस करने से ठीक पहले स्टैक को कुछ रजिस्टरों को बचाने के लिए निर्देशों का क्रम लगभग हमेशा शुरू होगा। । यदि आप कुछ पैटर्न पहचान कर सकते हैं, तो आपको इनमें से कई क्रम मिलेंगे, और यह निर्धारित करने में सक्षम हो सकते हैं कि कौन से निर्देश सबसे अधिक संभावना पुश / पॉप निर्देश, वापसी, आदि हैं, जो आपकी पसंद को थोड़ा कम कर सकते हैं।
यदि यह इंटरप्ट के साथ एक एम्बेडेड डिवाइस है, तो इसमें एक रुकावट वेक्टर तालिका हो सकती है, जो एक बड़े ब्लॉक में सभी अलग-अलग मेमोरी स्थानों पर जंपर्स की तरह दिखेगी, शायद एक सुविधाजनक स्थान पर (उदाहरण के लिए 0x ??? 0 का पता) । अन्य चीजों के लिए भी जंप टेबल का उपयोग कहीं और किया जाता है, लेकिन यदि आप निर्देशों का एक क्रम का पता लगा सकते हैं, जो कूदने के लिए पता क्या होगा को छोड़कर समान दिखते हैं, तो आप अनुमान लगाने में सक्षम हो सकते हैं कि क्या कूद निर्देश जैसा दिखता है, और फिर संकीर्ण आपकी पसंद नीचे।
उस बिंदु पर, मैं सबसे सामान्य प्रोसेसर आर्किटेक्चर के साथ शुरू होता हूं और देखता हूं कि क्या कुछ भी संबंधित है। x86, arm, mips, 8051, avr, pic, powerpc, Z80, 68k, 6502, etc, etc, आदि सामान्य प्रोसेसर और निर्देश सेट की सूची हैं - कम से कम अंग्रेजी बोलने वाले दुनिया में - जो सहायक साबित हो सकता है।
मुझे किसी भी स्वचालित उपकरण के बारे में पता नहीं है जो इससे मदद करेगा, लेकिन MAME ने कई बेहतरीन प्रोसेसर आर्किटेक्चर का अनुकरण किया है, और एक संभव तरीका कोड को कई प्रोसेसर के माध्यम से चलाना है और रजिस्टरों को देखना है कि क्या कुछ के अनुसार क्लिक करता है आप डिजाइन के बारे में जानते हैं।