विधानसभा निर्देश (आमतौर पर) ऑपकोड के लिए प्रत्यक्ष मैपिंग होते हैं, जो मशीन कोड के (बहु-) बाइट मान होते हैं जिन्हें सीधे प्रोसेसर द्वारा व्याख्या किया जा सकता है। ओपकोड्स में सीधे एक टेबल (जैसे कि this one for the 6039 microprocessor, उदाहरण के लिए) को देखकर प्रोग्राम लिखना काफी संभव है, जो उन्हें मिलते-जुलते असेंबली निर्देशों के साथ सूचीबद्ध करता है, और कूदने जैसी चीज़ों के लिए मेमोरी पतों/ऑफसेट को निर्धारित करता है।
पहला कार्यक्रम बिल्कुल इस फैशन - हाथ से लिखे गए ऑपोड में किया गया था।
हालांकि, अधिकांश समय असेंबलर को "संकलित" असेंबली कोड में उपयोग करना आसान होता है, जो स्वचालित रूप से इन ऑपोड लुकअप को करता है, साथ ही नामित कूद लेबल, et cetera के लिए पते/ऑफसेट की गणना करने में सहायक होता है।
पहले असेंबलरों को हाथ से लिखा गया था। उन असेंबलरों को तब अधिक जटिल असेंबलरों को इकट्ठा करने के लिए इस्तेमाल किया जा सकता था, जिसका उपयोग तब उच्च स्तरीय भाषाओं के लिए लिखे गए कंपाइलर्स को इकट्ठा करने के लिए किया जा सकता था, और इसी तरह। अगली सेट टूल्स के निर्माण को सरल बनाने के लिए औजारों को लिखने की यह प्रक्रिया को कॉल किया जाता है (जैसा कि डेविड राबिनोवित्ज़ ने उनके उत्तर में बताया है) bootstrapping।
संभावित डुप्लिकेट [जब कोई नई प्रोग्रामिंग भाषा लिखता है, तो वे इसे क्या लिखते हैं?] (Http://stackoverflow.com/questions/1629513/when-someone-writes-a-new-programming-language- वे क्या करते हैं-वे-लिखते-इन-इन) – nawfal