2009-04-06 9 views
22

मुझे असेंबली प्रोग्रामिंग का कोई पूर्व ज्ञान नहीं है, और सीखना चाहते हैं कि लिनक्स प्लेटफॉर्म पर x86 असेंबली को कैसे कोड करें। हालांकि, मुझे अपने साथ सिखाने के लिए एक अच्छा संसाधन खोजने में मुश्किल हो रही है।लिनक्स मंच पर x86 असेंबली सीखने का सबसे अच्छा तरीका क्या है?

आर्ट ऑफ असेंबली बुक अच्छा दिखता है, लेकिन यह एचएलए सिखाता है। मुझे एक तरह से सीखने में दिलचस्पी नहीं है, फिर इसे फिर से जारी करना। ऐसा लगता है कि आरआईएससी आर्किटेक्चर के असेंबली के लिए बेहतर संसाधन हैं, लेकिन दुर्भाग्यवश मेरे पास सीखने के लिए आरआईएससी प्रोसेसर नहीं है। क्या किसी के पास कोई सुझाव है?

उत्तर

10

http://asm.sf.net में x86 के अलावा आर्किटेक्चर पर कुछ सामग्री है।

यदि आप आरआईएससी आर्किटेक्चर में रुचि रखते हैं, तो आप Qemu पर लिनक्स चला सकते हैं। क्यूमु पावरपीसी, एआरएम और एमआईपीएस जैसे कई आरआईएससी आर्किटेक्चर का अनुकरण करता है। आप क्यूमु हार्ड डिस्क छवि here का उपयोग करने के लिए तैयार हो सकते हैं।

आरआईएससी आर्किटेक्चर के साथ प्रयोग करने का एक और तरीका जीडीबी के अंतर्निर्मित सिम्युलेटर का उपयोग करना होगा।

2

शायद The Art of Assembly Language Programming और उस वेबसाइट पर अन्य संसाधनों से कहीं ज्यादा बेहतर नहीं है।

+2

पर एक संभाल पाने की अनुमति देता है ठीक है, लेकिन अगर मैं इसका उपयोग नहीं कर सकता तो एचएलए सीखने का क्या मतलब है? – user87630

+1

और आप इसका उपयोग क्यों नहीं कर सकते? मुफ्त डाउनलोड। किसी भी मामले में, पुस्तक नियमित निर्देश सेट के माध्यम से जाती है, जिसमें आप एचएलए मैक्रोज़ की संरचनाओं को कोड करते हैं, फिर आपको देते हैं। –

+5

मैंने इस पुस्तक को पढ़ना शुरू कर दिया लेकिन इसे मुश्किल से पाया और पाया कि एचएलए रास्ते में आया। यह पुर्तगाली सीखकर स्पेनिश सीखना पसंद था। क्या एफएएसएम का उपयोग करके सिखाने के लिए कोई अच्छी किताबें हैं? –

9

मुझे Assembly language step-by-step बहुत अच्छा संसाधन होने के लिए मिला। इसके पीछे एक खंड है जिसका लक्ष्य लिनक्स असेंबली के लिए भी है।

+1

+1 और लेखक एक नए संस्करण पर काम कर रहे हैं। उन्होंने हाल ही में लिखा था, "अब मैं लगभग 13/3 के माध्यम से अध्याय 9 के माध्यम से, और लगभग 175,000 में 113,000 शब्दों के माध्यम से हूं। इसे 30 जून तक किया जाना है।" अपडेट के लिए http://www.contrapositivediary.com/ देखें। – dwc

0

http://www.emu8086.com आज़माएं जो एक विंडोज़-होस्टेड 8086 एमुलेटर है जो एक असेंबलर और डीबगर के साथ है। यह एक ट्यूटोरियल के साथ आता है।

+3

इसका मतलब विंडोज चलाना होगा। यह पूछने के लिए एक बड़ा त्याग है। –

+1

@ चार्ली मार्टिन "विंडोज़ चलाना" "एक बड़ा बलिदान" मुझे चकित कर दिया। लंबे समय तक लिनक्स और यूनिक्स लाइव! – NlightNFotis

-3

विधानसभा की कला भाषा प्रोग्रामिंग

+3

क्या आपने प्रश्न पढ़ा था? या जवाब? –

0

