IBM Basic assembly language and successors
આઇબીએમ બેઝિક એસેમ્બલી લેંગ્વેજ અને અનુગામીઓ એ આઇબીએમ સિસ્ટમ/360 મેઇનફ્રેમ સિસ્ટમ અને તેના અનુગામીઓ માટે આઇબીએમ ઝેડ દ્વારા બનાવવામાં આવેલી એસેમ્બલી લેંગ્વેજ અને એસેમ્બલરની શ્રેણી છે. આમાંથી પ્રથમ, બેઝિક એસેમ્બલી લેંગ્વેજ (બી. એ. એલ.) એ અત્યંત પ્રતિબંધિત એસેમ્બલી લેંગ્વેજ છે, જે 1964માં રજૂ કરવામાં આવી હતી અને તેનો ઉપયોગ આઇ. બી. એમ. બેઝિક પ્રોગ્રામિંગ સપોર્ટ (બી. પી. એસ./360) ના ભાગ રૂપે માત્ર 8 કે. બી. મુખ્ય મેમરી સાથે 360 સિસ્ટમો પર થાય છે, અને માત્ર એક કાર્ડ રીડર, એક કાર્ડ પંચ અને ઇનપુટ/આઉટપુટ માટે પ્રિન્ટરનો ઉપયોગ થાય છે. BAL માટે બેઝિક એસેમ્બલર બેઝિક ઓપરેટિંગ સિસ્ટમ/360 (BOS/360) ના ભાગ રૂપે પણ ઉપલબ્ધ હતું. ત્યારબાદ, સિસ્ટમ/360 માટે એસેમ્બલી લેંગ્વેજ દેખાઇ હતી જેમાં વધુ શક્તિશાળી સુવિધાઓ અને ઉપયોગીતા હતી, જેમ કે મેક્રો માટે સપોર્ટ. આ ભાષા, અને તેને અમલમાં મૂકનાર એસેમ્બ્લરોની લાઇન, સિસ્ટમ/370 અને તેના પછીની રચનાઓ માટે વિકસતી રહી, તેના વાક્યરચનાને વારસામાં અને વિસ્તૃત કરી. કોમ્પ્યુટર ઉદ્યોગમાં કેટલાક લોકો આનો સામાન્ય શબ્દ "બેઝિક એસેમ્બલી લેંગ્વેજ" અથવા "BAL" હેઠળ ઉલ્લેખ કરે છે. જો કે, ઘણા લોકોએ ન કર્યું અને આઇબીએમ પોતે સામાન્ય રીતે તેમને ફક્ત "સિસ્ટમ/360 એસેમ્બલર લેંગ્વેજ" તરીકે ઓળખાવે છે, જે આપેલ ઓપરેટિંગ સિસ્ટમ અથવા પ્લેટફોર્મ અથવા સમાન નામો માટે "એસેમ્બલર" તરીકે ઓળખાય છે. ચોક્કસ એસેમ્બ્લરોને એસેમ્બલર ઇ, એસેમ્બલર એફ, એસેમ્બલર એચ વગેરે જેવા નામોથી ઓળખવામાં આવતા હતા. આ ભાષાનો ઉપયોગ કરતા પ્રોગ્રામરો અને એસેમ્બ્લરોના આ પરિવાર, તેમને એ. એલ. સી. (એસેમ્બલી લેંગ્વેજ કોડિંગ માટે) અથવા ફક્ત "એસેમ્બલર" તરીકે પણ ઓળખાવે છે. તાજેતરની વ્યુત્પન્ન ભાષાને આઇબીએમ હાઇ-લેવલ એસેમ્બલર (એચએલએએસએમ) તરીકે ઓળખવામાં આવે છે. સામાન્ય લાક્ષણિકતાઓ કારણ કે તે એસેમ્બલી લેંગ્વેજ છે, BAL એ IBM મેઇનફ્રેમ આર્કિટેક્ચરના મૂળ સૂચના સમૂહનો ઉપયોગ કરે છે, જેના પર તે ચાલે છે, સિસ્ટમ/360. બી. એ. એલ. ના અનુગામીઓ સિસ્ટમ/360, સિસ્ટમ/370, સિસ્ટમ/370-એક્સ. એ., ઇ. એસ. એ./370, ઇ. એસ. એ./390 અને ઝેડ./આર્કિટેક્ચર સહિત આઇ. બી. એમ. મેઇનફ્રેમ આર્કિટેક્ચરના મૂળ સૂચના સમૂહોનો ઉપયોગ કરે છે, જેના પર તેઓ ચાલે છે. મશીન સૂચનાઓની સરળતાનો અર્થ એ છે કે એસેમ્બલરમાં લખાયેલ પ્રોગ્રામનો સ્રોત કોડ સામાન્ય રીતે કોબોલ અથવા ફોરટ્રાનમાં સમકક્ષ પ્રોગ્રામ કરતાં ઘણો લાંબો હશે. ભૂતકાળમાં, હેન્ડ-કોડેડ એસેમ્બલર પ્રોગ્રામ્સની ઝડપ ઘણીવાર આ ખામીને દૂર કરવા માટે અનુભવાતી હતી, પરંતુ કમ્પાઇલર્સને શ્રેષ્ઠ બનાવવાના આગમન સાથે, મુખ્ય ફ્રેમ માટે સી અને અન્ય એડવાન્સિસ, એસેમ્બલર તેની મોટાભાગની અપીલ ગુમાવી ચૂક્યું છે. જો કે, આઇ. બી. એમ. એસેમ્બલરને અપગ્રેડ કરવાનું ચાલુ રાખે છે, અને જ્યારે ઝડપ અથવા ખૂબ જ સરસ નિયંત્રણની જરૂરિયાત સર્વોપરી હોય ત્યારે તેનો ઉપયોગ થાય છે. જો કે, બી. એ. એલ. ના તમામ આઇ. બી. એમ. અનુગામીઓએ એક અત્યાધુનિક મેક્રો સુવિધાનો સમાવેશ કર્યો છે જે વધુ સઘન સ્રોત કોડ લખવાની મંજૂરી આપે છે. એસેમ્બલરનો ઉપયોગ કરવાનું બીજું કારણ એ છે કે તમામ ઓપરેટિંગ સિસ્ટમ કાર્યોને ઉચ્ચ સ્તરની ભાષાઓમાં ઍક્સેસ કરી શકાતા નથી. આઇબીએમની મેઇનફ્રેમ ઓપરેટિંગ સિસ્ટમ્સના એપ્લિકેશન પ્રોગ્રામ ઇન્ટરફેસને એસેમ્બલી લેંગ્વેજ "મેક્રો" સૂચનાઓના સમૂહ તરીકે વ્યાખ્યાયિત કરવામાં આવે છે, જે સામાન્ય રીતે સુપરવાઇઝર કૉલ (એસવીસી) [દા. ત., ઝેડ/ઓએસ પર] અથવા ડાયગ્નોઝ (ડીઆઇએજી) [ઓન, દા. ત., ઝેડ/વીએમ] સૂચનાઓને ઓપરેટિંગ સિસ્ટમ દિનચર્યાઓને બોલાવવા માટે બોલાવે છે. એસેમ્બલર સબરૂટીનનો ઉપયોગ કરીને ઉચ્ચ-સ્તરની ભાષાઓમાં લખાયેલા પ્રોગ્રામ્સમાંથી ઓપરેટિંગ સિસ્ટમ સેવાઓનો ઉપયોગ કરવો શક્ય છે. એસેમ્બલર સ્ટેટમેન્ટ ફોર્મેટ એસેમ્બલર લેંગ્વેજ સ્ટેટમેન્ટનું ફોર્મેટ 80-કૉલમ પંચ્ડ કાર્ડના લેઆઉટને પ્રતિબિંબિત કરે છે, જોકે ક્રમિક આવૃત્તિઓએ મોટાભાગના પ્રતિબંધોમાં છૂટછાટ આપી છે. વૈકલ્પિક સ્ટેટમેન્ટ લેબલ અથવા નામ કૉલમ 1 માં શરૂ થતા સ્ટ્રિંગ આલ્ફાન્યૂમેરિક અક્ષરો છે. પ્રથમ અક્ષર મૂળાક્ષરવાળું હોવું જોઈએ. પછીની આવૃત્તિઓએ લેબલમાં ઉપયોગમાં લેવાતા કાનૂની અક્ષરોમાં @, #, $અને _ ઉમેર્યા, અને કદને પ્રારંભિક છથી વધારીને આઠ અક્ષરો કર્યું, પછી લગભગ અમર્યાદિત લંબાઈ સુધી. ઓપરેશન કોડ અથવા "નેમોનિક" કૉલમ 1 ની જમણી બાજુના કોઈપણ સ્તંભમાં શરૂ થઈ શકે છે, જે ખાલી દ્વારા નિવેદન લેબલથી અલગ પડે છે. ઓપરેશન કોડ માત્ર એક મશીન સૂચના હશે (મેક્રો ઉપલબ્ધ ન હતા), જે તેને સામાન્ય રીતે 1,2,3 અથવા ભાગ્યે જ 4 અક્ષરો બનાવે છે. ઓપરેશન કોડને આઠ અક્ષરો સુધી મંજૂરી આપવા માટે વધારવામાં આવ્યો હતો, પછીથી અસરકારક રીતે અમર્યાદિત લંબાઈ સુધી. ઓપરેન્ડ ક્ષેત્ર ઓપરેશન કોડની જમણી બાજુના કોઈપણ સ્તંભમાં શરૂ થઈ શકે છે, જે ઓપરેશન કોડથી ઓછામાં ઓછા એક ખાલી જગ્યા દ્વારા અલગ થઈ શકે છે. અક્ષર સ્થિરાંકો સિવાય ઓપરેન્ડ્સમાં ખાલી જગ્યાઓ અમાન્ય છે. ઓપરેન્ડ ક્ષેત્ર, જેમાં એક અથવા વધુ ઓપરેન્ડનો સમાવેશ થાય છે, તે ઓપરેશન કોડના આધારે વૈકલ્પિક છે. વૈકલ્પિક ટિપ્પણીઓ ઓપરેન્ડ ક્ષેત્રની જમણી બાજુએ દેખાઈ શકે છે, જે ઓછામાં ઓછી એક ખાલી જગ્યાથી અલગ પડે છે. બેઝિક એસેમ્બલી લેંગ્વેજ નિવેદન ચાલુ રાખવાની મંજૂરી આપતી નથી. એસેમ્બલરની પાછળની આવૃત્તિઓ નિવેદનના સ્તંભ 72 માં કોઈપણ બિન-ખાલી અક્ષરના દેખાવ દ્વારા ચાલુ રહેવાનું સૂચવે છે. બેઝિક એસેમ્બલી લેંગ્વેજ માટે જરૂરી છે કે કોલમ 72 ખાલી હોય. "પૂર્ણ-કાર્ડ ટિપ્પણી" સ્તંભ 1 માં ફૂદડી (*) દ્વારા સૂચવવામાં આવે છે. ઓળખ-અનુક્રમ ક્ષેત્ર તરીકે ઓળખાતા કાર્ડ કૉલમ 73-80 નો ઉપયોગ પ્રોગ્રામર દ્વારા કોઈપણ હેતુ માટે કરી શકાય છે, પરંતુ સામાન્ય રીતે તેમાં જમ્બલ કાર્ડ ડેકનો આશરો લેવા માટે અનુક્રમ સંખ્યાઓ હોય છે. બેઝિક એસેમ્બલી લેંગ્વેજ કલમ 25 થી શરૂ થતા નિવેદન સાથે વૈકલ્પિક નિવેદન સ્વરૂપને પણ મંજૂરી આપે છે, જે એકત્રિત સૂચનાઓને કૉલમ 1 થી શરૂ થતા સમાન કાર્ડમાં પંચ કરવાની મંજૂરી આપે છે. એસેમ્બલરની પછીની આવૃત્તિઓમાં આ વિકલ્પ ચાલુ રાખવામાં આવ્યો ન હતો. સૂચનાઓના પ્રકાર એસેમ્બલરમાં લખેલા પ્રોગ્રામના સ્રોત કોડમાં ત્રણ મુખ્ય પ્રકારની સૂચનાઓ જોવા મળે છે. એસેમ્બલર સૂચનાઓ, જેને કેટલીકવાર નિર્દેશો, સ્યુડો ઓપરેશન્સ અથવા અન્ય સિસ્ટમો પર સ્યુડૂપ્સ તરીકે ઓળખવામાં આવે છે, તે કોડ જનરેશન પ્રક્રિયા દરમિયાન એસેમ્બલરને વિવિધ કામગીરીઓ કરવા માટેની વિનંતીઓ છે. દાખલા તરીકે, CSECT નો અર્થ થાય છે "અહીં કોડનો વિભાગ શરૂ કરો"; DSECT માળખા માટે ડેટા વ્યાખ્યાઓ પ્રદાન કરે છે, પરંતુ કોઈ કોડ જનરેટ કરતું નથી; ડીસી ઓબ્જેક્ટ કોડમાં મૂકવા માટે અચળાંકને વ્યાખ્યાયિત કરે છે. એસેમ્બલરની વધુ મહત્વપૂર્ણ સૂચનાઓમાંની એક યુઝિંગ છે, જે એસ/360 આર્કિટેક્ચરના બેઝ-ડિસ્પ્લેસમેન્ટ એડ્રેસિંગને સપોર્ટ કરે છે. તે એસેમ્બલરને તે નક્કી કરવામાં માર્ગદર્શન આપે છે કે સંબંધિત સરનામાં માટે કયા બેઝ રજિસ્ટર અને ઓફસેટનો ઉપયોગ કરવો જોઈએ. બી. એ. એલ. માં, તે ફોર્મ યુઝિંગ બેઝ, રેગ-1,., રેગ-એન સુધી મર્યાદિત હતું એસ/360 પરના મશીન સૂચના સરનામાઓ બેઝ રજિસ્ટરમાં મૂલ્યમાંથી વિસ્થાપન (<આઇ. ડી. 1> બાઇટ્સ) નો ઉલ્લેખ કરે છે; જ્યારે આર્કિટેક્ચરના પછીના સંસ્કરણોમાં સંબંધિત-સરનામાના બંધારણો ઉમેરવામાં આવ્યા હતા, જૂના બંધારણો હજુ પણ ઘણી સૂચનાઓ દ્વારા ઉપયોગમાં લેવાય છે. યુઝિંગ પ્રોગ્રામરને એસેમ્બલરને કહેવાની મંજૂરી આપે છે કે નિર્દિષ્ટ બેઝ રજિસ્ટરમાં "બેઝ", બેઝ + 4096 (જો બહુવિધ રજિસ્ટર નિર્દિષ્ટ હોય તો), વગેરેનું સરનામું હોવાનું માનવામાં આવે છે. આ ફક્ત પ્રોગ્રામર માટે એક શોર્ટકટ પ્રદાન કરે છે, જેણે અન્યથા દરેક સૂચનામાં બેઝ રજિસ્ટરનો ઉલ્લેખ કરવો પડશે. પ્રોગ્રામરો હજુ પણ આ મૂલ્ય પર આધારિત કોડ લખતા પહેલા રજિસ્ટરમાં "બેઝ" નું સરનામું લોડ કરવા માટે જવાબદાર છે. સંબંધિત DROP એસેમ્બલર સૂચના અગાઉના ઉપયોગને રદ કરે છે. મશીન સૂચનાઓ (નેમોનિક) મશીન સૂચનાઓ સાથે એક-થી-એક સંબંધ છે. સંપૂર્ણ સ્મરણાત્મક સૂચના સમૂહ દરેક સૂચના સમૂહ માટે ઓપરેશન મેન્યુઅલના સિદ્ધાંતોમાં વર્ણવવામાં આવ્યો છે. ઉદાહરણોઃ * આ એક ટિપ્પણી રેખા છે * 'ZIGGY' લેબલવાળા સ્થાન પર સંગ્રહિત પૂર્ણ શબ્દ પૂર્ણાંકને સામાન્ય રજિસ્ટર 3: L 3 માં લોડ કરો, ZIGGY SLA 4,5 સામાન્ય રજિસ્ટરમાં મૂલ્યને ખસેડો 4 5 બિટ્સ એમવીસી લક્ષ્ય દ્વારા બાકી છે, સ્રોત અક્ષરોને સ્થાન 'સ્રોત' થી 'લક્ષ્ય' એપી કાઉન્ટમાં ખસેડે છે, = P '1' મેમરી સ્થાન 'COUNT' (પેક કરેલ દશાંશ બંધારણ) માં મૂલ્યમાં 1 ઉમેરો 'NEXT' HERE EQU * લેબલ કરવા માટે આગામી બિનશરતી શાખા આ એક લેબલ CLC લક્ષ્ય છે, = C 'ADDRESS' મેમરી સ્થાનની સરખામણી કરો 'TAR X86 એસેમ્બલી લેંગ્વેજ જેવી કેટલીક અન્ય સિસ્ટમો માટે એસેમ્બલર્સથી વિપરીત, રજિસ્ટર નેમોનિક્સ એ આરક્ષિત પ્રતીકો નથી પરંતુ પ્રોગ્રામમાં અન્યત્ર EQU નિવેદનો દ્વારા વ્યાખ્યાયિત કરવામાં આવે છે. આ એસેમ્બલર લેંગ્વેજ પ્રોગ્રામ્સની વાંચનીયતામાં સુધારો કરે છે અને રજિસ્ટર ઉપયોગનો ક્રોસ-રેફરન્સ પ્રદાન કરે છે. આમ સામાન્ય રીતે તમે એસેમ્બલર પ્રોગ્રામમાં નીચેની બાબતો જોઈ શકો છોઃ R3 EQU 3. L R3, ZIGGY કેટલાક નોંધપાત્ર સૂચના સ્મૃતિચિહ્નો એ કૉલ માટે BALR છે જે રીટર્ન સરનામું અને શરત કોડને રજિસ્ટર, SVC, DIAG અને ZAP માં સંગ્રહિત કરે છે. સિસ્ટમ/360 મશીન સૂચનાઓ લંબાઈમાં એક, બે અથવા ત્રણ અર્ધશબ્દ (બે થી 6 બાઇટ્સ) છે. મૂળરૂપે ચાર સૂચના સ્વરૂપો હતા, જે ઓપરેશન કોડ ક્ષેત્રના પ્રથમ બે બિટ્સ દ્વારા નિયુક્ત કરવામાં આવ્યા હતા; ઝેડ/આર્કિટેક્ચરમાં વધારાના સ્વરૂપો ઉમેરવામાં આવ્યા હતા. મેક્રોઝ અને શરતી એસેમ્બલી બેઝિક પ્રોગ્રામિંગ સપોર્ટ એસેમ્બલર મેક્રોઝને સપોર્ટ કરતું ન હતું. એસેમ્બલર ડીથી શરૂ થતી પછીની એસેમ્બલર આવૃત્તિઓ પ્રોગ્રામરને મેક્રોઝમાં સૂચનાઓને એકસાથે જૂથબદ્ધ કરવાની અને તેમને લાઇબ્રેરીમાં ઉમેરવાની મંજૂરી આપે છે, જે પછી અન્ય પ્રોગ્રામ્સમાં સામાન્ય રીતે પરિમાણો સાથે, જેમ કે સી અને સંબંધિત ભાષાઓમાં પ્રીપ્રોસેસર સુવિધાઓ સાથે લાગુ કરી શકાય છે. મેક્રો શરતી એસેમ્બલર સૂચનાઓનો સમાવેશ કરી શકે છે, જેમ કે AIF (એક 'જો' રચના), જેનો ઉપયોગ પસંદ કરેલા પરિમાણો અનુસાર વિવિધ કોડ બનાવવા માટે થાય છે. તે આ એસેમ્બલરની મેક્રો સુવિધાને ખૂબ શક્તિશાળી બનાવે છે. જ્યારે સીમાં મલ્ટીલાઈન મેક્રો એક અપવાદ છે, એસેમ્બલરમાં મેક્રો વ્યાખ્યાઓ સરળતાથી સેંકડો રેખાઓ હોઈ શકે છે. ઓપરેટિંગ સિસ્ટમ મેક્રો મોટાભાગના પ્રોગ્રામ્સને ઓપરેટિંગ સિસ્ટમની સેવાઓની જરૂર પડશે, અને ઓએસ તે સેવાઓની વિનંતી કરવા માટે પ્રમાણભૂત મેક્રો પ્રદાન કરે છે. આ યુનિક્સ સિસ્ટમ કૉલ્સને અનુરૂપ છે. દાખલા તરીકે, MVS (પછીના z/OS) માં, STORAGE (OBTAIN પરિમાણ સાથે) ગતિશીલ રીતે મેમરીના બ્લોકને ફાળવે છે, અને GET ફાઇલમાંથી આગામી લોજિકલ રેકોર્ડને પુનઃપ્રાપ્ત કરે છે. આ મેક્રો ઓપરેટિંગ-સિસ્ટમ-આધારિત છે; કેટલીક ઉચ્ચ-સ્તરની ભાષાઓથી વિપરીત, આઇબીએમ મેઇનફ્રેમ એસેમ્બલી ભાષાઓ મેમરી ફાળવવા, આઇ/ઓ કામગીરીઓ કરવા વગેરે માટે ઓપરેટિંગ-સિસ્ટમ-સ્વતંત્ર નિવેદનો અથવા લાઈબ્રેરીઓ પ્રદાન કરતી નથી, અને વિવિધ આઇબીએમ મેઇનફ્રેમ ઓપરેટિંગ સિસ્ટમ્સ સિસ્ટમ સેવા સ્તરે સુસંગત નથી. ઉદાહરણ તરીકે, ક્રમિક ફાઇલ લખવાનું z/OS અને z/VSE માં અલગ રીતે કોડેડ કરવામાં આવશે. ઉદાહરણો નીચેનો ટુકડો દર્શાવે છે કે એસેમ્બલરમાં "જો સેક્સ = 'એમ' હોય, તો પુરુષોમાં 1 ઉમેરો; નહીં તો સ્ત્રીઓમાં 1 ઉમેરો" નો તર્ક કેવી રીતે કરવામાં આવશે. CLI SEX, C 'M' Male? BNE IS _ FEM જો નહીં, તો L 7 ની આસપાસ શાખા કરો, MALES પુરુષોનું વર્તમાન મૂલ્ય રજિસ્ટરમાં લોડ કરો 7 LA 7,1 (7) ઉમેરો 1 ST 7, MALES પરિણામ B ને પાછું સંગ્રહિત કરે છે આ ભાગ IS _ FEM EQU * A લેબલ L 7 સાથે સમાપ્ત થાય છે, FEMALES સ્ત્રીઓમાં વર્તમાન મૂલ્યને રજિસ્ટરમાં લોડ કરે છે 7 LA 7,1 (7) ઉમેરો 1 ST 7, FEMALES પરિણામને પાછા સંગ્રહિત કરે છે-બાકીનો પ્રોગ્રામ-* MALES DC F '0' પુરુષો માટે કાઉન્ટર (શરૂઆતમાં = 0) FEMALES DC F '0' સ્ત્રીઓ માટે કાઉન્ટર (શરૂઆતમાં = 0) નીચે મુજબ છેઃ STM 14,12,12 (13) કોલ કરનારના સેવ એરિયા LR 12,15 માં રજિસ્ટર 14,15 અને 0 થી 12 સાચવો પ્રોગ્રામના એન્ટ્રી પોઇન્ટ સરનામાં HELLO નો ઉપયોગ કરીને બેઝ રજિસ્ટર સેટ કરો, 12 એસેમ્બલરને કહો કે આપણે pGM માટે કઈ નોંધણીનો ઉપયોગ કરી રહ્યા છીએ. બેઝ એલએ 15, સેવ નાઉ પોઇન્ટ આપણા પોતાના સેવ એરિયા એસટી 15,8 (13) સેટ ફોરવર્ડ ચેઇન એસટી 13,4 (15) સેટ બેક ચેઇન એલઆર 13,15 સેટ આર 13 નવા સેવ એરિયા *-એન્ડ ઓફ હાઉસકીપિંગ (મોટાભાગના પ્રોગ્રામ્સ માટે સમાન)-ડબલ્યુટીઓ 'હેલો વર્લ્ડ' રાઈટ ટુ ઓપરેટર (ઓપરેટિંગ સિસ્ટમ મેક્રો) * એલ 13,4 (13) કોલર દ્વારા પૂરા પાડવામાં આવેલ સેવ એરિયા એક્સસી 8 (4,13), 8 (13) ક્લિયર ફોરવર્ડ ચેઇન એલએમ <આઇડી 1> (13) રીસ્ટોર રજિસ્ટર એન્ટ્રી તરીકે ડ્રોપ 12 'યુઝિંગ' એસઆર 15,15 સેટ રજિસ્ટર 15 થી 0 ની વિરુદ્ધ છે જેથી રીટર્ન કોડ (આર 15) ઝીરો બીઆર 14 રીટર્ન છે રજિસ્ટર સાચવવા અને પછી પુનઃસ્થાપિત કરવા અને પરત કરવાને કારણે, આ નાનો પ્રોગ્રામ ઓપરેટિંગ સિસ્ટમ જોબ કંટ્રોલ લેંગ્વેજ (JCL) દ્વારા સીધા જ બોલાવવામાં આવતા બેચ પ્રોગ્રામ તરીકે ઉપયોગી છેઃ// EXEC PGM = HELLO અથવા, વૈકલ્પિક રીતે, તેને આવા પ્રોગ્રામમાંથી સબરૂટિન તરીકે કૉલ કરી શકાય છેઃ 'HELLO' વર્ઝન કૉલ કરો IBM સિસ્ટમ/360 મોડલ 20 માટેના એસેમ્બલરના અપવાદ સિવાય, IBM એસેમ્બલર મોટે ભાગે ઉપરની તરફ સુસંગત હતા. તફાવતો મુખ્યત્વે માન્ય અભિવ્યક્તિઓની જટિલતા અને મેક્રો પ્રોસેસિંગમાં હતા. ઓએસ/360 એસેમ્બલર્સને મૂળરૂપે તેમની મેમરી જરૂરિયાતો અનુસાર નિયુક્ત કરવામાં આવ્યા હતા. બેઝિક પ્રોગ્રામિંગ સપોર્ટ એસેમ્બલર બી. પી. એસ. માટેનું એસેમ્બલર સાચું "બેઝિક એસેમ્બલર" છે. તેને કાર્ડ્સમાંથી લોડ કરવાનો ઈરાદો હતો અને તે 8 KB સિસ્ટમ/360 (મોડલ 20 સિવાય) પર ચાલશે. તેમાં મેક્રો સૂચનાઓ અથવા વિસ્તૃત નેમોનિક્સ માટે કોઈ આધાર નથી (જેમ કે જો શરત કોડ 2 ઉચ્ચ સરખામણી સૂચવે છે તો શાખા માટે BC 2 ની જગ્યાએ BH). તે માત્ર એક જ નિયંત્રણ વિભાગને ભેગા કરી શકે છે અને બનાવટી વિભાગો (માળખાની વ્યાખ્યાઓ) ને મંજૂરી આપતું નથી. પેરેન્થેસાઇઝ્ડ અભિવ્યક્તિઓને મંજૂરી નથી અને અભિવ્યક્તિઓ ત્રણ શબ્દો સુધી મર્યાદિત છે જેમાં ફક્ત '+', '-' અને '*' ઓપરેટર્સ છે. બેઝિક ઓપરેટિંગ સિસ્ટમ એસેમ્બલર બેઝિક ઓપરેટિંગ સિસ્ટમમાં બે એસેમ્બલર વર્ઝન છે. બન્નેને 16 KB મેમરીની જરૂર પડે છે, એક ટેપ નિવાસી છે અને બીજી ડિસ્ક છે. એસેમ્બલર ડી એસેમ્બલર ડી એ 16 KB ની મેમરી કદ ધરાવતા મશીનો માટે DOS/360 એસેમ્બલર હતું. તે બે આવૃત્તિઓમાં આવી હતીઃ ઓછામાં ઓછી 16 KB મેમરી ધરાવતા મશીનો માટે 10 KB પ્રકાર અને 24 KB ધરાવતા મશીનો માટે 14 KB પ્રકાર. 64 કે. બી. કે તેથી વધુ ક્ષમતા ધરાવતા ડી. ઓ. એસ. મશીનો માટે એફ-લેવલ એસેમ્બલર પણ ઉપલબ્ધ હતું. ડી એસેમ્બલોએ ઉચ્ચ આવૃત્તિઓની લગભગ તમામ સુવિધાઓ પ્રદાન કરી હતી. એસેમ્બલર E અને F એસેમ્બલર E ની રચના ઓછામાં ઓછા 32 KB મુખ્ય સંગ્રહ સાથે OS/360 સિસ્ટમ પર ચલાવવા માટે કરવામાં આવી હતી, જેમાં એસેમ્બલરને જ 15 KB ની જરૂર હતી. એસેમ્બલર એફ 64 KB મેમરી ધરાવતી સિસ્ટમ પર DOS/360 અથવા OS/360 હેઠળ ચલાવી શકે છે, જેમાં એસેમ્બલરને 44 KB ની જરૂર પડે છે. આ એસેમ્બલર્સ OS/360 નો પ્રમાણભૂત ભાગ છે; જે વર્ઝન જનરેટ કરવામાં આવ્યું હતું તે સિસ્ટમ જનરેશન (SYSGEN) પર સ્પષ્ટ કરવામાં આવ્યું હતું. એસેમ્બલર એચ એસેમ્બલર એચ ઓએસ/360 અને અનુગામીઓ પર ચાલે છે; તે એસેમ્બલર એફ કરતાં ઝડપી અને વધુ શક્તિશાળી હતી, પરંતુ મેક્રો ભાષા સંપૂર્ણપણે સુસંગત નહોતી. એસેમ્બલર એચ વર્ઝન 2ની જાહેરાત 1981માં કરવામાં આવી હતી અને તેમાં AMODE અને RMODE નિર્દેશો સહિત એક્સટેન્ડેડ આર્કિટેક્ચર (XA) માટે સમર્થન સામેલ છે. તેને 1994માં માર્કેટિંગમાંથી પાછી ખેંચી લેવામાં આવી હતી અને 1995માં ટેકો સમાપ્ત થયો હતો. તેનું સ્થાન ઉચ્ચ સ્તરીય એસેમ્બલર દ્વારા લેવામાં આવ્યું હતું. એસેમ્બલર XF એસેમ્બલર XF એ એસેમ્બલર F નું મોટે ભાગે સુસંગત અપગ્રેડ છે જેમાં નવી સિસ્ટમ/370 આર્કિટેક્ચર સૂચનાઓનો સમાવેશ થાય છે. આ સંસ્કરણ OS/VS, DOS/VS અને VM સિસ્ટમો માટે સામાન્ય એસેમ્બલર પ્રદાન કરે છે. અન્ય ફેરફારોમાં અભિવ્યક્તિઓ અને મેક્રો પ્રોસેસિંગ પર હળવા પ્રતિબંધોનો સમાવેશ થાય છે. એસેમ્બલર XF માટે ઓછામાં ઓછું પાર્ટીશન/ક્ષેત્રનું કદ 64 KB (વર્ચ્યુઅલ) જરૂરી છે. ભલામણ કરેલ કદ 128 KB છે. હાઈ લેવલ એસેમ્બલર હાઈ લેવલ એસેમ્બલર અથવા એચ. એલ. એ. એસ. એમ. જૂન 1992માં આઇ. બી. એમ. ના એસેમ્બલર એચ વર્ઝન 2ના સ્થાને રજૂ કરવામાં આવ્યું હતું. તે સિસ્ટમ/370 અને સિસ્ટમ/390 માટે મૂળભૂત અનુવાદક હતું, અને એમવીએસ, વીએસઈ અને વીએમ ઓપરેટિંગ સિસ્ટમ્સને ટેકો આપ્યો હતો. 2023 સુધીમાં તે ઝેડ/આર્કિટેક્ચર મેઇનફ્રેમ કમ્પ્યુટર્સ પર તેની ઝેડ/ઓએસ, ઝેડ/વીએસઈ, ઝેડ/વીએમ અને ઝેડ/ટી. પી. એફ. ઓપરેટિંગ સિસ્ટમ્સ માટે આઇબીએમની વર્તમાન એસેમ્બલર પ્રોગ્રામિંગ લેંગ્વેજ છે. પ્રકાશન 6 અને પછી લિનક્સ પર પણ ચાલે છે, અને ઇએલએફ અથવા જીઓએફએફ ઓબ્જેક્ટ ફાઇલો જનરેટ કરે છે (આ પર્યાવરણને કેટલીકવાર આઇબીએમ ઝેડ પર લિનક્સ તરીકે ઓળખવામાં આવે છે). આઇબીએમમાં કામ કરતી વખતે, જ્હોન રોબર્ટ એહર્મેને એચએલએએસએમની રચના કરી હતી અને તે એચએલએએસએમ માટે મુખ્ય વિકાસકર્તા હતા અને તેમને "ઉચ્ચ સ્તરના એસેમ્બલરના પિતા" માનવામાં આવે છે. નામ હોવા છતાં, એચ. એલ. એ. એસ. એમ. પાસે તેના પોતાના પર ઘણી સુવિધાઓ નથી જે સામાન્ય રીતે ઉચ્ચ-સ્તરના એસેમ્બલર સાથે સંકળાયેલી હોય. નામ વધારાની મેક્રો લેંગ્વેજ ક્ષમતાઓમાંથી આવી શકે છે, જેમ કે વપરાશકર્તા-નિર્ધારિત કાર્યો લખવાની ક્ષમતા. એસેમ્બલર મોટે ભાગે એસેમ્બલર એચ અને એસેમ્બલર (એક્સએફ) જેવું જ છે, જેમાં એસએલએસી (સ્ટેનફોર્ડ લીનિયર એક્સેલરેટર) ફેરફારોનો સમાવેશ થાય છે. ઉમેરવામાં આવેલી વિશેષતાઓમાં સ્થાન કાઉન્ટર માટે સી. એસ. ઇ. સી. ટી./ડી. એસ. ઇ. સી. ટી. નો સંકેત, આશ્રિત અને લેબલ થયેલ યુઝિંગ સ્ટેટમેન્ટ, હાલમાં સક્રિય યુઝિંગ સ્ટેટમેન્ટની સૂચિ, ક્રોસ-રેફરન્સમાં ચલ વાંચવામાં આવે છે કે લખવામાં આવે છે તેનો સંકેત અને મિશ્ર-કેસ પ્રતીક નામોને મંજૂરી આપવાનો સમાવેશ થાય છે. આર. એસ. ઇ. સી. ટી. નિર્દેશ (ફક્ત-વાંચી શકાય તેવું નિયંત્રણ વિભાગ) એસેમ્બલરને દરેક વિભાગના આધારે પુનઃપ્રવેશની તપાસ કરવાની મંજૂરી આપે છે. આર. એસ. ઇ. સી. ટી. અગાઉ "એસેમ્બલર એચ. માં બિનદસ્તાવેજીકૃત અને અસંગત રીતે લાગુ કરવામાં આવી હતી". ઉચ્ચ સ્તરની એસેમ્બલર ટૂલકિટ ઉચ્ચ સ્તરની એસેમ્બલર ટૂલકિટ એ ઉચ્ચ સ્તરની એસેમ્બલર માટે અલગ કિંમતની સંગત છે. ટૂલકિટમાં નીચેનાનો સમાવેશ થાય છેઃ માળખાગત પ્રોગ્રામિંગ મેક્રોઝનો સમૂહ-IF/ELSE/ENDIF Do/ENDO STRTSRCH/ORELSE/ENDLOOOP/ENDSRCH CASENTRY/CASE/ENDCASE SELECT/WHEN/OTHRWISE/ENDSEL. એક ડિસએસેમ્બલર. એક "પ્રોગ્રામ અન્ડરસ્ટેન્ડિંગ ટૂલ" (રી-એન્જિનિયરિંગ સહાય). સ્રોત XREF ઉપયોગિતા (ક્રોસ-રેફરન્સ સુવિધા). ઇન્ટરેક્ટિવ ડીબગ સુવિધા. ઉન્નત સુપરસી (સ્રોત સરખામણી સાધન). વિશિષ્ટ આવૃત્તિઓ 7090/7094 સપોર્ટ પેકેજ એસેમ્બલર આઇબીએમ 7090/7094 સપોર્ટ પેકેજ, જે એસયુપીપીએકે તરીકે ઓળખાય છે, તેમાં સિસ્ટમ 360 માટે લખાયેલા પ્રોગ્રામ્સને આઇબીએમ 709,7090,7094, અથવા 7094 II પર એસેમ્બલ, પરીક્ષણ અને અમલ કરવાની મંજૂરી આપવા માટે રચાયેલ ત્રણ પ્રોગ્રામોનો સમાવેશ થાય છે. આ ક્રોસ-એસેમ્બલર 7090 અથવા 7094 સિસ્ટમ પર ચાલે છે અને જ્યારે સિસ્ટમ/360 વિકાસમાં હતી ત્યારે તેનો ઉપયોગ થતો હતો. આ એસેમ્બલર છ-બીટ BCD અક્ષર સમૂહ તેમજ આઠ-બીટ EBCDIC ને સપોર્ટ કરે છે. આઇબીએમ સિસ્ટમ/360 મોડલ 20 એસેમ્બલર આઇબીએમએ મોડલ 20 માટે બે એસેમ્બલર પૂરા પાડ્યાઃ મોડલ 20 બેઝિક એસેમ્બલર અને મોડલ 20 ડીપીએસ/ટીપીએસ એસેમ્બલર. બંનેએ મોડલ 20 પર ઉપલબ્ધ સૂચનાઓને જ ટેકો આપ્યો હતો, જેમાં અનન્ય સૂચનાઓ CIO, TIO, XIOB, SPSW, BAS, BASR અને HPRનો સમાવેશ થાય છે. બેઝિક એસેમ્બલર એ સિસ્ટમ/360 બેઝિક એસેમ્બલરનું થોડું વધુ પ્રતિબંધિત સંસ્કરણ છે; ખાસ કરીને, પ્રતીકો લંબાઈમાં ચાર અક્ષરો સુધી મર્યાદિત છે. આ સંસ્કરણ 4 KB મેમરી સાથે સિસ્ટમ પર ચલાવવા માટે સક્ષમ છે, અને મેક્રો સપોર્ટ IOCS મેક્રો સુધી મર્યાદિત છે. કાર્ડ વર્ઝન બે-પાસ એસેમ્બલર્સ છે જે ફક્ત કાર્ડ ઇનપુટ/આઉટપુટને સપોર્ટ કરે છે. ટેપ-નિવાસી આવૃત્તિઓ વન-પાસ છે, જે મધ્યવર્તી સંગ્રહ માટે ચુંબકીય ટેપનો ઉપયોગ કરે છે. સી. પી. એસ. એસેમ્બલર સાથે ભેગા થયેલા કાર્યક્રમો મહત્તમ 16 કે. બી. ને સંબોધિત કરી શકે છે. ડી. પી. એસ./ટી. પી. એસ. એસેમ્બલર સિસ્ટમ/360 બી. પી. એસ./બી. ઓ. એસ. એસેમ્બલરનું કંઈક અંશે પ્રતિબંધિત સંસ્કરણ છે. આઇબીએમ સિસ્ટમ/360 મોડલ 44 પીએસ એસેમ્બલર આઇબીએમ સિસ્ટમ/360 મોડલ 44 પ્રોગ્રામિંગ સિસ્ટમ એસેમ્બલર એવી ભાષા પર પ્રક્રિયા કરે છે જે ઓએસ/360 અને ડોસ/360 એસેમ્બલર ભાષાનો "પસંદ કરેલ સબસેટ" છે. સૌથી નોંધપાત્ર રીતે મોડલ 44 એસેમ્બલરમાં મેક્રો અને સાતત્ય નિવેદનો માટે સમર્થનનો અભાવ છે. બીજી બાજુ તેમાં સંખ્યાબંધ સુવિધાઓ છે જે અન્ય સિસ્ટમ/360 એસેમ્બલર્સમાં જોવા મળતી નથી-ખાસ કરીને કાર્ડ ઇમેજ સ્રોત ડેટાસેટને અપડેટ કરવા માટેની સૂચનાઓ, જેને સામાન્ય નામ આપવામાં આવ્યું છે, અને SETA એસેમ્બલર વેરિયેબલ્સની ગર્ભિત વ્યાખ્યા છે. તેમાં સ્ટોરેજ-ટુ-સ્ટોરેજ (એસએસ) સૂચનાઓ અથવા કન્વર્ટ ટુ બાઈનરી (સીવીબી), કન્વર્ટ ટુ ડેસીમલ (સીવીડી), રીડ ડાયરેક્ટ (આરડીડી) અને રાઈટ ડાયરેક્ટ (ડબલ્યુઆરડી) સૂચનાઓ માટે કોઈ સપોર્ટ નથી. તેમાં મોડલ 44 માટે અનન્ય ચાર સૂચનાઓનો સમાવેશ થાય છેઃ ચેન્જ પ્રાયોરિટી માસ્ક (સીએચપીએમ), લોડ પીએસડબલ્યુ સ્પેશિયલ (એલપીએસએક્સ), રીડ ડાયરેક્ટ વર્ડ (આરડીડીડબલ્યુ) અને રાઈટ ડાયરેક્ટ વર્ડ (ડબલ્યુઆરડીડબલ્યુ). તેમાં સોર્સ પ્રોગ્રામને અપડેટ કરવાના નિર્દેશો પણ શામેલ છે, જે અન્ય સિસ્ટમો (એસકેપીટીઓ, આરઇડબ્લ્યુએનડી, એનયુએમ, ઓએમઆઇટી અને એન્ડયુપી) માં યુટિલિટી પ્રોગ્રામ્સ દ્વારા કરવામાં આવતું કાર્ય છે. આઇબીએમ સિસ્ટમ/360 ટીએસએસ એસેમ્બલર સિસ્ટમ/360 મોડલ 67 ટાઇમ શેરિંગ સિસ્ટમ માટેના એસેમ્બલરમાં અનન્ય ટીએસએસ સુવિધાઓને ટેકો આપવા માટે નિર્દેશોમાં સંખ્યાબંધ તફાવતો છે. PSECT નિર્દેશ એક પ્રોટોટાઇપ નિયંત્રણ વિભાગ પેદા કરે છે જેમાં પ્રોગ્રામ દ્વારા ઉપયોગમાં લેવાતા સ્થળાંતર કરી શકાય તેવા સરનામાં સ્થિરાંકો અને સુધારી શકાય તેવા ડેટા હોય છે. એસેમ્બલર જી "એસેમ્બલર જી" એ વોટરલૂ યુનિવર્સિટી દ્વારા 1970ના દાયકામાં એસેમ્બલર એફમાં કરવામાં આવેલા ફેરફારોનો સમૂહ છે (એસેમ્બલર એફ ઓપન સોર્સ હતો/છે). સુધારાઓ મોટે ભાગે ઇનપુટ/આઉટપુટના વધુ સારા સંચાલન અને સુધારેલ બફરિંગમાં છે જે એસેમ્બલીઓને નોંધપાત્ર રીતે ઝડપી બનાવે છે. "એસેમ્બલર જી" ક્યારેય આઇ. બી. એમ. નું ઉત્પાદન નહોતું. બિન-આઇ. બી. એમ. એસેમ્બલર્સ ખાસ વાતાવરણ માટે ઘણા આઇ. બી. એમ.-સુસંગત એસેમ્બલર્સ છે. યુનિસિસની યુનિવેક 90/60,90/70 અને 90/80 શ્રેણીની રચના IBM-ફોર્મેટ એસેમ્બલરને સ્વીકારવા માટે કરવામાં આવી હતી, કારણ કે મશીન શ્રેણી S/360 અને S/370 જેવી જ હતી. ફુજીત્સુ BS2000 શ્રેણી પણ યુનિવેક જેવા જ સ્રોતમાંથી 370 વર્કલાઇક તરીકે બનાવવામાં આવી હતી, અને હજુ પણ યુરોપના કેટલાક ભાગોમાં ઉપયોગમાં છે. ડિગ્નસ એલએલસી સિસ્ટમ્સ/એએસએમ એ એચએલએએસએમ-સુસંગત એસેમ્બલર છે જે મૂળ રૂપે આઇબીએમ સિસ્ટમ્સ પર અથવા ક્રોસ-એસેમ્બલર તરીકે ચલાવી શકે છે. ડોન હિગિન્સ દ્વારા લખાયેલ ફ્રીવેર પીસી/370, પાછળથી માઇક્રો ફોકસ દ્વારા ખરીદવામાં આવી હતી. Z390 એ એસેમ્બલર અને સિસ્ટમ 390 એમુલેટર છે જે ડોન હિગિન્સ દ્વારા પણ લખાયેલું છે અને તે જાવામાં પ્રોગ્રામ કરેલું છે. તે ઓપન સોર્સ છે અને http://www.z390.org પેન સ્ટેટ યુનિવર્સિટીએ ASSIST નામનું પેકેજ લખ્યું છે, જેમાં સિસ્ટમ 370 એસેમ્બલર અને દુભાષિયો સામેલ છે. ટેચિયોન સોફ્ટવેર એલએલસી ટેચિયોન એસેમ્બલર વર્કબેન્ચનું વેચાણ કરે છે જે વિન્ડોઝ, લિનક્સ/x86, એસ/390 માટે લિનક્સ અને ઝેડ સિરીઝ, એઆઈએક્સ અને સોલારિસ પર ચાલે છે. જીએનયુ એસેમ્બલર (ગેસ) એ ઓએસ/390 અને આઇબીએમ ઝેડ પર લિનક્સ માટે જીએનયુ કમ્પાઇલર કલેક્શન (જીસીસી) નો ભાગ છે. આ એસેમ્બલરમાં એક અનન્ય વાક્યરચના છે જે આઇબીએમ આર્કિટેક્ચર માટે અન્ય એસેમ્બલર સાથે અસંગત છે. મહત્વ મૂળરૂપે તમામ સિસ્ટમ/360 ઓપરેટિંગ સિસ્ટમ્સ એસેમ્બલર ભાષામાં લખવામાં આવી હતી, અને તમામ સિસ્ટમ ઇન્ટરફેસોને મેક્રો વ્યાખ્યાઓ દ્વારા વ્યાખ્યાયિત કરવામાં આવી હતી. ઉચ્ચ-સ્તરની ભાષાઓ (એચ. એલ. એલ.) ની પહોંચ તે ભાષા દ્વારા પૂરી પાડવામાં આવતી વસ્તુઓ સુધી મર્યાદિત હતી, અને અન્ય સિસ્ટમ કૉલ્સને એચ. એલ. એલ. પ્રોગ્રામ્સમાંથી એસેમ્બલર સબરૂટિન તરીકે કોડેડ કરવાની જરૂર હતી. ઉપરાંત, આઇબીએમએ ઇન્સ્ટોલેશન દ્વારા ઓએસ સુવિધાઓના કસ્ટમાઇઝેશનને મંજૂરી આપી હતી જેને એક્ઝિટ તરીકે ઓળખવામાં આવતી હતી-વપરાશકર્તા દ્વારા પૂરી પાડવામાં આવતી દિનચર્યાઓ જે સામાન્ય ઓએસ કાર્યોને વિસ્તૃત અથવા બદલી શકે છે. આ બહાર નીકળવાના માર્ગોને એસેમ્બલર ભાષામાં કોડેડ કરવાની જરૂર હતી. પાછળથી, આઇ. બી. એમ. એ સિસ્ટમ પ્રોગ્રામિંગ લેંગ્વેજ, પી. એલ./એસ. માં ઓએસ/360 ને ફરીથી કોડેડ કર્યું, પરંતુ, ટૂંકી અજમાયશ સિવાય, વપરાશકર્તાઓ માટે પી. એલ./એસ. કમ્પાઇલરને રિલીઝ ન કરવાનો નિર્ણય લીધો. આ પરિબળોના પરિણામે, એસેમ્બલર ભાષાનો ઘણા વર્ષો સુધી આઇબીએમ સિસ્ટમો પર નોંધપાત્ર ઉપયોગ જોવા મળ્યો. આઇબીએમ સિસ્ટમ/360 એએસએસઆઈએસટી એસેમ્બલર પીસી-આધારિત આઇબીએમ-સુસંગત મેઇનફ્રેમ્સ-સુસંગત મશીનોની સૂચિ અથવા વર્ચ્યુઅલ મશીનો ડિસએસેમ્બલર-એસેમ્બલીની વિપરીત પ્રક્રિયા, મશીન કોડમાંથી એસેમ્બલી જેવા સ્રોતનું પુનઃનિર્માણ નોંધો બાહ્ય લિંક્સ આઇબીએમ ઉચ્ચ સ્તરના એસેમ્બલર મેન્યુઅલ એ પ્રોગ્રામરનો આઇબીએમ સિસ્ટમ/360 એસેમ્બલર લેંગ્વેજ (વિદ્યાર્થી ટેક્સ્ટ) માટે પરિચય ઝેડ/ઓએસ એન્ડ ઝેડ/વીએમ એન્ડ ઝેડ/વીએસઈ લેંગ્વેજ સંદર્ભ માટે ઉચ્ચ સ્તરના એસેમ્બલર પંક્ટિલિયસ પ્રોગ્રામરઃ આઇબીએમ મેઇનફ્રેમ એસેમ્બલર બેઝિક આઇબીએમ મેઇનફ્રેમ લેંગ્વેજ પ્રોગ્રામિંગ ઓએસ/390 એસેમ્બલર પ્રોગ્રામિંગ પરિચય (આર્કાઇવ) નાના પ્રયોગો માટે વેબ સક્ષમ આઇબીએમ એસેમ્બલર એફ કમ્પાઇલર એએસએસઆઈ