2009-03-15 17 views
9

मेरी असेंबली भाषा कक्षा के लिए, हम डीपीएमआई का उपयोग कर डॉस प्रोग्राम लिख रहे हैं। दुर्भाग्यवश, मेरे पास हर समय 32-बिट विंडोज मशीन तक पहुंच नहीं है। मेरे पास उपयोग किए जाने वाले प्रत्येक कंप्यूटर पर एक डेबियन आभासी मशीन स्थापित है।मैं डेबियन पर डॉस प्रोग्राम कैसे संकलित करूं?

मुझे डॉसबॉक्स और डॉसमेयू दोनों स्थापित हैं। क्या कोई तरीका है कि मैं डीओएस की बजाय लिनक्स में प्रोग्राम इकट्ठा और संकलित कर सकता हूं? मैं नासम का उपयोग कर रहा हूं, इसलिए मुझे लगता है कि इसे डीओएस प्रारूप में इकट्ठा करने में कोई समस्या नहीं है। हालांकि, मुझे अपने सी कोड के साथ कंपाइलर के माध्यम से इसे चलाने में परेशानी हो रही है और एक डॉस निष्पादन योग्य हो रहा है (या तो जीसीसी या मिनजीडब्ल्यू का उपयोग कर)।

क्या ऐसा करने का कोई तरीका है या क्या मुझे डॉस के तहत सभी टूल्स इंस्टॉल करना होगा?

+0

आपको शायद अपने डॉस वीएम में टूल श्रृंखला को मजबूर करना होगा। मुझे पता है, वह बेकार है। +1 और पसंदीदा, मुझे आशा है कि इसका अच्छा जवाब मिल जाएगा। –

+0

डॉसबॉक्स में एमएएसएम का उपयोग करने का प्रयास करें ... – 23ars

उत्तर

7

मुझे यह भी सुनिश्चित नहीं है कि आप जीसीसी का उपयोग कर डीओएस अनुप्रयोगों को संकलित कर सकते हैं या नहीं। बहुत समय पहले एक जीसीसी कंपाइलर-वेरिएंट था जिसे डीजेजीपीपी (या ऐसा कुछ) कहा जाता था। हालांकि मैंने इसे कभी काम नहीं किया।

संभावना है कि आप इन दिनों डॉस के लिए जीसीसी को पार-संकलित कर सकते हैं, लगभग शून्य हैं।

मेरा सुझाव है कि आप पुराने वाटकॉम कंपाइलर को आज़माएं। यह एक मूल डॉस कंपाइलर है और इसका डीपीएमआई कार्यान्वयन डॉसबॉक्स के तहत एक आकर्षण की तरह काम करता है। NASM संकलित ऑब्जेक्ट फ़ाइलों के साथ इंटरफ़ेसिंग कोई समस्या नहीं है (मैंने इसे कुछ वर्षों तक किया है)

आज संकलक को ओपन सोट बनाया गया है और ओपनवाटॉम कहा जाता है।

http://www.openwatcom.org/index.php/Main_Page

+0

डीजेजीपीपी हम विंडोज़ में डीओएस प्रोग्राम संकलित करने के लिए उपयोग कर रहे हैं, लेकिन यह बाहरी विंडोज (यहां तक ​​कि डॉस के तहत) स्थापित करने के लिए एक पूर्ण और कुल पिटा है। –

+1

मैंने इसे i586-pc-msdosdjgpp-gcc के रूप में स्थापित किया है और '--cross-prefix = i586-pc-msdosdjgpp-' का उपयोग करके इसके साथ क्रॉस-कंपाइलिंग नहीं किया है। बस डीओएस के लिए FFmpeg संकलित (बस मस्ती के लिए) है। –

3

शायद सबसे आसान आप के लिए जाने का रास्ता कार्य के लिए मानक डॉस उपकरणों का उपयोग करने के लिए है।

DOSBOX वास्तव में एक अच्छा एमुलेटर है।

7

BCC डेबियन में है, और 8080 से 80386 के लिए सभ्य कोड बनाने में सक्षम है। -Md का उपयोग एमएस-डॉस बाइनरी बनाने के लिए स्विच करें।

2

DJGPP स्थापित करने के लिए हास्यास्पद आसान है, न्यूनतम केवल तीन .ZIPs की जरूरत है:

  1. BNU219B.ZIP (कोडांतरक, लिंकर, लाइब्रेरियन)
  2. GCC441B.ZIP (सी संकलक)
  3. DJDEV204.ZIP (libc, हेडर)

http://www.delorie.com/djgpp/getting.html

unzip *.zip -d c:\djgpp && 
set DJGPP=c:\djgpp\djgpp.env && 
path c:\djgpp\bin;%PATH% 

gcc myfile.c -o myfile.exe 

डॉस-संगत आउटपुट का उत्पादन करने के लिए, आपको या तो डॉसमेयू में डॉस-होस्टेड कंपाइलर का उपयोग करना होगा (डॉसबॉक्स नहीं !! रास्ता बहुत धीमा और छोटी गाड़ी, केवल गेम के लिए है) या लिनक्स-होस्टेड क्रॉस कंपाइलर का उपयोग करें (डीजे की साइट के लिए आरपीएम है)।

हालांकि, अगर आप 100% 16-बिट कोड चाहते हैं, तो आपको कुछ और (उदाहरण के लिए OpenWatcom) का उपयोग करना होगा। ओपनवाटॉम भी लिनक्स (बीटा !!) होस्ट और लक्ष्य (कोई साझा libs, हालांकि, आईआईआरसी) का समर्थन करता है, लेकिन आपको इसे स्वयं जीसीसी के साथ संकलित करना पड़ सकता है।

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