असेम्बली भाषा

प्रोग्रामिंग भाषा

असेम्बली भाषा (assembly language) या असेम्बलर भाषा (assembler) कम्प्यूटर तथा अन्य प्रोग्राम करने योग्य युक्तियों (जैसे माइक्रोकन्ट्रोलर) की निम्न-स्तरीय प्रोग्रामन भाषा है[1]। असेम्बली के बाद भाषा तथा मशीन आर्किटेक्चर में प्रायः बहुत घनिष्ठ सम्बन्ध होता है। एक विशेष कम्प्यूटर आर्किटेक्चर के लिये असेम्बली भाषा भी विशिष्ट होती है। असेम्बली भाषा को 'सांकेतिक मशीन कोड' भी कह सकते हैं।

मशीनी भाषा द्वारा प्रोग्राम तैयार करने में आने वाली कठिनाईयो को दूर करने हेतु कम्प्यूटर वैज्ञानिको ने एक अन्य कम्प्यूटर प्रोग्राम भाषा का निर्माण किया। इस कम्प्यूटर प्रोग्रामिंग भाषा को असेम्बली भाषा कहते हैं। कम्प्यूटर प्रोग्रामिंग भाषा के विकास का पहला कदम यह था कि मशीनी भाषा को अंकीय क्रियांवयन संकेतो के स्थान पर अक्षर चिह्न स्मरणोपकारी का प्रयोग किया गया। स्मरणोपकारी का अर्थ यह है कि -एसी युक्ति जो हमारी स्मृति में वर्ध्दन करें। जैसे घटाने के लिये मशीनी भाषा में द्विअंकीय प्रणाली में 1111 और दशमलव प्रणाली में 15 का प्रयोग किया जाता है, अब यदि इसके लिये मात्र sub का प्रयोग किया जाए तो यह प्रोग्रामर की समय में सरलता लाएगी।

पारिभाषिक शब्दो में, वह कम्प्यूटर प्रोग्रामिंग भाषा जिसमें मशीनी भाषा में प्रयुक्त अंकीय संकेतो के स्थान पर अक्षर अथवा चिन्हो का प्रयोग किया जाता है, असेम्बली भाषा अथवा symbol language कहलाती है।
असेम्बली भाषा में मशीन कोड के स्थान पर ’नेमोनिक कोड’ का प्रयोग किया गया जिन्हे मानव मस्तिष्क आसानी से पहचान सकता था जैसे-LDA(load),Tran(Translation),JMP(Jump) एवं इसी प्रकार के अन्य नेमोनिक कोड जिन्हे आसानी से पहचाना व याद रखा जा सकता था। इनमे से प्रत्येक के लिये एक मशीन कोड भी निर्धारित किया गया, पर असेम्बली कोड से मशीन कोड में परिवर्तन का काम, कम्प्यूटर में ही स्थित एक प्रोग्राम के जरिये किया जाने लगा, इस प्रकार के प्रोग्राम को असेम्बलर नाम दिया गया। यह एक अनुवादक की भांति कार्य करता है।

असेम्बली भाषा की विशेषताएं

संपादित करें

(१) नेमोनिक कोड और आकडो हेतु उपयुक्त नाम के प्रयोग के कारण इस प्रोग्रामिंग भाषा को अपेक्षाकृत अधिक सरलता से समझा जा सकता है।
(२) इस प्रोग्रामिंग भाषा में कम समय लगता है।
(३) इसमे गलतियो को सरलता से ढूंढकर दूर किया जा सकता है।
(४) इस प्रोग्रामिंग भाषा में मशीनी भाषा की अनेक विशेषताओ का समावेश है।

असेम्बली भाषा की परिसीमाए

संपादित करें

(१) चूंकि इस प्रोग्रामिंग भाषा में प्रत्येक निर्देश चिन्हो एवं संकेतो में दिया जाता है और इसका अनुवाद सीधे मशीनी भाषा में होता है अत: यह भाषा भी हार्डवेयर पर निर्भर करती है। भिन्न ALU एवं Controling Unit के लिये भिन्न प्रोग्राम लिखना पड़ता है।
(२) प्रोग्राम लिखने के लिये प्रोग्रामर को हार्डवेयर की सम्पूर्ण जानकारी होनी आवश्यक है।

असेम्बली भाषा में प्रोग्राम का उदाहरण

संपादित करें
पहला उदाहरण -
 # define N 16
 
     .global _start
 
     .comm  BUFF  , N
 
 _start: mov   $3   , %eax
     mov   $0   , %ebx
     mov   $BUFF , %ecx
     mov   $N   , %edx
     int   $0x80
 
     mov   %eax  , %edx
     mov   $4   , %eax
     mov   $1   , %ebx
     mov   $BUFF , %ecx
     int   $0x80
 
     mov   $1   , %eax
     mov   $0   , %ebx
     int   $0x80



दूसरा उदाहरण -
पता (Address) नाम (Label) अनुदेश (Instruction (AT&T syntax)) आब्जेक्ट/वस्तु कूट (Object code)[2]
.begin
.org 2048
a_start .equ 3000
2048 ld length,%
2064 be done 00000010 10000000 00000000 00000110
2068 addcc %r1,-4,%r1 10000010 10000000 01111111 11111100
2072 addcc %r1,%r2,%r4 10001000 10000000 01000000 00000010
2076 ld %r4,%r5 11001010 00000001 00000000 00000000
2080 ba loop 00010000 10111111 11111111 11111011
2084 addcc %r3,%r5,%r3 10000110 10000000 11000000 00000101
2088 done: jmpl %r15+4,%r0 10000001 11000011 11100000 00000100
2092 length: 20 00000000 00000000 00000000 00010100
2096 address: a_start 00000000 00000000 00001011 10111000
.org a_start
3000 a:
  1. Assembler language Archived 2016-03-04 at the वेबैक मशीन, IBM Knowledge center
  2. Murdocca, Miles J.; Vincent P. Heuring (2000). Principles of Computer Architecture. Prentice-Hall. आई॰ऍस॰बी॰ऍन॰ 0-201-43664-7.