2009-07-20 14 views
16

सीखना कैसे शुरू करूं मैं अपने मैक पर कुछ असेंबली लिखने के साथ खेलना चाहता हूं, आदर्श रूप से देशी, लेकिन मुझे समझ में आता है कि क्यूईएमयू या कुछ में सीखना आसान है या नहीं।मैं विधानसभा

मुझे लगता है कि प्रोसेसर के आधार पर असेंबली की अलग-अलग बोलीयां हैं - सीखने के लिए बोली क्या है?

मुझे वास्तव में कोई विचार नहीं है कि कहां से शुरू करना है, किसी भी पॉइंटर्स को असेंबली में प्रोग्राम कैसे चलाया जाए?

उत्तर

1

ठीक है, भले ही कुछ लोग वहां "सर्वश्रेष्ठ" असेंबली कहें, मैं X86/X86-64 सीखने की सलाह दूंगा क्योंकि यह सबसे व्यापक रूप से उपयोग किया जाता है। प्रोग्राम चलाने के लिए, आप इसे जीसीसी का उपयोग बाइनरी में अनुवाद करने के लिए कर सकते हैं और फिर इसे अपने कंसोल के माध्यम से चला सकते हैं।

14

मेरा सुझाव है कि वहां सबसे अच्छा असेंबलर निर्माता के साथ कार्य करें: जीसीसी।

सी में सरल प्रोग्राम लिखें और फिर उन्हें -एस स्विच के साथ संकलित करें। आपको एक फाइल.s मिलेगा जिसमें असेंबलर कोड होगा। इसके साथ टिंकर और आप इसे सीखेंगे। सबसे अच्छा हिस्सा यह है कि यदि आप एक अलग असेंबलर सीखना चाहते हैं, तो आप क्रॉस कंपाइलर के रूप में जीसीसी को संकलित कर सकते हैं, और किसी भी समर्थित प्लेटफॉर्म के लिए असेंबलर का उत्पादन कर सकते हैं।

-O0 के साथ अनुकूलन अक्षम करना याद रखें, अन्यथा आपको अजीब चाल मिल सकती हैं।

यह हैलो कोडांतरक

.cstring 
LC0: 
    .ascii "hello world!\0" 
    .text 
.globl _main 
_main: 
    pushl %ebp 
    movl %esp, %ebp 
    pushl %ebx 
    subl $20, %esp 
    call L3 
"L00000000001$pb": 
L3: 
    popl %ebx 
    leal LC0-"L00000000001$pb"(%ebx), %eax 
    movl %eax, (%esp) 
    call L_puts$stub 
    movl $0, %eax 
    addl $20, %esp 
    popl %ebx 
    leave 
    ret 
    .section __IMPORT,__jump_table,symbol_stubs,self_modifying_code+pure_instructions,5 
L_puts$stub: 
    .indirect_symbol _puts 
    hlt ; hlt ; hlt ; hlt ; hlt 
    .subsections_via_symbols 
+0

यह ऐसा करने का एक उपयोगी तरीका लगता है। मैं .s फ़ाइल को बाइनरी में कैसे बदलूं? Gcc hello.s के साथ –

+1

:) –

+0

क्या डीबगिंग सूचनाएं (परिवर्तनीय नाम इत्यादि) रखती है? –

2

में दुनिया है कुछ (ठीक कई) साल पहले मैं विधानसभा http://www.amazon.com/Assembly-Language-Primer-Personal-Computer/dp/0136619010 पर पीटर नॉर्टन की पुस्तक का चुनाव किया। पीसी के लिए असेंबली प्रोग्रामिंग शुरू करने का यह शानदार तरीका था। मुझे आश्चर्य है कि क्या आप अभी भी इसे प्राप्त कर सकते हैं और इसके माध्यम से काम करने के लिए डॉसबॉक्स का उपयोग कर सकते हैं।

0

मैंने एमआईपीएस सीखा और एसपीआईएम में "कंप्यूटर संगठन" पर एक कक्षा के लिए परीक्षण किया।

सुनिश्चित नहीं है कि this book काम करेगा, लेकिन यह एक शॉट के लायक हो सकता है। हमने प्रोफेसर द्वारा लिखित एक "पुस्तक" (एक ट्यूटोरियल की तरह और वास्तव में चीटशीट की तरह) का उपयोग किया, इसलिए यह अन्यथा अनुपलब्ध है।

0

असेंबली कोड में बढ़ने वाले समुदायों के साथ शामिल हों। दिमाग में आने वाला पहला डेमोसीन है। एक के लिए, productions released for x86 Macs on pouet.net देखें। सक्रिय समूहों में कुछ कोडर के संपर्क में रहने का प्रयास करें। उनमें से कुछ विचारों और कोड को साझा करने के इच्छुक हो सकते हैं और यहां तक ​​कि आप खुद को लिखने के लिए प्रेरित भी हो सकते हैं।

इस तरह मैं दिन में वापस शुरू हुआ, लेकिन अटारी 8-बिट पर।

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