2010-01-11 17 views
7

मैं उच्च स्तर के प्रोग्रामिंग की लंबी अवधि के बाद x86 निर्देश सेट की सतह को छू रहा हूं। यह लगभग 20 साल हो गया है, मैंने पहली बार x86 असेंबली प्रोग्रामिंग पर पढ़ा था और मेरे googlings से मैं सिर्फ निर्देश सेट संदर्भ के असंख्य के साथ खो दिया; उन लोगों से जो प्रोसेसर की नई पीढ़ियों (286, 386, 486 ...) को मिश्रित करते हैं जो नए x86 निर्देश जोड़ते हैं। एएमडी विविधताओं का उल्लेख नहीं है।x86 निर्देश सेट रोडमैप

चूंकि मैं बूट लोडर बनाने की योजना बना रहा हूं, मेरा पहला विचार 'मानक x86' के साथ पूरी तरह से अनुपालन करना था, लेकिन मैं यह नहीं समझ सकता कि यह समय कहां है या यहां तक ​​कि यदि यह कहीं भी मौजूद है।

यहां तक ​​कि इंटेल दस्तावेज भी एक ही पथ का पालन करते हैं और जैसे किसी अन्य ने कहा, 'हमें एक x86 निर्देश सेट मानकीकरण की आवश्यकता है, ओपोड्स का विकास अराजक है'।

मानकीकरण बैनर को पकड़ना मेरा विचार नहीं है। मैं सिर्फ सड़क देखना चाहता हूं और समझना चाहता हूं कि चलने के लिए सुरक्षित जगह कहां है। अगर कोई मदद कर सकता है तो मैं बहुत सराहना करता हूं!

उत्तर

5

ऐतिहासिक रूप से, x86 बहुत पिछड़ा संगत रहा है। x86-64 ने कुछ पुराने निर्देशों को फेंक दिया है (जैसे बीसीडी निर्देश) लेकिन यह असंभव है कि इस तरह के बदलाव फिर से होने जा रहे हैं (कम से कम तब तक जब तक 64 बिट एड्रेस स्पेस संक्रमण होता है)।

यदि आप यह सुनिश्चित करना चाहते हैं कि आपका कोड वस्तुतः सभी x86 प्रोसेसर पर काम करता है, तो 386 निर्देश सेट (यदि आपका कोड 32-बिट है) या प्रारंभिक x86-64 निर्देश सेट (यदि यह 64-बिट है) तक चिपके रहें।

+1

मैंने 586 (पेंटियम) के लिए विभिन्न डिस्ट्रोज़ में लिनक्स कर्नेल बनाने या इन दिनों बेहतर बनाने के लिए हालिया प्रवृत्ति देखी है ... हालांकि वे अभी भी 686 (पेंटियम II/III/IV/Pro) कर्नेल के लिए डिफ़ॉल्ट नहीं हो सकते हैं उन और के 7 (एएमडी एथलॉन) निर्देशों के बीच मतभेदों के कारण। – Powerlord

+0

आर बेमेरोस: यह अंततः जाने का एक तार्किक तरीका है। आईएमओ, x86-64 की सुंदरता सिर्फ 64 बिट नहीं है, लेकिन प्रोसेसर द्वारा समर्थित निर्देशों के लिए उचित न्यूनतम स्थापित करना (उदाहरण के लिए एसएसई) –

+0

https://fedoraproject.org/wiki/Features/F12X86 समर्थन फेडोरा 12 अब i686 के लिए बनाता है , वहां कई पुराने प्रोसेसर के लिए समर्थन छोड़ना। मेरा गरीब Via C3 ... :-( – ephemient

1

बूट लोडर 16-बिट वास्तविक मोड में निष्पादित करता है (हालांकि आपके पास ऑपरेंड आकार उपसर्ग के माध्यम से 32-बिट रजिस्ट्रार तक पहुंच है)। 386 निर्देश संदर्भ प्राप्त करें, और आप सुरक्षित रहेंगे।

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