2012-07-10 23 views
5

मैं विधानसभा में एक ऑपरेटिंग सिस्टम लिखने की कोशिश करना चाहते हैं। कृपया, सिर्फ इतना कहना नहीं है "बेवकूफ, तुम भी है कि के बारे में सोचने के लिए बहुत कुछ% s% s% s% s, आदि में बेहतर करना है।" मैं जानता हूँ कि यह आम तौर पर नहीं है एक जानने-दर-कर बात है और यह काम के महीने का समय लगेगा, लेकिन मैं कोशिश करना चाहता हूँ और अगर मैं एक जवाब यहाँ नहीं मिलता है, मैं सिर्फ कहीं और के लिए कहेंगे। क्या आप कृपया मुझे नस्ल के साथ ट्यूटोरियल शुरू करने के लिए लिंक कर सकते हैं, या असेंबली में एक तरीका, सी कार्यों का उपयोग किए बिना स्क्रीन पर लिख सकते हैं? मैं सभी मुख्य असेंबली निर्देशों को बहुत ज्यादा जानता हूं और मैंने लंबे समय तक कोड किया है। संपादित करें: मैं नासम और win32शुद्ध विधानसभा - कोई भी लिंक सी कार्यों

+0

www.codeproject.com खोज मैं एक बार याद है कि मैं एक बूट लोडर लिखने के बारे में एक अच्छा लेख पढ़ लिया है की कोशिश करो। – valdo

+0

http://wiki.osdev.org/Printing_to_Screen – cnicutar

+0

या BIOS का उपयोग http://wiki.osdev.org/BIOS#BIOS_functions –

उत्तर

1

सी फ़ंक्शंस या सिस्टम कॉल का उपयोग किए बिना ऐसा करने का एकमात्र तरीका है कि आपका असेंबली कोड किसी अन्य ऑपरेटिंग सिस्टम के बिना चलाए, या बोच या क्यूईएमयू जैसे एमुलेटर के अंदर चलाएं।

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

एक अलग रूप में के रूप में, osdev.org कई अच्छे लेख और ट्यूटोरियल, कैसे विधानसभा में कोड लिखने के लिए, ऑपरेटिंग सिस्टम के विकास के विभिन्न पहलुओं के लिए पर कई सहित शामिल हैं।

2

ऊपर अन्य उत्कृष्ट सुझाव इसके अलावा, वहाँ एक एनएएसएम फोरम (और आप एनएएसएम और मिलनसार मैनुअल के हाल के संस्करणों प्राप्त कर सकते हैं) पर:

http://www.nasm.us

यह अजीब लग सकता है कि "Netwide" कोडांतरक इसके मुखपृष्ठ में एक देश कोड है। इसे "संयुक्त राज्य" के रूप में मत सोचो, इसके बारे में सोचें "जैसे, नासम हमें, दोस्त!" :)

के बाद से BIOS बीच में आता है उपलब्ध एक बार आप pmode करने के लिए स्विच नहीं होगा, यह कैसे हार्डवेयर सीधे उपयोग करने के लिए सीखने के लिए समझ में आता है। स्क्रीन पर लिखना शुरू करना एक आसान है। आपको यह जानने की जरूरत है कि "स्क्रीन" आमतौर पर 0xB800000 (बी 800000000 सेगमेंट में है: ऑफसेट फॉर्म - जिसे आपको शायद आवश्यकता होगी)। आप लेआउट की जानकारी होनी चाहिए एक (यहां तक ​​कि गिने) चरित्र के लिए बाइट और एक (विषम क्रमांकित) "विशेषता" (रंग, अधिकतर) के लिए बाइट है। भले ही आप इंटरप्ट्स का उपयोग नहीं कर रहे हैं, आरबीआईएल में "पोर्ट्स.एलस्ट" भी शामिल है जो आपको उपयोगी हो सकता है। और जैसा ऊपर बताया गया है, osdev.org आपका नया सबसे अच्छा दोस्त है!

मुबारक Bootin ',

फ्रैंक

0

Nick Morgan का हवाला देते हैं करने के लिए, जिनके साथ मैं इस बात से सहमत:

ठीक है, मुझे नहीं लगता कि सीखने 86 उपयोगी है। मुझे नहीं लगता कि आपको कभी भी अपने दिन की नौकरी में असेंबली भाषा लिखनी पड़ेगी - यह [सीखने वाला असेंबलर] पूरी तरह से एक अकादमिक अभ्यास है, जो आपके दिमाग और आपकी सोच को विस्तारित करने के लिए कुछ है। 6502 [एक असेंबली भाषा] एक अलग उम्र में लिखी गई थी, एक समय जब अधिकांश डेवलपर्स इन नई-गले वाली उच्च स्तरीय प्रोग्रामिंग भाषाओं की बजाय सीधे असेंबली लिख रहे थे। तो, यह मनुष्यों द्वारा लिखे जाने के लिए डिज़ाइन किया गया था। अधिक आधुनिक असेंबली भाषाएं कंपाइलर्स द्वारा लिखी गई हैं, इसलिए चलो इसे छोड़ दें। इसके अलावा, 6502 मजेदार है। किसी ने कभी भी x86 मज़ा नहीं कहा।

मैं वर्तमान में भी मनोरंजन के लिए एक "ऑपरेटिंग सिस्टम" लिख रहा हूँ, DCPU-16 assembly language में (आप इसके बारे में सुना हो सकता है)। यह मजेदार है क्योंकि मैं कई उपलब्ध ब्राउज़र में "आईडीई" का उपयोग कर सकता हूं, जैसे this one, और मुझे लगता है कि x86 असेंबली के लिए आपको समझने की आवश्यकता होगी।

+0

लेकिन x86 भी उस समय डिज़ाइन किया गया था जब लोग हाथ से असेंबली लिखते थे, केवल 3 साल 6502. – harold

+0

हाँ के बाद, मुझे लगता है कि वह क्या कहने की कोशिश कर रहा है कि, वर्षों से, यह उस चीज़ के लिए विकसित हुआ जो अब हाथ से लिखा नहीं है :) – fresskoma

+0

वैसे यह एक और मान्य बिंदु है, मैं कहूंगा पीपीआरओ के साथ शुरू हुआ, लेकिन आईएमओ जो एसएसई को पी 3 के साथ पेश किया गया था, एक दशक से भी अधिक समय बाद मुझे एक कंपाइलर देखना है जो नियमित आधार पर इसका उचित उपयोग करता है, बजाय एक बार दुर्घटना से । – harold