यह कमांड क्रैसम है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे कि उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।
कार्यक्रम:
नाम
क्रैसम - 6800/6801/6803/6502/65C02/Z80 के लिए क्रॉस असेंबलर
SYNOPSIS
क्रैस्म [-ओर कोडफ़ाइल] [-एसएलएक्स] asmfile
माइक्रोप्रोसेसर प्रोग्राम को असेंबल करें asmfile और आउटपुट फ़ाइल तैयार करें कोडफ़ाइल इंटेल हेक्स में
या मोटोरोला एस कोड प्रारूप। एक प्रोग्राम सूची और एक प्रतीक तालिका भी इस पर तैयार की जाती है
मानक आउटपुट. का वर्तमान संस्करण क्रैस्म के लिए प्रोग्राम असेंबल कर सकते हैं 6800, 6801,
6803, 6502, 65, और Z80 प्रोसेसर. जब आप आह्वान करते हैं तो पूरी सूची मुद्रित होती है क्रैस्म
बिना तर्क के।
विकल्प
-o कोडफ़ाइल
आउटपुट फ़ाइल का नाम निर्दिष्ट करें. इसके बिना कोई भी आउटपुट फ़ाइल तैयार नहीं होती है
विकल्प.
-s चेतावनियां अक्षम करें।
-l प्रोग्राम लिस्टिंग आउटपुट अक्षम करें.
-x प्रतीक तालिका आउटपुट अक्षम करें.
वाक्य - विन्यास
असेंबली प्रोग्राम की प्रत्येक पंक्ति को निम्नलिखित टेम्पलेट्स में से एक का पालन करना चाहिए, जहां
कोष्ठक वैकल्पिक भागों का परिसीमन करते हैं।
[;टिप्पणी]
लेबल = अभिव्यक्ति [;टिप्पणी]
[लेबल] स्मृति सहायक ओपेरंड [;टिप्पणी]
टिप्पणियाँ अर्धविराम द्वारा प्रस्तुत की जाती हैं (;) और पंक्ति के अंत तक विस्तारित करें। लेबल हैं
36 अल्फ़ान्यूमेरिक वर्णों (अवधि और अंडरस्कोर सहित) वाले पहचानकर्ता।
लेबल किसी अंक से प्रारंभ नहीं हो सकते. निमोनिक्स और ऑपरेंड फ़ील्ड का प्रारूप निर्भर करता है
चयनित माइक्रो-प्रोसेसर पर. कुछ निमोनिक्स सभी प्रोसेसरों के लिए मान्य हैं और हैं
एकत्रित लोगों को निर्देश देने के लिए उपयोग किया जाता है। इन्हें "छद्म-स्मृतिविज्ञान" के रूप में जाना जाता है।
लेबल
लेबल प्रतिनिधित्व करने वाले पहचानकर्ता हैं
- एक पूर्ण पता,
- एक सापेक्ष पता (स्थिति स्वतंत्र कोड),
- एक रजिस्टर,
- रजिस्टरों की एक सूची,
- एक विशिष्ट पते पर एक विशिष्ट बिट,
- या एक स्मरणीय।
अधिकांश लेबल अधिकतम 36 अल्फ़ान्यूमेरिक वर्णों, अवधियों से बने होते हैं (.) या
अंडरस्कोर (_). लेबल किसी अंक से प्रारंभ नहीं हो सकते. वे केस असंवेदनशील हैं.
किसी अवधि से शुरू होने वाले लेबल (.) स्थानीय लेबल हैं जिनका दायरा या तो सीमित है
मैक्रो जिसमें उन्हें परिभाषित किया गया है, या छद्म-स्मृति विज्ञान द्वारा सीमांकित कोड खंड तक
कोड or डमी.
पूर्वनिर्धारित "स्टार" लेबल (*) वर्तमान प्रोग्राम काउंटर का प्रतिनिधित्व करता है, अर्थात,
वह पता जहां अगला असेंबली कोड निर्देश एन्कोड किया जाएगा। अन्य पूर्वनिर्धारित
लेबल में सभी छद्म निमोनिक्स, माइक्रो-प्रोसेसर विशिष्ट निमोनिक्स और रजिस्टर शामिल हैं
नाम।
स्थिरांक
इकट्ठे दशमलव, हेक्साडेसिमल, ऑक्टल, में व्यक्त संख्यात्मक स्थिरांक को पहचानता है
बाइनरी, या एएससीआई।
┌────────────────────────────────── ────────── ─────────┐
│प्रकार का गठन उदाहरण │
├────────────────────────────────── ────────── ─────────┤
│दशमलव dddd 1234, 675, 12, 1, लेकिन नहीं 0.12. │
├────────────────────────────────── ────────── ─────────┤
│हेक्साडेसिमल $dddd $fd12, $2एसी, $0. │
│ ddddH 03H, 2da7H, 0एफसी84एच, लेकिन नहीं FC84H. │
│ 0Xdddd 0x03, 0x2एसी, 0एक्सएफसी84. │
├────────────────────────────────── ────────── ─────────┤
│ऑक्टल ddddQ 377Q, 012412Q. │
├────────────────────────────────── ────────── ─────────┤
│बाइनरी %dddd 01110110%, 1100%. │
│ ddddB 01110110B, 1100B. │
│ 0Bdddd 0b1100 │
├────────────────────────────────── ────────── ─────────┤
│ascii 'CCCC' 'ए', 'एबी', '"', '\n', '\''. │
│ "CCCC" "\टी", "\"", "अब". │
└────────────────────────────────── ────────── ─────────┘
एक्सप्रेशंस
लेबल की तरह, अभिव्यक्तियाँ एक पूर्ण पते का प्रतिनिधित्व कर सकती हैं (पेट), के लिए एक सापेक्ष पता
स्थिति स्वतंत्र कोड (रिलायंस एनर्जी), एक रजिस्टर (REG), या रजिस्टरों की एक सूची (पुनः सूचीबद्ध करें), या ए
एक विशिष्ट पते पर एक विशिष्ट बिट का संदर्भ (bspec).
निम्नलिखित ऑपरेटरों को भावों पर पहचाना जाता है।
┌────────────────────────────────── ────────── ──────────┐
│वाक्य - विन्यास परिणाम Description │
├────────────────────────────────── ────────── ──────────┤
│ पेट{पेट} bspec बिट संदर्भ, उदा पिया{3} │
│ एडीडीआर(पेट) पेट एक बिट संदर्भ से पता │
│ अंश(पेट) पेट बिट संदर्भ से बिट संख्या │
├────────────────────────────────── ────────── ──────────┤
│ - पेट पेट दो का पूरक │
│ ~ पेट पेट किसी का पूरक │
├────────────────────────────────── ────────── ──────────┤
│ पेट << पेट पेट बाईं ओर शिफ्ट │
│ पेट >> पेट पेट सही बदलाव │
├────────────────────────────────── ────────── ──────────┤
│ पेट | पेट पेट बिटवाइज़ या │
│ पेट & पेट पेट बिटवाइज़ और │
│ पेट ^ पेट पेट बिटवाइज़ xor │
├────────────────────────────────── ────────── ──────────┤
│ पेट * पेट पेट गुणन │
│ पेट * पेट पेट विभाजन │
├────────────────────────────────── ────────── ──────────┤
│ पेट + पेट पेट जोड़ │
│ रिलायंस एनर्जी + पेट रिलायंस एनर्जी जोड़ │
│ पेट - पेट पेट घटाव │
│ रिलायंस एनर्जी - पेट रिलायंस एनर्जी घटाव │
│ रिलायंस एनर्जी - रिलायंस एनर्जी पेट घटाव │
├────────────────────────────────── ────────── ──────────┤
│ REG - REG पुनः सूचीबद्ध करें रजिस्टर रेंज │
│ पुनः सूचीबद्ध करें \ REG पुनः सूचीबद्ध करें रजिस्टर सूची │
└────────────────────────────────── ────────── ──────────┘
तालिका घटती प्राथमिकता के क्रम में ऑपरेटरों को सूचीबद्ध करती है। कोष्ठक का उपयोग किया जा सकता है
अस्पष्टताओं से बचें. जब संपूर्ण अभिव्यक्ति को घेर लिया जाता है तो एक चेतावनी उत्पन्न होती है
कोष्ठक और इसे माइक्रो-प्रोसेसर एड्रेसिंग मोड के साथ भ्रमित किया जा सकता है।
उदाहरण:
(आधार+$12) >> 8 & 0xff00
'ए'-80एच
(आधार+0x12)
अंतिम उदाहरण एक चेतावनी का कारण बनता है क्योंकि कोष्ठक आवश्यक नहीं थे और हो सकते हैं
एक माइक्रो-प्रोसेसर एड्रेसिंग मोड का सुझाव दें।
सभी अंकगणितीय अभिव्यक्तियों का मूल्यांकन 32 बिट्स पर किया जाता है। अंकगणितीय संक्रियाएँ अतिप्रवाह
दिल ही दिल में। फिर अंकगणितीय मानों को सूक्ष्म द्वारा निहित आकार में छोटा कर दिया जाता है-
प्रोसेसर स्मरणीय. यह काट-छाँट चेतावनी संदेश का कारण बन सकती है.
उदाहरण: निम्नलिखित सभी निर्देश
(6502) lda # $ 1234
(6800) एलडीए $1234,x
(जेड 80) ld (ix+0C2H),बी
चेतावनी दीजिये
>>> चेतावनी: ओपेरंड बाढ़
हालाँकि अभिव्यक्ति
$1123454 * 1298992
चुपचाप बह जाता है.
छद्म-स्मृतिविज्ञान
निम्नलिखित छद्म-स्मृति विज्ञान को हमेशा पहचाना जाता है।
सी पी यू cpuname
चयनित माइक्रो-प्रोसेसर प्रकार को इंगित करता है। इसे अनु माइक्रो के समक्ष प्रस्तुत होना चाहिए-
प्रोसेसर विशिष्ट निर्देश. के संभावित मान cpuname सूचीबद्ध हैं जब आप
आह्वान क्रैस्म बिना तर्क के. वर्तमान सूची में शामिल हैं 6800, 6801, 6803, 6502,
65, और Z80
आउटपुट बिनफॉर्मेट
आउटपुट फ़ाइल का प्रारूप इंगित करता है. तर्क बिनफॉर्मेट मान ले सकते हैं स्कोड
मोटोरोला के एस कोड का उपयोग करके आउटपुट फ़ाइल बनाने के लिए, या HEX इंटेल के हेक्स के लिए
प्रारूप। डिफ़ॉल्ट चयनित माइक्रो-प्रोसेसर पर निर्भर करता है.
कोड
स्थानीय लेबल के दायरे को सीमित करें और एक प्रोग्राम अनुभाग पेश करें।
डमी स्थानीय लेबल के दायरे को सीमित करें और एक नकली प्रोग्राम अनुभाग पेश करें जिसका एकमात्र
प्रभाव कोड उत्पन्न किए बिना लेबल को परिभाषित करना है।
लेबल समान अभिव्यक्ति
लेबल = अभिव्यक्ति
लेबल का मान परिभाषित करें लेबल. इन निर्देशों का उपयोग करके लेबल परिभाषित किए जा सकते हैं
बाद में कार्यक्रम में पुनः परिभाषित किया गया।
[लेबल] DB अभिव्यक्ति[,...,अभिव्यक्ति]
निर्दिष्ट डेटा बाइट्स (8 बिट्स) डालें।
[लेबल] DW अभिव्यक्ति[,...,अभिव्यक्ति]
निर्दिष्ट डेटा शब्द (16 बिट्स) डालें। बाइट ऑर्डरिंग पर निर्भर करता है
चयनित माइक्रो-प्रोसेसर.
[लेबल] DL अभिव्यक्ति[,...,अभिव्यक्ति]
निर्दिष्ट डेटा लम्बाई (32 बिट्स) डालें। बाइट ऑर्डरिंग पर निर्भर करता है
चयनित माइक्रो-प्रोसेसर.
[लेबल] DDB अभिव्यक्ति[,...,अभिव्यक्ति]
निर्दिष्ट डबल बाइट्स (16 बिट्स) डालें। बाइट क्रम इसके विपरीत है
चयनित माइक्रो-प्रोसेसर के लिए सामान्य बाइट ऑर्डरिंग।
[लेबल] ASC stringconstant
स्ट्रिंग का एएससीआई प्रतिनिधित्व सम्मिलित करें stringconstant . स्ट्रिंग होनी चाहिए
दोहरे उद्धरण चिन्हों द्वारा सीमांकित। सी एस्केप सीक्वेंस \r, \n, \t, \0, \', \", तथा \\
मान्यता प्राप्त हैं।
[लेबल] DS काउंटएक्सपीआर,[वैलएक्सपीआर]
निरीह काउंटएक्सपीआर मूल्य के साथ बाइट्स वैलएक्सपीआर. डिफ़ॉल्ट मान शून्य है।
[लेबल] संरेखित करें यहां तक कि
[लेबल] संरेखित करें विषम
प्रोग्राम को सम या विषम बनाने के लिए एक शून्य बाइट डालें।
IF condexpr
...
और
...
ईएनडीसी
सशर्त संयोजन: यदि अभिव्यक्ति condexpr गैर शून्य है, स्थित लाइनों की प्रक्रिया करें
के बीच IF और और छद्मस्मृति विज्ञान। अन्यथा स्थित लाइनों को संसाधित करें
के बीच और और ईएनडीसी छद्मस्मृति विज्ञान। सशर्त संयोजन निर्देश
नेस्ट किया जा सकता है. और भाग छोड़ा जा सकता है.
लेबल मैक्रो
...
ईएनडीएम
एक नवीन स्मृति चिन्ह को परिभाषित करें लेबल के बीच स्थित सभी निर्देशों के बराबर
मैक्रो और ईएनडीएम छद्मस्मृति विज्ञान। मैक्रो के आह्वान की एक सूची निर्दिष्ट कर सकते हैं
अल्पविराम से अलग किए गए ऑपरेंड। चरित्र क्रम \1, \2, ... \N मैक्रो में
परिभाषा को आपूर्ति किए गए ऑपरेंड द्वारा प्रतिस्थापित किया जाता है। वर्ण क्रम \0 is
आपूर्ति किए गए ऑपरेंड की संख्या द्वारा प्रतिस्थापित।
बाहर निकलें
मैक्रो से बाहर निकलने के लिए इस छद्म स्मरणीय का उपयोग मैक्रो परिभाषा के अंदर किया जा सकता है। यह
सशर्त असेंबली छद्म-स्मृति विज्ञान के संयोजन में उपयोगी है।
शामिल फ़ाइल का नाम
असेंबलर को नामित फ़ाइल को संसाधित करने के लिए बाध्य करें फ़ाइल का नाम वर्तमान बिंदु पर.
सूची ON
सूची बंद
किसी सूची का उत्पादन सक्षम या अक्षम करें (डिफ़ॉल्ट चालू है।)
क्लिस्ट ON
क्लिस्ट बंद
की गैर सक्रिय शाखाओं के लिए सूची का उत्पादन सक्षम या अक्षम करें
सशर्त असेंबली निर्माण (डिफ़ॉल्ट चालू है।)
आईलिस्ट ON
आईलिस्ट बंद
सम्मिलित फ़ाइलों के लिए सूची का उत्पादन सक्षम या अक्षम करें (डिफ़ॉल्ट बंद है।)
एमएलआईएसटी ON
एमएलआईएसटी बंद
मैक्रो विस्तार के लिए सूची के उत्पादन को सक्षम या अक्षम करें (डिफ़ॉल्ट है
बंद।)
गुटनिरपेक्ष आंदोलन शीर्षक
नाम बताएं शीर्षक लिस्टिंग पेजों के शीर्षलेख के लिए.
पृष्ठ
एक नया लिस्टिंग पेज प्रारंभ करें.
पृष्ठ कॉलम,पंक्तियाँ
लिस्टिंग पृष्ठ का आकार निर्दिष्ट करें.
छोड़ें संख्या
स्किप संख्या लाइनों।
असफल message
एक त्रुटि संदेश उत्पन्न करें message.
उदाहरण
यहाँ एक छोटा सा 6502 प्रोग्राम है:
सीपीयू 6502
अदालत = $फेड ; प्रदर्शन a चरित्र
* = $300 ; इकट्ठा at $300
कोड
pstring एलडीआई #0
.1 lda संदेश, वाई
बीक्यू .2
जेएसआर अदालत
इन की
.2 bne .1
rts
message कृषि सेवा केंद्र "यह is la message "
कोड
क्रेडिट
लियोन बोटौ, सितंबर 1987।
onworks.net सेवाओं का उपयोग करके ऑनलाइन क्रैस्म का उपयोग करें