मैं 8086 के बारे में एक किताब (जो मैं वर्तमान में का नाम याद नहीं कर सकते हैं ... यह स्पष्ट रूप से काफी पुराना है, और बैंगनी था से 86 कोडांतरक सीखा है। यदि आप वास्तव में दिलचस्पी है मैं घर लौटने पर इसे खोद सकता हूं)। यह आपको केवल 16 बिट सामग्री सिखाएगा, अधिक उन्नत 32 बिट सामग्री के लिए मैंने कुछ ट्यूटोरियल ऑनलाइन पढ़े हैं। मैंने कभी 64 बिट नहीं किया है। कम से कम पहले, जिस ओएस को आप लक्षित कर रहे हैं, इससे कोई फर्क नहीं पड़ता, क्योंकि आप बहुत कम स्तर पर हैं ... BIOS वह सब है जिसकी आप वास्तव में परवाह करते हैं। यदि आपके पास परीक्षण प्रणाली तक पहुंच नहीं है, तो एक एमुलेटर शायद एक अच्छा विकल्प है, जैसा कि अन्य ने उल्लेख किया है, लेकिन आप खुद को अलग-अलग हिस्सों से बहुत अधिक परेशानी के बिना 8088 या 8086 बना सकते हैं। आप आसानी से ट्यूटोरियल और सर्किट आरेख ऑनलाइन देख सकते हैं। इसकी कीमत $ 50 से कम होनी चाहिए और यह एक महान सीखने का अनुभव है - आप अनिवार्य रूप से स्क्रैच से मदरबोर्ड का निर्माण कर रहे हैं।

यदि आप x86 असेंबली से बहुत जुड़े नहीं हैं और आरआईएससी सीखना चाहते हैं, तो मैं Microchip पीआईसी माइक्रोकंट्रोलर की सलाह देता हूं। आप $ 50 से कम के लिए स्टार्टर किट चुन सकते हैं (पिकिट 1, जो मेरे पास है, यहां तक ​​कि लिनक्स के तहत भी काम करता है)। उनके पास व्यापक दस्तावेज और शौकिया कलाकारों के उद्देश्य से तीसरे पक्ष के ट्यूटोरियल हैं।

+0

स्टार्टर किट दिलचस्प लगता है। मैं उसमें देख सकता हूँ। धन्यवाद। – user87630

2

असेंबली-स्तर प्रोग्रामिंग सीखने के लिए वास्तव में दो भाग हैं: बुनियादी अवधारणाएं, और फिर विशिष्ट आर्किटेक्चर। यदि आपके पास एएसएम प्रोग्रामिंग के लिए कोई जोखिम नहीं है, तो मैं दृढ़ता से सुझाव देता हूं कि आप मूलभूत, छोटे वास्तुकला के साथ मूलभूत बातें प्राप्त करें, यहां तक ​​कि यह संभवतः किसी भी वास्तविक हार्डवेयर पर लागू नहीं है। यदि कई लोग "आर्ट ऑफ ..." जैसे किसी विशेष संसाधन को इंगित कर रहे हैं, तो इसे एक और नज़र डालें, यह जानने के लिए इसका उपयोग करें कि आर्किटेक्चर क्या है, मूल उपकरण (एएसएम, डीबगर, डिसम इत्यादि) का उपयोग कैसे करें।

एक बार जब वे रास्ते से बाहर हो जाते हैं, तो आप अधिक उन्नत निर्देश सेटों को देखना शुरू कर सकते हैं। X86 आर्किटेक्चर और निर्देश सेट बहुत ही मजबूत हैं और आपके मस्तिष्क को मोड़ने के कई अस्पष्ट तरीके हैं - इससे निपटने से पहले कुछ सरल सीखें।

0

हालांकि कई लोगों को मैं स्कूल में पता है कि इस पुस्तक से नफरत है, मैं इसे वैसे भी लिंक कर दिया जाएगा: क्योंकि यह जीएनयू कोडांतरक के साथ लिनक्स पर 86 का उपयोग करता है

http://www.amazon.com/Professional-Assembly-Language-Programmer/dp/0764579010

मुख्य कारण मैं इस पुस्तक का इस्तेमाल किया है। उस आखिरी बिंदु में मदद मिली क्योंकि मुझे उस स्कूल के प्रयोगशाला में उस असेंबलर का उपयोग करना पड़ा था, और यदि आपको पता नहीं है - सिंटैक्स इंटेल सिंटैक्स से अलग है।

इसके अलावा, मैं यह भी सीखूंगा कि असेंबली भाषा में उच्च स्तर की भाषाओं को कैसे संकलित किया गया है, वास्तव में मुझे आगे बढ़ने में मदद मिली।

1

86 विधानसभा वास्तव में एक इंटेल भाषा, सबसे अच्छा एक इंटेल चिप और जो डॉस

करता आप WinXP की तरह कुछ है, तो एक खिड़कियों मंच के साथ सीखा है वहाँ एक डॉस दुभाषिया जो एक उपयोगकर्ता एएसएम की मूल बातें पता चला हुआ करता था और एक कमांड रिवर्स और वास्तविक समय में कोड में और सुधार करने के लिए एक उपयोगकर्ता है, तो एक ब्लॉक जो दुभाषिया पर चलाया जा सकता है

यह "Ketman दुभाषिया"

यह डॉस के लिए था बुलाया गया था में कोड इकट्ठा की अनुमति दी केवल एएसएम लेकिन यह बहुत ही अद्वितीय था क्योंकि यह आपको देखने देता है कि सभी रजिस्टरों के साथ क्या होता है डी झंडे और एक पूरी तरह से अनजान व्यक्ति को तर्क

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