2015-08-26 3 views
21

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

  1. मुझे बताया गया है कि यह तुलना में किताबों से इंटरनेट से विधानसभा जानने के लिए बेहतर है, क्योंकि विधानसभा आपके हार्डवेयर पर निर्भर करता है और किताबें ज्यादातर पुराने हो गए हैं:

    यहाँ सवाल कर रहे हैं। क्या यह सच है?

  2. मुझे 64 बिट सीपीयू मिला है और मैं एफएएसएम का उपयोग कर रहा हूं (या कम से कम उपयोग करने की कोशिश कर रहा हूं)। मुझे आवश्यक दस्तावेज कहां मिलेंगे?

  3. मैं पूरी तरह उलझन में हूं क्योंकि मैंने देखा है कि अधिकांश ट्यूटोरियल मेरे लिए भी काम नहीं करते हैं। क्या हार्डवेयर अंतरों की वजह से यह है? मैं सही ट्यूटोरियल कैसे ढूंढूं?

  4. क्या मैं अपने 64 बिट कंप्यूटर पर x86 और x32 असेंबली चला सकता हूं?

  5. क्या आप कृपया बहुत दयालु हो सकते हैं और टिप्पणियों में टूटने के साथ मुझे असेंबली (जो मेरे पीसी पर काम करता है) में एक साधारण कार्यक्रम लिख सकता है? मैं अपने इंटेल कोर i5 CPU पर 64 बिट विंडोज 10 चला रहा हूं। कृप्या।

+0

आप सी में सरल प्रोग्राम लिख सकते हैं, और सी कंपाइलर आउटपुट असेंबली स्रोत कोड है। आधार के रूप में उनका प्रयोग करें। यदि आपने विंडोज या लिनक्स के कुछ संस्करण पर चल रहे हैं तो आपने इसका उल्लेख नहीं किया है। विंडोज के मामले में, आप विंडोज़ के 64 बिट संस्करणों पर 32 बिट प्रोग्राम चला सकते हैं, लेकिन 16 बिट प्रोग्राम नहीं चला सकते हैं। 64 बिट संस्करणों के लिए, आप वर्चुअल पीसी या शायद डॉसबॉक्स की तरह कुछ उपयोग कर सकते हैं। – rcgldr

+0

यदि आपके पास विंडोज 7 या बाद में है, तो आप डेस्कटॉप एक्सप्रेस 2015 के लिए विजुअल स्टूडियो मुफ्त में प्राप्त कर सकते हैं। इसमें 32 बिट (ml.exe) और 64 बिट (ml64.exe) के लिए असेंबलर और एक अच्छा स्रोत स्तर डीबगर शामिल है। – rcgldr

उत्तर

25

मुझे लगता है कि यह एक वैध सवाल है। असेंबलर पर अद्यतित जानकारी ढूंढना थोड़ा मुश्किल हो सकता है।

  1. हां। बहुत से संसाधन मुद्रित और ऑनलाइन i386 (x86) असेंबलर का वर्णन करते हैं और न कि नया amd64 (x86_64)। कई चीजें बदल गई हैं, उदा। कार्य तर्कों को ढेर पर पारित किया जाता था लेकिन अब वे रजिस्टरों में पास किए जाते हैं। यह यूनिक्स और विंडोज दोनों पर लागू होता है।

    मूल रूप से, सुनिश्चित करें कि आप 64-बिट असेंबली पढ़ रहे हैं।

  2. online manual का प्रयास क्यों न करें। ध्यान दें कि जब साधारण सामान की बात आती है तो असेंबलर्स अलग नहीं होते हैं।

  3. मेरे पास विंडोज नहीं है लेकिन यदि आपको किसी विशिष्ट कार्यक्रम में परेशानी हो रही है, तो आप इसके बारे में यहां पूछ सकते हैं। आपको वास्तविक असफल कार्यक्रम पोस्ट करने की आवश्यकता होगी।

  4. हां लेकिन आपको 32-बिट पुस्तकालयों के खिलाफ इसे लिंक करना होगा और Win32 API के 32-बिट संस्करण का उपयोग करना होगा। लेकिन अगर आप शुरू कर रहे हैं, तो 1 9 80 के दशक में जब आप आधुनिक निर्देश सेट के साथ काम कर सकते हैं तो कार्यक्रम क्यों?

  5. this आज़माएं।

इसके अलावा, यदि आप विधानसभा में प्रोग्रामिंग जा रहे हैं, मैं दृढ़ता से आप एक डिबगर मिल सलाह देते हैं। मैं जीडीबी का उपयोग करता हूं जो विंडोज़ पर अच्छी तरह से काम करता है और मुफ़्त है, आपको विजुअल स्टूडियो डीबगर का उपयोग करना पड़ता है जो शानदार है।

+0

पुराने दिनों में मुझे डीबगिंग के बिना डीबगिंग याद है। यह बहुत कम कुशल है लेकिन अभी भी बहुत ही कामयाब था। –

+0

@ माइकलपेट मैंने इसे भी किया है लेकिन महान मुफ्त डिबगर्स उपलब्ध होने पर इसकी अनुशंसा नहीं करेंगे। – jforberg

+1

डीबगर का उपयोग न करने का लाभ यह है कि सीखने की असेंबली के परीक्षण और त्रुटि विधि (डीबगर्स उस के लिए बहुत अच्छे हैं) का उपयोग करने के बजाय, आपको किसी विशेष वास्तुकला के लिए असेंबली भाषा की बेहतर समझने के लिए मजबूर होना पड़ता है। इन दिनों मैं एसओ पर असेंबली भाषा के सवालों का जवाब देता हूं और इसे स्वयं कोशिश करने और संकलित करने के लिए समय लेने के बजाय मैं आम तौर पर बग के लिए दृष्टि से कोड का निरीक्षण करता हूं। अगर मेरे पास किसी ऐसे व्यक्ति को भर्ती करने के बीच कोई विकल्प था जो डीबगर के बिना डीबग नहीं कर सकता है और जो कोई कर सकता है (मान लीजिए कि सब कुछ बराबर है) मैं बाद वाले को चुनूंगा। –

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