कि अ अजय को ए एलो एवरीवन इन इस वीडियो लेक्चर आफ माइक्रो प्रोसेसर आई एम गोइंट टो राइट एन एसेंब्ली लांग्वेज प्रोग्राम टो प्रोट एन एरे इन डिसेंडिंग ऑर्डर यूजिंग 8085 माइक्रो प्रोसेसर मीन्स की वी है डाटा सेट और उससे हमें descending order में arrange करना है means कि decreasing order में, सबसे पहले हमारा largest number होगा and last हमारा जो होगा smallest number होगा, तो ये data set आपका 5 का, 4 का, 3 का, 10 का, 9 का कुछ बहुत है, कुछ हो सकता है ठीक है तो हमने एक्सांपल लिया है इन दिस केस आईएफ टेक इन फाइव डेटा इस इस द डेटा इन दिस इस एरे तो इसे हमें शॉट करना है ठीक है तो ना फर्स्ट ऑफ इसमें हमें कंपरेजन करना पड़ेगा जब हम कंपरेजन करेंगे तभी हमें ग्रेटेस्ट नंबर मिलेगा तो स्टेप में हॉपिनिक कंपरेजन रिक्वाइड चेक करते हैं नंबर है थर्टी थ्री कि ठीक है सेकंड हमने इसको 23 के साथ कंप्यूट क्या विच वन इस ग्रेटर दें हमें क्या मिला 33 ठीक है ठीक ना थर्टी थ्री विल पी कंप्यूट विप 43 मीन्स की थर्ड नंबर दस वन ना आफ्टर इस कंपैरिजन हमें आप उस पर क्या मिलेगा 43 बिकॉज 43 is a 43 greater than 33 now this 43 will be compared with 05 now after comparison we get 43 and after that 0A last this comparison finally we get 43 ठीक है means कि how many comparisons are required 1, 2, 3 and 4 means in first step if we have 5 data then 4 comparison is required तो मैंने जो ये count लिखा है this count is basically n-1 और for this program it will be 4 because we have 5 data ठीक and ये जो count होगा this is basically counter value इसमें हम two counters use करेंगे first counter for this and तो आप हमें एक नंबर मिल गया तो हाउ मेनी नंबर्स लेफ्ट आप हमें 43 मिल गया तो हाउ मेनी नंबर्स लेफ्ट फॉर कंपैरिजन फॉर नंबर तो आफटर एवरी फाइनल नंबर कांटर हमारा डिक्रीज होगा मीडिस टू कांटर्स रिक्वाइड फर्स्ट कांटर हमने लिया बी एवं आउटर कांटर एंड सेकंड कांटर हमने लिया सी एवं इनर कांटर और बोत की वैल्यू क्या होगी जीरो फॉर इन इस केस ठीक है बट वह हमारी फिक्स नहीं होगी अगर हमने डेटा सेट की रेंज को चेंज किया मिनट एगर हमने एरेल या टेन का तो इन देट केस काउंट की वैल्यू क्या होगी 09 तो हम फिक्स वैल्यू को ना लोड करके उसकी लोकेशन को लोड करेंगे सो देट कि अगर सपोस्ट मेरा मन है टेन डेटा को कंपेयर करने का तो मैं टेन लोड करूंगी किसी और कमन लाइफ डेटा को लोड करने का है तो उसके अगर नियुक्त की वैल्यू को फीट करेंगे ठीक है तो हम जनरल प्रोग्राम दिखेंगे तो सबसे पहले हम जो प्रोग्राम में हमारी स्टेप यूज होगी वह क्या होगी एक्स आई एच है तो जी रोफाइड इसकी जगह पर आप सीधे एमबीआई बी जी रोफ और एमबीआई जी रोफ भी यूज कर सकते हो बट अगर आपने नंबर यारे के साइस को चेंज किया तो आपको पूरा प्रोग्राम रिवाइट करना पड़ेगा देश वहीं मैं एक्स ऐड चूस कर रही हूं एक्स ऐड 2050 जैसे ही मैंने यह एग्जिक्यूट किया तो एचल होल्ड द द address of count यहाँ पर value क्या होगी 2050 and this is the address of count clear now अब हमने count को load कराना है in counter तो b यहाँ पर हम क्या लिखेंगे m जैसे ही हमने यह instruction लिखा तो counter b का content क्या होगा count जो भी आप value को fit करोगे after that move c,b means content of register b is equal to content of register c both equal to इन इस वेल्यू इस फोन अब हमें पता चल गए अब हमें फर्स्ट नंबर चाहिए तो आई एन एक्स एच बिकॉज द एड्रेस फर्स्ट नंबर इस 2051 आफ्टर एक्स एक्स इशन ऑफ दिस लाइन व्हाट इज द वैल्यू ऑफ एच एच एच ए फर्स्ट डेटा ठीक है इन दिस केस ना अब हम इसको कहां मूव करेंगे कंपरेजन करना है तो हमने इसे अक्कूमिलेटर में मूव किया ठीक है डेटा कहां चला गया इन एक्टिविटर नाओ अब हमें क्या करना है नाओ अब इस फर्स्ट नंबर को इस थर्टी-ती को में कंपारेजन करना है विच ट्वंटी-त्री और व्हाट इज द एड्रेस एड्रेस इसका क्या है 202 तो अब हम 2051 से कहां जाएंगे 2052 मीडिस वन मोर इंक्रीमेंट रिक्वायर्ड आई एन एक्स एच अब व्हाट इज द एड्रेस नॉएड्रेस क्या हो जाएगा 2052 इस इस द एड्रेस ऑफ नेक्स्ट लोग अभी के लिए क्या हो जाएगा 2052 बट अगर आप कमेंट लिखोंगे तो इस द अ एड्रेस ऑफ नेक्स्ट डेटा डन अब यह हो गया अब हमारे पास फॉर्स डेटा इन एक्टिवेटर सेकंड डेटा इन मेमोरी पॉइंटर नॉट कंपैरिजन सी एमपी एम अब यह क्या कंपैरिजन करेगा यह डिसेंडिंग ऑडर का है मींस के हमारा अक्यूमिलेटर में ग्रेटर नंबर होना चाहिए तो बेसिकली दिस विल चेक ए इस अ ग्रेटर देन मेमोरी पॉइंटर अगर यह ग्रेटर है मीडिस कि इन देट केस सीएफ की वैल्यू क्या होगी जीरो अगर कैरी जनरेट नहीं हुई कैरी कब जनरेट नहीं होगी जब एक्यूमिलेटर का कंटेन्ट बड़ा होगा in that case हमें swapping की जरूरत नहीं होगी क्योंकि हमें बड़ा number कहा चाहे था accumulator में तो यह सीधे कहा jump करेगा तो हम यहां पहले लिखेंगे JNC if not carry flag तो यह skip करेगा किसे swapping को और जब swapping को skip करेगा तो यह सीधे पहुँचेगा कहा DCRC को because a comparison done तो यहां पर हम define कर देते हैं this is skeptic now after decrementing the counter यह क्या चेक करेगा कांटर जीरो हुआ या नहीं अगर कांटर जीरो नहीं है मीडियो कि अभी कंपरेजन बाकी है तो यह क्या करेगा बैक जाएगा तो आप लिख सकते हो रिपीट द स्टेप्स ठीक है रिपीट करेगा अ कहां जाएगा यह वापस यहां जाएगा क्योंकि इसको पूरा कंपरेजन करना है तो यह यहां पर होगा रिपीट डन नाउ आफ्टर दिस यह पूरा प्रोसेस करने के बाद इनकेस्ट कि वालों जीरो हो जाती है तो यह क्या करेगा डी सी आर भी एक्सटरनल कांटर को डिक्रीमेंट करेगा और आफ्टर डिक्रीमेंट यह चेक करेगा जेज एंड जड़ अगर यह नॉट जीरो है तो यह स्टार्ट करेगा ठीक है कब यह अब दूसरा कंप्यूट जैसे हमने पहली बिट को कंप्यूट किया सब्सक्राइब इन फाइफ को जो हमने फर्स्ट टैप में कंप्यूट क्या जब टीसी आर्डी की वैल्यू जीरो तो हमें 2051 पर 43 मिल गया ठीक है नाओ अब 43 तो मिल गया बट उसके बाद और कितने नंबर बच गया उसके बाद 33, 23, 05, 08 और ये वापस इस प्रोसेस को रिपीट करेगा बिकोस नाओ इन जो रिमेनिंग 4 हैं उसमें से हमें लारजस नंबर को फाइंड आउट करना है ठीक है तो यह कहां वापस जाएगा यहां पर क्योंकि दोनों काउंटर की वैल्यू क्या होनी चाहिए सिर्फ इस बीकी वैल्यू आफ्टर बड़ केस जब अप्यूमिलेटर में आपका स्माल नंबर हो एंड पॉइंटर में आपका बिग नंबर हो मीन्स कि इस कैरी जनरेट होती है तो उस केस में क्या करेंगे ना सपोस कि हमारी जो लोकेशन है 2051 यहां पर इस नंबर है ठीक है एंड 2052 पर हमारा लार्जेस्ट नंबर है ठीक है तो हमें क्या करना पड़ेगा इंटरचेंज ठीक है इंटरचेंज कहां पर स्मॉलिस नंबर को हमें लाना है 2052 पर और यह कहां होगा पॉइंटर में मींस कि अक्यूमिलेटर का जो डाटा है उससे हमें लाना है 2052 पर और जो पॉइंटर का नंबर डाटा है उससे हमें लाना है 2051 पर यह आपको ध्यान रखना है अब हम स्वापिंग करते हैं तो हमारा एट इस पॉइंट यहां पर हमारा 2052 है मिन्स कि दिस और इस पर हमें क्या लाना है स्मॉलिस नंबर तो इसका जो लेट लार्जिस्ट नंबर है हमें इसे कहीं सेव करना पड़ेगा तो हम यूज करेंगे मूव डी कॉमा एंटिक लार्जिस्ट नंबर यहां से हो गया इन रजिस्टर डी ना अब यह लोकेशन फ्री हो गई अब यहां पर हम एक्यूमिलेटर का डिटा मूव करेंगे तो हम लिखेंगे मूव एंट कॉमा एंटिक है अब 2052 पर हमारा स्मॉलिस नंबर आ गया अब हम हमें जो D में हमने largest number डाला था वो कहा लाना है 2051 पर but M की value क्या है 52 तो अब हमें क्या करना पड़ेगा decrement तो हम लिखेंगे DCXH जैसे ही ये line लिखेंगे तो जो current address होगा उसमें 1 का decrement होगा for example if current address is 2052 तो यहां decrement होगे क्या हो जाएगा 2051 अब 2051 पर कि एम कॉमा डी अब हमने अरेंज कर दिया कि 2051 पर हमारा लार्जेस्ट चला गया एंड 2052 पर हमें स्मॉलिस्ट चला गया नाव दिस स्मॉलिस्ट नंबर को हम फिर से कंपैरिजन करेंगे तो नाव जब हम कंपैरिजन करेंगे तो हमें पहले इस लोकेशन पर जाना होगा और आफ्टर डी सी एक्स लोकेशन वॉस 2051 तो हम यहां लिखेंगे आई एन और एक्स एच फिर से हम यह सारे प्रोसेस को रिपीट करेंगे ठीक है तो दिस द प्रोग्राम आफ्टर एग्जिक्यूशन ऑफ दिस प्रोग्राम व्हाट इज द वैल्यू वैल्यू शुद्ध भी एट 205143 होना चाहिए एट 2052 हमारा 33 होना चाहिए, 2053 23 होना चाहिए, and 2054 पर 0A होना चाहिए, 2055 पर least number 05 होना चाहिए ठीक है, now अब जब हम इस program को lab में run कराते हैं तो we cannot write label in front of jump instructions और नहीं लिख सकते हैं, यहाँ पर हमें क्या लिखनी होगी, इनकी locations, तो for writing the location हमने इनकी locations पता होनी चाहिए suppose मैंने program को load किया at 2000, ठीक है अब LXI is a 3 byte instruction तो move कहा होगा, at 2003 now move is 1 byte, तो यहाँ क्या होगा, 2004 अगर नुविस वन बाइट तो यहां क्या होगा 2005 आईएनेक्स वन बाइट मिन्स 2006 तो ना जहां रिपीट यूज वहां था वहां हम क्या लिखेंगे 2006 ठीक है एंड जहां स्टार्ट हम वहां क्या लिखेंगे 2004 कि जब हम कि परन करेंगे ना नुविस वन बाइट तो आईएनेक्स की लोकेशन पूजी रोज रोज 7 ना आईएनेक्स वन बाइट इसकी लोकेशन 2008 ना उसी एंपीएस वन बाइट यहां होगी 2009 ना जीएंसी इस थ्री बाइट तो यहां है एड्रेस होगा 200 C बिकॉज 9 के बाद ABC ठीक ना मूव इस बन बाइट इंस्ट्रक्शन तो 200 D अगें मूव इस बन बाइट 200 E DCX इस बन बाइट तो इट विल बी 200 F मूव इस बन बाइट तो नेक्स्ट एड्रेस इस 2010 INX इस बन बाइट तो इस एड्रेस 2012 ना दिस थ्री बाइट तो दिस विल बीटू 015 डीजिए इस वन बाइट तो यहां एड्रेस होगा 2016 जेनजेड इस थ्री बाइट तो 2019 तो दिजार द लोकेशन स्टीजर सीट मीचे स्किप कहां यूज हुआ यहां पर तो लोकेशन विल बीटू 011 टीव ना यहां पर यह बिस इस मेमोरी लोकेशन यह हमारे क्या है लेबल्स ठीक है यह हमारे क्या है ऑप कोट यह हमारे क्या है ऑपरेंट्स अ और यह हम कह सकते हैं comment short में लिखे हैं, comments को sentence के form में लिख सकते हो, write a program to short an array in ascending order, in that case same program will be written, only single instruction will be changed, that single instruction is JNC, we replace JNC by JC, clear है, ascending order में JNC को हम replace कर देंगे by JC, remaining will be same, मैंने सीम program को राइट डाउन कर लिया है अब हम इसको रन करा कर देखते हैं हमने वहां पर लोड किया था एड 2000 तो यहां पर भी लोड कर दिया यू केंज द लोकेशन अगर यहां पर कोई भी रेड लाइन नहीं है मीन्स कि प्रोग्राम इस प्रॉपरली एग्जेक्यूटेड एड नो एरर ठीक ना अब हम डाटा लोड करते हैं हमने जो डाटा लिए थे हमारी डाटा फाइड ठीक है तो काउंट की वैल्यू दाटा होगी 04 और डाटा हमारा क्या हो जाएगा फर्स्ट डाटा जो हमने लिया था दैट वॉस 33 सेकंड डाटा वस्ट 23 थर्ड डाटा इस फोटो 143 पूर्थ डाटा वॉज 05 एंड लास्ट डाटा हमने जो लिया था था वह जी रोड ए ठीक है अब मैं इसको रन करा देते हैं ठीक बी की वैल्यू जीरो हो गई सी की वैल्यू बी जीरो हो गई फर्स्ट फॉल हमारा होना चाहिए था 43 33 23 0A एंड 05 तो इस इस दाइन सर जो मैंने आपको प्रोग्राम में बताया था ठीक है थैंक यू सो मच स्टेल आप एनी डाउट प्लीज राइट डाउन इन कमेंट सेक्शन थैंक यू अ