باب 2 سبق 9 (جمپ روٽين جو استعمال ڪرڻ Endless loop

'سنڌي ٽيڪنيڪل سکيا' فورم ۾ Sindhi Media طرفان آندل موضوعَ ‏21 جنوري 2013۔

  1. Sindhi Media

    Sindhi Media
    سينيئر رڪن

    شموليت:
    ‏28 ڊسمبر 2009
    تحريرون:
    3,751
    ورتل پسنديدگيون:
    4,291
    ايوارڊ جون پوائينٽون:
    473
    ڌنڌو:
    انجنيئر
    ماڳ:
    نيو سعيد آباد سنڌ
    باب 2 سبق 9 (جمپ روٽين جو استعمال ڪرڻ)
    ان کان پهرئين جو اسان اسيمبلي لينگئيج جي پروگرام ٺاهڻ ۾ اڳتي وڌون، اچو ته هن پروگرام ۾ هڪ ٻي تبديلي سکون. مثال ته بجاءِ ان جي ته اسان هڪ پرنٽ ڪريڪٽر (ايڪس) جي تبديلي آڻيون، ڇو نه اسان هڪ مڪمل (ايڪس) سيريز لکون. اهو ڪرڻ بلڪل ڏکيو ڪونهين. ائين ڪرڻ لاءِ بس وري اسانکي پنهنجي پروگرام ۾ هڪ ٻي تبديلي آڻڻي پوندي بس اسن کي پروگرام جي آخر ۾ (ايڊريس 106) تي صرف (جمپ) انسٽرڪشن وجهڻي پوندي. هيءَ انسٽرڪشن اسن کي پوئتي پهرئين انسٽرڪشن ڏي موٽائيندي رهندي ۽ ائين ڪرڻ سان اسان جو (ڊسپلي آئوٽ فنڪشن) بار بار دهرائجندو پيو. اچو ته وري هيپي فيس پروگرام ڏي موٽون، هي (ايڪس) واري کان وڌيڪ سهڻو لڳندو، يعني وري واپس 01 کي 58 ۾ 101 لوڪيشن تي وجهو. هاڻ پنهنجي پروگرام ۾ هڪ ٻي انسٽرڪشن وجهنداسون،هيءَ انسٽرڪشن پروگرام جي آخر ۾ هڻبي. اچو ته پنهنجو پروگرام اَي 106 کان اسيمبل ڪريو.
    -A106
    08F1:0106 JMP 100
    08F1:0108
    جي توهان ڊاس ورجن هڪ تي ڪم پيا ڪريو ته ته توهان کي هيڪس ڪوڊ، اِي ڪمانڊ سان لڳائڻي پوندي. ) EBF8h(
    -E106
    04B5:0106 CD..EB 20.F8
    جي هاڻ (ان ايمبل) ڪري ڏسنداسون ته
    -U100
    08F1:0100 B201 MOV DL, 01
    08F1:0120 B402 MOV AH, 02
    08F1:0140 CD21 INT 21
    08F1:0106 EBF8 JMP 0100
    توهان جمپ انسٽرڪشن جي شڪل کي ڏٺو. توهان ڌٺو ته ڪيئن جمپ100، (هيڪس اِي بي ايف8) کي اسيمبل ڪيو. توهانجو فلحال تفصيل ۾ وڃڻ ضروري ڪونهين، بس اسان توهانکي هڪ آئڊيا ڏني.، جيڪي پهريان 2 هيڪس ڊجٽ ٺهيا ان جي انسٽرڪشن هُئي (اِي بي). ياد ڪريو ته هي ڪوڊ آهي (شارٽ جمپ) جو. شارٽ جمپ ۽ لانگ جمپ ۾ ڇا فرق آهي توهان کي اڳتي هلي ٻُڌائينداسون. هتي ڏسڻو آهي ته (ايف8) جو ڪهڙو ڪم آهي، توهان شايد ايڊريس100 نه لڳائي هُئي جتي اسانکي جمپ ڪرڻو هو. اهو ان ڪري هو جو اها (رليٽِوِ جمپ) هُئي. مطلب ته بجاءِ ان جي جو اسان ايڊريس لڳايون جتي جمپ ڪرائڻو هُجي، جمپ اهو فاصلو پاڻ ئي طع ڪري ورتو جتي اسانکي جمپ ڪرائڻو هو. پوءِ به توهان سمجهو ٿا۔
    ته (ايف8) ڪو سينس نٿو ڏي. هن جا ٻه سبب آهن، هڪ جيئن ته جمپ پوئتي طرف آهي(بيڪورڊ) بائيٽس جا اُهي نمبر جن کي جمپ ڏياريو و_ڃي پيو اُهي ڪاٽو يا (نگيٽِو) آهن. جي اسان 8 بائيٽ جمپ (فارورڊ) لڳايون ته آسان انسٽرڪشن (اِي بي 08) ٿيندي. پر جيئن ته اسان کي پُٺيان (بيڪ ورڊ 8 بائيٽ ) جمپ ڪرڻو آهي. ته اسن نگيٽو نمبر پئدا ڪنداسون جن کي 00 مان 8 ڪٽ ڪري آڻبو. جي ايوهان وٽ (ايف ايف) آهي ۽ ان ۾ (1) ملايو ٿا ته توهان کي (00) ملندو. تنهنڪري توهان وٽ (00) آهي ۽ توهان ان مان (1) کي ڪٽ ڪيو آهي.، توهان کي وري (ايف اي) ملندو، وري (1) ڪٽ ڪبوته توهانکي (اِي بي) ملندوهيٺ 8 دفعا ڳڻپ ڪري توهان (اِي ڊي) سان (ايف سي)، (ايف بي)، ايف اي)، ايف9) ۽ ايف 8) حاصل ڪندا ويندئو. پر هتي اسان 8 جمپ ان مان حصل ڪيا، هناسان لاِ ٻيو سبب پئدا ڪيو۔
     
    4 ڄڻن هيء پسند ڪيو آهي.
  2. ڦلپوٽو فقير

    ڦلپوٽو فقير
    سينيئر رڪن

    شموليت:
    ‏27 اپريل 2009
    تحريرون:
    7,759
    ورتل پسنديدگيون:
    1,386
    ايوارڊ جون پوائينٽون:
    533
    ماڳ:
    شڪارپور
    سائين عبدالرزاق صاحب لاجواب سمجهاڻي آهي

    اهڙو عمل جاري رکجو

    سدائين گڏ
     
    2 ڄڻن هيء پسند ڪيو آهي.

هن صفحي کي مشهور ڪريو