यदि आप करते हैं कोडांतरक का एक सा सीखने का फैसला, तो आप शायद 6502 कोडांतरक की तरह कुछ एक कमोडोर 64 पर (बेशक, नकल) जानने के लिए, या 68000 एक Amiga पर करना चाहिए।
आप कमोडोर 64 के कुछ विचार यहाँ प्राप्त कर सकते हैं ...
http://thepiratebay.org/torrent/4609238/Tag3-Saal2-Slot16_00--ID2874-the_ultimate_commodore_64_talk-Main
क्लासिक सब कुछ-आप-की-से-जानने वाली पुस्तक वह है जो यहाँ वर्णित है ...
http://reprog.wordpress.com/2010/03/12/programming-books-part-3-programming-the-commodore-64/
यदि आप चारों ओर देखते हैं तो आप शायद एक पीडीएफ स्कैन पा सकते हैं।
आईएमओ, 6502 Z80 की तुलना में आसान है, और 6886 8086 की तुलना में आसान है - अधिक नियमित निर्देश सेट आदि।
लेकिन CPU हार्डवेयर का केवल एक पहलू है। इसके अलावा, एक आधुनिक सीपीयू एक अलग तरह का जानवर है, और यह उन चीजों को करता है जो कंपाइलरों के दृष्टिकोण से भी पारदर्शी हैं - जैसे कि वर्चुअल एड्रेस स्पेस को पेश करना।
C64 पर 6502 का एक विशेष लाभ यह है कि न केवल सीपीयू सरल है, बल्कि हैक-अराउंड-टू-हार्डवेयर के लिए कुछ बहुत ही सरल है। मुझे SID म्यूजिक चिप के साथ खेलने में बहुत मज़ा आता था।
तो - यह शायद एक सार्थक अभ्यास है यदि आप इस पर बहुत अधिक समय खर्च नहीं करते हैं। मैंने अपनी दूसरी भाषा के रूप में 6502 असेंबलर सीखा जब मैं लगभग 14 था, कमोडोर बेसिक के ठीक बाद। लेकिन ज्यादातर यह बहुत सरल काम करने वाला मॉडल हो रहा है ताकि आप कम से कम गलतफहमी के साथ इसमें अधिक परिष्कृत विचार जोड़ सकें।
कुछ उपयोगी चीजें जो आप असेंबलर में काम करना सीख सकते हैं ...
- सीपीयू रजिस्टर कैसे काम करता है।
- मैमोरी एड्रेसिंग कैसे काम करता है, जिसमें अप्रत्यक्ष भी शामिल है।
- सीपीयू स्टैक कैसे काम करता है।
- बिटवाइज़ तर्क कैसे काम करता है।
- CPU I / O उपकरणों को कैसे नियंत्रित करता है।
- काम कैसे बाधित होता है।
एक विशेष कारण यह है कि मैं इसे सरल तरीके से या बुद्धिमानी और सामान्य ज्ञान के बिना पूरी तरह से नियत और यंत्रवत् संचालित करने के तरीके का एक बेहतर अंतर्ज्ञान प्राप्त करने की सिफारिश करूंगा। मूल रूप से यह सबसे शुद्ध और सबसे ज्यादा अज्ञान रूप में निष्पादन निष्पादन मॉडल के लिए इस्तेमाल किया जा रहा है।
संभवतः उन सभी चीजों को जानना कितना उपयोगी है, हालांकि, यह एक कठिन सवाल है।
एक चीज जो आप नहीं सीखेंगे, वह यह है कि एक मेमोरी उत्तराधिकार के साथ अच्छा कैसे खेलें। उन पुरानी मशीनों में ज्यादातर साधारण मेमोरी मॉडल था जिसमें कैश की कोई परत नहीं थी और कोई वर्चुअल मेमोरी नहीं थी। आप संगामिति के बारे में बहुत कुछ नहीं सीखेंगे - वे निश्चित रूप से इसे संभालने के तरीके थे, लेकिन इसका मतलब ज्यादातर व्यवधान था। आपको म्यूटेक्स आदि के बारे में चिंता करने की आवश्यकता नहीं थी।
कभी-कभी, इन चीजों के एक बार काम करने का एक मानसिक मॉडल , या कोडांतरक कैसे काम करता है, यहां तक कि गुमराह भी कर सकता है। उदाहरण के लिए, एक पते के रूप में सी पॉइंटर के बारे में सोचना अपरिभाषित व्यवहार के मुद्दों को जन्म दे सकता है। एसी पॉइंटर को आम तौर पर एक पते वाले पूर्णांक के रूप में लागू किया जाता है, लेकिन इसकी कोई गारंटी नहीं है कि यह कड़ाई से सच है। उदाहरण के लिए, कुछ विचित्र प्लेटफार्मों पर, अलग-अलग पॉइंटर्स अलग-अलग एड्रेस स्पेस में इंगित कर सकते हैं। यह तब महत्वपूर्ण हो जाता है जब आप दो बिंदुओं के साथ अंकगणित या बिटवाइज़-लॉजिक करना चाहते हैं।
जब तक आपके पास उन विचित्र प्लेटफार्मों में से एक नहीं होता है, तो आप सोच भी नहीं सकते कि आप उसकी परवाह करते हैं - लेकिन कंपाइलर इन दिनों अनुकूलन के लिए मानकों-अपरिभाषित व्यवहार का फायदा उठाने की अधिक संभावना है।
तो सिस्टम आर्किटेक्चर का एक मानसिक मॉडल उपयोगी हो सकता है, लेकिन भाषा की कल्पना के लिए कोड करना अभी भी महत्वपूर्ण है। काल्पनिक मॉडल के लिए नहीं जो आपकी भाषा और मंच का सम्मान नहीं कर सकता है।
अंत में, बहुत सारे उपयोगी मानसिक मॉडल सामान से यह पता चलता है कि कंपाइलर कोड कैसे उत्पन्न करते हैं - और आधुनिक भाषाओं के लिए कोड जनरेशन तब उपलब्ध तुच्छ कंपाइलर से बहुत अलग है।
यह उस के लिए मेरी एक पसंदीदा पुस्तक है ...
http://dickgrune.com/Books/MCD_1st_Edition/
पार्सिंग और एएसटीएस आदि के बारे में सामान के साथ, यह भाषा की प्रतिमानों की एक श्रृंखला के लिए कोड पीढ़ी को शामिल करता है - अनिवार्य, ओओपी, कार्यात्मक, तर्क, समानांतर और वितरित - और स्मृति प्रबंधन के लिए भी। यदि आप यह जानना चाहते हैं कि सीपीयू इंस्ट्रक्शन सेट डिटेल्स में बगैर पॉलीमॉर्फिक मेथड कैसे काम करता है, तो इस तरह की एक पुस्तक आपका मित्र है - और जल्द ही एक नया संस्करण आने वाला है।