??? ???** by kk4RGwmf

VIEWS: 5 PAGES: 66

									                        ‫جشٍّ آهْسػی‬
                       ‫اطوثلی‬
           ‫اطتاد : هٌِذص‬
             ‫عادل حظاص‬



‫.‬                                 ‫تِیَ کٌٌذٍ : هحوذ هحوذی‬
‫داًؼجْی کارػٌاطی هٌِذطی تکٌْلْژی ًزم افشار کاهپیْتز‬




‫1‬
‫تخغ اّل‬
                 ‫ًوایغ اطالعات‬                                             ‫فصل اّل‬

                                          ‫تایٌزی هطلق‬
                                 ‫تایٌزی تا عالهت هطلق‬
                                      ‫تایٌزی هکلول 1‬                      ‫- عـــــذدی‬
                                        ‫تایٌزی هکول 2‬
                                     ‫هثٌای ُؼت(‪)octal‬‬                                       ‫ًوایغ اطالعات‬
                                   ‫هثٌای ػاًشدٍ)‪)Hex‬‬
                                    ‫دُذُی غیز فؼزدٍ‬
                                    ‫دُذُی فؼزدٍ ػذٍ‬

                                                         ‫1- ‪EBSDIC‬‬
                                                                    ‫- غیز عــذدی‬
                                                     ‫2- ‪ASCII‬‬

                                         ‫- کذُای عولیاتی )‪) operational code‬‬




                                                                             ‫1) تایٌزی هطلق:‬

‫ثـای تجؼیل ٝؼػ اف هجٌبی 11 ثَ2 اف تمنیوبت هتْالی ٝؼػ ثـ 2 امتفبػٍ هی ىْػ.کَ‬
‫ُب اف آ عـیي‬  ‫ثَ عبؿد ل نوت ٍفـ ثـ مین. اف ک ٌبؿ ُن لـاؿ ػاػى ثبلیوب ًؼٍ‬
                     ‫ثبلیوبًؼٍ ثَ اّلیي ثبلیوبًؼٍ هجٌبی 2 ٝؼػ ثؼمت هی آیؼ.‬
                  ‫ًوبیو ػّػّیی ُـ ٝؼػ تٌِب اف همبػیـ ٍفـ ّ یک تيکیل هی ىْػ.‬

                                                                ‫هخبل:ٝؼػ 75 ؿا ثَ هجٌبی 2 ثجـیؼ‬
                                                                                    ‫‪57d=111001b‬‬

                                                                 ‫ًضْی ًوبیو هجٌبی2 ػؿ صبفَٚ:‬
                                                          ‫ًوبیو ػّػّیی ٝؼػ75 ػؿ صبفَٚ‬
‫.........‬           ‫1‬   ‫1‬   ‫1‬    ‫0‬       ‫0‬       ‫1‬   ‫......‬

                                                         ‫11 :‬     ‫هجٌبی2 ثَ هجٌبی‬       ‫تجؼیل ٝؼػ 75 اف‬
                                                                ‫02*1+12*0+22*0+32*1+42*1+52*1 = ‪111001b‬‬

                                                                   ‫اػکاالت ایي رّع:‬
                                     ‫1. ایي ؿّه اٝؼاػ هٌفی لبثل ًوبیو ًینتٌؼ.‬
                                      ‫2. لبػؿ ثَ اًزبم هضبمجبت + ّ - ًینتین.‬
                        ‫3. چْى ْٕل هيغٌ ًؼاؿین هيکل ٝؼم تفکیک اٝؼاػ ؿا ػاؿین.‬
‫ثَ ٌْٝاى هخبل ػّ ٝؼػ 75 ّ 8 ؿا ػؿ عبًَ ُبی صبفَٚ ؽعیـٍ هی کٌین ّ ثـای رؼا ىؼى‬
                                  ‫ایي ػّ ٝؼػ اف ُن اف یک فبٍلَ امتفبػٍ هی کٌین.‬
              ‫‪57d = 111001 b‬‬                             ‫‪8d = 1000 b‬‬

‫1111‬   ‫.‬    ‫.‬   ‫.‬       ‫1‬   ‫1‬        ‫1‬       ‫0‬       ‫0‬    ‫1‬           ‫1‬     ‫0‬    ‫0‬      ‫0‬               ‫…‬

‫اهب ثب تْرَ ثَ ایي ًکتَ کَ عبًَ ُبی صبفَٚ ثب همبػیـ ٍفـ ّ یک هٌٞی پیؼا هی کٌؼ‬
    ‫ّ عبًَ ُبی عبلی صبفَٚ هٌٞی ػاؿ ًینت پل ػؿ عبًَ ُبی عبلی کَ فـُ ىؼٍ امت یب‬
           ‫همؼاؿ یک یب همؼاؿ ٍفـ ّرْػ ػاؿػ ّ ایي ثبٝج هتَل ىؼى ػّ ٝؼػ هی ىْػ.‬
                                                              ‫تایٌزی تا عالهت هطلق:‬               ‫2 )‬
   ‫ًضْی ًوبیو ثَ ٍْؿت ثبیٌـی هی ثبىؼ ثب ایي تفبّت کَ ٝالهت ٝؼػ ُن هيغٌ هی ىْػ.‬
  ‫ػؿ ایي ؿّه ثـای ُـ تٞؼاػ ثیت یک لبلت ػؿ ًٚـ گـفتَ هی ىْػ ّ ایي ٝول هيکل ٝؼم‬
                           ‫تفکیک ؿا صل کـػٍ امت ّ ٝالهت ٝؼػ ًیق لبثل ًوبیو امت.‬
‫ٝالهت ٝؼػ ػؿ اّلیي ثیت اف موت چپ ( ثب اؿفه تـیي ثیت ) ػؿ ُـ لبلت لـاؿ هی گیـػ.‬


‫2‬
                                                                 ‫ًوبیو ٝؼػ 75 ػؿ ثبیٌـی ثب ٝالهت هٖلك‬
                    ‫0‬    ‫0‬     ‫1‬   ‫1‬   ‫1‬     ‫0‬       ‫0‬      ‫1‬

         ‫75 ‪00111001 ‬‬
         ‫75- ‪10111001 ‬‬
         ‫411- ‪11110010 ‬‬                                                              ‫هيکالت ایي ؿّه:‬
          ‫411- = ) 75-( + 75‬
                           ‫1. ػّ ًْٛ ٍفـ عْاُین ػاىت ( ٍفـ هخجت ّ ٍفـ هٌفی )‬
                            ‫2. ػؿ هضبمجبت اٝؼاػ هخجت ّ هٌفی هيکل عْاُین ػاىت‬
                  ‫3. صبٍل روٜ اٝؼاػ هخجت 75 ّ 75- هغبلف ٍفـ ( 411- ) هی ىْػ.‬
           ‫4. چْى ْٕل صبفَٚ هيغٌ امت ػؿ ًوبیو إالٝبت ّ اٝؼاػ هضؼّػیت ػاؿین.‬
 ‫اگـ تٞؼاػ ثیتِبی کلوبت هبىیي ‪ n‬ثبىؼ ثقؿگتـیي ّ کْچکتـیي اٝؼاػ لبثل ًوبیو ثَ‬
                                     ‫ؿّه ثبیٌـی ثبٝالهت هٖلك ثَ ٍْؿت همبثل امت.‬
        ‫1-‪n‬‬             ‫1-‪n‬‬
 ‫2 ……… 1+ 2- [‬   ‫]1-‬
   ‫7‬           ‫7‬
‫1 – 2 .……… 1 + 2-‬

                         ‫ثَ ٍْؿت همبثل امت‬       ‫هخبل: ‪ Range‬اٝؼاػ لبثل ًوبیو ػؿ لبلت 8 ثیتی‬
                                                                             ‫721+ ..……..…… 721-‬

                                                                             ‫3 ) تایٌزی هکول 1:‬
‫یٌٞی توبم‬             ‫ػؿ ایي ؿّه ثـای ثَ ػمت آّؿػى هٌفی یک ٝؼػ، ُـ ثیت ؿا هٞکْك هی کٌین.‬
                                                      ‫ٍفـُب یک ّ توبم یک ُب ٍفـ هی ىًْؼ.‬
                                         ‫هخبل:ٝؼػ 75- ؿا ثَ کوک ثبیٌـی هکول1 ثؼمت آّؿیؼ.‬

    ‫0‬         ‫0‬   ‫1‬     ‫1‬      ‫1‬   ‫0‬   ‫0‬   ‫1‬        ‫‪+57d = 111001b‬‬

    ‫1‬         ‫1‬   ‫0‬     ‫0‬      ‫0‬   ‫1‬   ‫1‬   ‫0‬        ‫‪-57d =11000110b‬‬

          ‫* ػؿ ًوبیو ٝؼػ 75- اف صبلت ػّػّیی ثَ صبلت ػُؼُی ًوی تْاًین اف ؿّه لجلی‬
    ‫امتفبػٍ کٌین فیـا اؿفه ٝؼػ ُْٝ ىؼٍ امت ّ ػؿ ٍْؿت امتمبػٍ همؼاؿ غلٖی ثؼمت هی‬
                                                                                     ‫آیؼ.‬
              ‫هخبل:تجؼیل ٝؼػ 75- اف صبلت ػّػّیی ثَ هجٌبی 11 ثب امتفبػٍ اف ؿّه لجل:‬
                       ‫7‬    ‫6‬    ‫5‬    ‫4‬    ‫3‬    ‫2‬    ‫1‬    ‫0‬
‫07- = 2*0+ 2*1+ 2*1+ 2*0+ 2*0+ 2*0+ 2*1+ 2*1 = ‪-57d = 11000110 b‬‬
                 ‫هيبُؼٍ هی ىْػ کَ رْاة صبٍل اف ایي ؿّه ثب همؼاؿ ّالٞی هتفبّت امت.‬
                                                                         ‫اػکاالت ایي رّع:‬
                                                    ‫1. روٜ ػّ ٝؼػ لـیٌَ ی ٍفـ ًوی ىْػ.‬
    ‫75 ‪00111001 ‬‬
    ‫75- ‪10111001 ‬‬
    ‫هکول ٍفـ‪11111111 ‬‬                             ‫2. ػّ ًْٛ ٍفـ ػاؿین (ٍفـ هخجت ّ ٍفـ هٌفی)‬

‫اگـ کلیَ ثیت ُب ٍففـ ثبىفؼ‬                     ‫0‬      ‫0‬      ‫0‬      ‫0‬   ‫0‬     ‫0‬   ‫0‬    ‫0‬
                                                                                             ‫ٍفـ هخجت‬
‫اگـ کلیؼ ُبی ثیت ُب 1 ثبىفؼ‬                  ‫1‬       ‫1‬      ‫1‬      ‫1‬    ‫1‬     ‫1‬   ‫1‬    ‫1‬
                                                                                             ‫ٍفـ هٌفی‬

                                             ‫3. هوکي امت روٜ ػّ ٝؼػ ػؿ هضؼّػٍ ربی ًگیـػ.‬

                                                                            ‫4 ) تایٌزی هکول 2 :‬
‫ً ضٍْ ی ً وبیو ا ٝؼاػ هٌ فی ػؿ ا یي ؿّه هت فبّت اف ؿّه لج لی ا مت یٞ ٌی ثـای ثؼ مت‬
‫آّؿػى هٌ فی یک ٝؼػ، اث تؼا هک ول آى ٝؼػ ؿا هی یبثین ّ مپل ثب ٝؼػ یک ر وٜ هی‬
                                                                              ‫کٌین.‬
‫....... ، ‪32bit، 16bit ، 8bit‬‬ ‫ْٕل لبلت ػؿ ایي ؿّه هٞوَآل هْـ ثی اف 8 امت یٌٞفی‬
                                                      ‫ْ‬
                                                                    ‫، ‪128bit ، 64bit‬‬
      ‫75+ ‪00111001 ‬‬                  ‫هخبل : ثبیٌـی هکول 2 ٝؼػ 75+ ؿا ثٌْینیؼ.‬
          ‫هکول 1 ‪11000110 ‬‬                               ‫75- ‪11000111 ‬‬
          ‫ثب یک روٜ ‪00000001 ‬‬                            ‫هکول 1 ‪00111000 ‬‬         ‫اهتضبى ػؿمتی‬
          ‫هی کٌین‬
‫3‬         ‫75- ‪11000111 ‬‬                                  ‫75+‬
                                                          ‫ثب یک روٜ هی کٌین ‪00000001 ‬‬
                                                          ‫75+ ‪00111001 ‬‬
                                                                      ‫ًکتَ:‬
‫یک ؿّه مبػٍ ثـای ثؼمت آّؿػى هکول 2 یک ٝؼػ ایي امت کَ اف موت ؿامت ٝؼػ‬
‫تب اّلیي 1 ؿا ًگَ ػاىتَ ّ ثمیَ ؿلن ُب ؿا هٞکْك هی کٌین. ( ٍفـ ثَ یک ّ یک ثَ‬
                                                          ‫ٍفـ تجؼیل هی ىْػ)‬
                         ‫75+ ‪0011100 1 ‬‬
                                ‫‪‬‬
                         ‫75- ‪11000111 ‬‬


    ‫ّ صبٍل روٜ ُـ ػّ ٝؼػ لـیٌَ ٍفـ هی‬         ‫ای ؿّه هيکل ػّ ًْٛ ٍفـ ؿا هٌتفی هی کٌؼ‬
                                                                                ‫ىْػ.‬

                        ‫هخبل: صبٍل روٜ اٝؼاػ 8+ ّ 8- ؿا ػؿ ثبیٌـی هکول 2 ثؼمت آّؿیؼ؟‬

            ‫8 ‪00001000 ‬‬
            ‫8- ‪11111000 ‬‬
            ‫هکول ٍفـ 00000000‬
            ‫‪‬‬
                        ‫توـیي: حبثت کٌیؼ ػؿ ؿّه ثبیٌـی هکول 2 فمٔ یک ٍفـ ّرْػ ػاؿػ؟‬


                                                                                ‫صل:‬
                                                     ‫کبفی امت کَ اف ٍفـ هکول ثگیـین‬
                         ‫ّ چْى عْػ ٍفـ ثب هکولو ثـاثـ امت پل تٌِب یک ٍفـ ّرْػ ػاؿػ.‬

           ‫0 ‪00000000 ‬‬
           ‫هکول 1‪11111111 ‬‬
           ‫ثب یک روٜ هی کٌین‬
           ‫‪00000001 ‬‬
           ‫هکول 2‪00000000 ‬‬



                                ‫هکول 2 ثٌْینیؼ؟‬   ‫هخبل: ٝؼػ 1- ؿا ػؿ لبلت 8 ثیتی ثبیٌـی‬

                ‫1+ ‪00000001 ‬‬
                ‫1- ‪11111111 ‬‬


                                ‫* 1- ػؿ ثبیٌـی هکول 2 ُویيَ ُوَ ثیت ُب ؿا یک هی کٌؼ.‬
          ‫1-‪n‬‬
    ‫2-[‬           ‫* اگـ لبلت ‪ n‬ثیتی ثبىؼ ‪ reng‬اٝؼاػ لبثل ًوبیو ػؿ ایي ؿّه ٝجبؿتنت اف‬
                                                                          ‫1-‪n‬‬
                                                                   ‫] 1- 2+………‬

 ‫ػؿ ؿّه هکول2 یک ٝؼػ ثیيتـ اف هکول1 ًيبى ػاػٍ هی ىْػ فیـا هکول1 ػّ ٍفـ ػاىت.‬
 ‫ػؿ لبلت 8 ثیتی ‪ reng‬اٝؼاػی کَ ثَ ؿّه ثبیٌـی هکول2 هی تْاى ًيبى ػاػ ثـاثـ فیـ‬
                                                                         ‫امت:‬
   ‫1-8‬       ‫1-8‬
‫2-[‬    ‫]721 .… 821-[ ‪……… +2 -1] ‬‬

                ‫توـیي: ًوبیو ثقؿگتـیي ٝؼػ هوکي ػؿ لبلت 8 ثیتی ثَ ؿّه ثبیٌـی هکول2 ؿا‬
                                                ‫721‪01111111 ‬‬               ‫ثٌْینیؼ؟‬


‫4‬
        ‫توـیي: ًوبیو کْچکتـیي ٝؼػ هوکي ػؿ لبلت 8 ثیتی ثَ ؿّه ثبیٌـی هکول 2 ؿا‬
                                                  ‫1 - 721- ‪-128 ‬‬    ‫ثٌْینیؼ؟‬

      ‫صل: ثَ ٝلت ایٌکَ ٝؼػ 821- ‪ reng‬اٝؼاػ ًینت ثَ ْٕؿ غیـ هنتمین همؼاؿ 821- ؿا‬
        ‫هضبمجَ هی کٌین ثَ ایي ٍْؿت کَ اثتؼا ٝؼػ 721- ؿا ثب امتفبػٍ اف ٝؼػ721+‬
         ‫ثؼمت هی آّؿین ّ مپل ایي همؼاؿ ؿا ثب ٝؼػ 1- روٜ هی کٌین، ًتیزَ ی صبٍل‬
                                                                   ‫ٝؼػ821- امت.‬
     ‫11111110‬    ‫721+ ‪‬‬
     ‫10000001‬    ‫721- ‪‬‬
     ‫11111111‬    ‫)1-(+ ‪‬‬
     ‫00000001‬    ‫821- ‪‬‬

                           ‫تب ٝؼػ لبثل ًوبیو امت.‬        ‫‪2n‬‬   ‫** اگـ ْٕل لبلت ُب ‪ n‬ثیتی ثبىؼ‬


                                                                     ‫‪: Over flow‬‬
                                   ‫ٌُگبهی کَ ػّ ٝؼػ ٍضیش هخجت ثب ُن روٜ ىًْؼ‬
               ‫921 ‪2 + 127 ‬‬       ‫رْاة ُوْاؿٍ هخجت هی ىْػصبل اگـ ػؿ احـ روٜ‬
  ‫1 0‪ ‬ؿلن ًملی‬                       ‫ػّ همؼاؿ هخجت یک رْاة هٌفی ثؼمت آیؼ ًْٝی‬
                ‫- ‪00000010 ‬‬
                                ‫مـؿیقی ؿط ػاػٍ امت ّ ػؿ ایي ٍْؿت عٖبی‪Over flow‬‬
                          ‫721‬     ‫ٍبػؿ هی ىْػ. ثـای اٍالس ایي هيکل ػّ ٝؼػ ًملی‬
 ‫‪Overflow‬‬   ‫)1-(+ ‪01111111 ‬‬      ‫ؿااف یک هؼاؿ ‪ XOR‬ؿػ هی کٌٌؼ، اگـ ؿلن ًملی‬
             ‫821- ‪10000001 ‬‬        ‫عبؿد ىؼٍ ًملی مْاؿ ثـ ثیت ٝالهت ثبُن یکنبى‬
‫ثبىٌؼ (ُـ ػّ ٍفـ یب ُـ ػّ یک)رْاة هؼاؿ ‪ٍ XOR‬فـ هیيْػ یٌٞی مـ ؿیقی ؿط ًؼاػٍ‬
    ‫امت ّ ؿلن ثؼمت آهؼٍ هٞتجـ امت ّ ؿلن ًملی عبؿد ىؼٍ فبلؼاؿفه امت. ّاگـ ػّ‬
   ‫ؿلن ًملی هغبلف ُن ثبىٌؼ رْاة هؼاؿ ‪ XOR‬یک هی ثبىؼ ّ ایي ًيبى هی ػُؼ کَ ؿلن‬
             ‫ًملی عبؿد ىؼٍ ثَ ٝؼػ هب اؿفه هی ػُؼ ّ ٝؼػ ثؼمت آهؼٍ ًب هٞتجـ امت.‬
                                  ‫ثَ کوک ؿّه همبثل هيکل ٝول تفـیك صل هی ىْػ.‬
                                                                             ‫)46-( + 43 = 76 - 43‬

                                                                  ‫ٝول ّـة ُن روٜ هتْالی امت.‬
                                                                        ‫43 + ..…… + 43 = 76 * 43‬

                                                                                 ‫‪ 67 ( ‬ثبؿ )‬
‫(ثَ تٞؼاػ عبؿد‬                                                ‫ٝول تمنین ُن تفـیك هتْالی امت‬
                                                                   ‫لنوت ثبؿ ) 92- 743 = 92÷743‬

    ‫ثَ ایي تـتیت هی تْاًین ػؿ کبهپیْتـ ُبی کَ فبلؼ هؼاؿ ّـة ّ تمنین ُنتٌؼ ایي‬
    ‫اٝوبل ؿا ىجیَ مبفی ّ اًزبم ػُین. چْى هبىیي ثب ًوبیو ٍفـ ّ یک کبؿ هی کٌؼ ّ‬
       ‫ایي ًوبیو ثـای هب ػیـ فِن امت ّ کبؿ کـػى ثب آى مغت امت هی تْاى آًِب ؿا‬
                              ‫فيـػٍ تـ کـػ تب ثتْاى ثَ ؿاصتی ثب آًِب کبؿ کـػ.‬
                                                 ‫ػّ ؿّه فیـ ثَ ایي هٌْٚؿ امت:‬

                                                                   ‫5 ) هثٌای ُؼت (‪:(octal‬‬
                                                             ‫3‬
    ‫چْى ؿاثَٖ ی 8 = 2 ثـلـاؿ امت هی تْاى ثَ ؿاصتی اٝؼاػ ؿا اف هجٌبی 2 ثَ 8 ّ‬
     ‫اف 8 ثَ 2 ثـػ. ثـای ایي هٌْٚؿ ٝؼػ ثَ هجٌبی 2 ؿا اف موت ؿامت مَ ؿلن، مَ‬
                   ‫ؿلن رؼا کـػٍ ّ ثب تْرَ ثَ رؼّل فیـ تجؼیل ؿا اًزبم هی ػُین.‬

          ‫= )01(75‬                                                                         ‫هخبل:‬
                                                  ‫‪00,111,001 b = 57 d‬‬           ‫)8(17 = )2(10011100‬

                                                                         ‫1 7‬
         ‫تجؼیل هجٌبی 8 ثَ 2 ثـٝکل یک تجؼیل هنتمین امت ّ ًیبفی ثَ تمنین ًؼاؿػ.‬

           ‫اٝؼاػ‬
                           ‫3‪B‬‬   ‫2‪B‬‬   ‫1‪B‬‬   ‫‪Octal‬‬
           ‫ػُؼُی‬

‫5‬
                     ‫0‬       ‫0‬       ‫0‬    ‫0‬    ‫0‬
                     ‫1‬       ‫0‬       ‫0‬    ‫1‬    ‫1‬
                     ‫2‬       ‫0‬       ‫1‬    ‫0‬    ‫2‬
                     ‫3‬       ‫0‬       ‫1‬    ‫1‬    ‫3‬
                     ‫4‬       ‫1‬       ‫0‬    ‫0‬    ‫4‬
                     ‫5‬       ‫1‬       ‫0‬    ‫1‬    ‫5‬
                     ‫6‬       ‫1‬       ‫1‬    ‫0‬    ‫6‬
                     ‫7‬       ‫1‬       ‫1‬    ‫1‬    ‫7‬
                                                               ‫6 ) هثٌای ػاًشدٍ (‪:)Hex‬‬
      ‫ثـای تجؼیل یک ٝؼػ اف هجٌبی 2 ثَ هجٌبی 61 اف موت ؿامت 4 ؿلن ثَ 4 ؿلن، ثیت‬
        ‫ُب ؿا رؼا هی کٌین ّ ثب امتفبػٍ اف رؼّل فیـ تجؼیل ؿا اًزبم هی ػُین ثـای‬
                       ‫تجؼیل هجٌبی61 ثَ 2 ًیق هی تْاى اف رؼّل فیـ امتفبػٍ کـػ.‬
             ‫اٝؼاػ‬
                      ‫‪B2 B2 B3 B4 Hex‬‬
             ‫ػُؼُی‬
                ‫0‬     ‫0‬    ‫0‬   ‫0‬  ‫0 0‬
                ‫1‬     ‫0‬    ‫0‬   ‫0‬  ‫1 1‬
                ‫2‬     ‫0‬    ‫0‬   ‫1‬  ‫2 0‬
                ‫3‬     ‫0‬    ‫0‬   ‫1‬  ‫3 1‬
                ‫4‬     ‫0‬    ‫1‬   ‫0‬  ‫4 0‬
                ‫5‬     ‫0‬    ‫1‬   ‫0‬  ‫5 1‬
                ‫6‬     ‫0‬    ‫1‬   ‫1‬  ‫6 0‬
                ‫7‬     ‫0‬    ‫1‬   ‫1‬  ‫+‪1 7 ‬‬
                ‫8‬     ‫1‬    ‫0‬   ‫0‬  ‫-‪0 8 ‬‬
                ‫9‬     ‫1‬    ‫0‬   ‫0‬  ‫9 1‬
               ‫01‬     ‫1‬    ‫0‬   ‫1‬  ‫‪0 A‬‬
               ‫11‬     ‫1‬    ‫0‬   ‫1‬  ‫‪1 B‬‬
               ‫21‬     ‫1‬    ‫1‬   ‫0‬  ‫‪0 C‬‬
               ‫31‬     ‫1‬    ‫1‬   ‫0‬  ‫‪1 D‬‬
               ‫41‬     ‫1‬    ‫1‬   ‫1‬  ‫‪0 E‬‬
               ‫51‬     ‫1‬    ‫1‬   ‫1‬  ‫‪1 F‬‬

          ‫= )01(75‬                                                                   ‫هخففبل:‬
                                                   ‫‪0011,1001 b = 39 H‬‬        ‫)61(93 = )2(10011100‬

‫ثَ ٍْؿت هجٌبی 2 امت ّلی آًچَ هب هفی‬                 ‫* ػؿ مینتن صبفَٚ ًگِؼاؿی اٝؼاػ هجٌبی61‬
                                                                    ‫ثیٌین ثَ ٍْؿت ‪ Hex‬امت .‬
                                         ‫توـیي1: هٞبػل ‪ٝ Hex‬ؼػ فیـ ؿا ثؼمت آّؿیؼ؟‬
    ‫4‪1010,0111,1111,0100 (2) = A7F‬‬
      ‫7 ‪A‬‬      ‫4 ‪F‬‬

‫توـیي2: هٞبػل ثبیٌـی ٝؼػ فیـ ؿا ثٌْینیؼ.‬
‫)2(1011,0001,0011,1111,1101,0110 = )61(‪6BFC8D‬‬

                     ‫6‬   ‫‪B‬‬   ‫‪F‬‬   ‫‪C‬‬        ‫8‬        ‫‪D‬‬

                            ‫توـیي: هکول 2 رْاة ثبال ثؼمت آّؿػٍ ّ ثَ ٍْؿت ‪ Hex‬ثٌْینیؼ.‬
‫)61(373049 = )2(1100,1110,1100,0000,0010,1001‬
  ‫9‬    ‫4‬    ‫3 0‬       ‫3 7‬
                 ‫‪6BFC4DH‬‬                           ‫هخبل: ٝؼػ ؿّ ثَ ؿّ چٌؼ ثبیتی امت ؟‬
     ‫ایي ٝؼػ6 ؿلن ‪ Hex‬امت ّ ُـ کؼام 4 ثیت هی ثب ىٌؼ پل ایي ٝؼػ 42 = 4 * 6 امت، 42‬
                                                            ‫ثیت ثـاثـ ثب 3 ثبیت امت.‬

            ‫‪6BFC4DH‬‬                           ‫توـیي: ٝؼػ همبثل هخجت امت یب هٌفی؟‬
    ‫ثـای تيغیٌ هخجت یب هٌفی ثْػى ٝؼػ ثب اؿفه تـیي ؿلن آًـا ػؿ ًٚـ هی گیـین. اگـ‬
       ‫ایي ؿلن اف 8 کْچکتـ ثبىؼ ( یٌٞی ثب اؿفه تـیي ثیت ایي ؿلن ٍفـ امت) کل ٝؼػ‬
   ‫هخجت امت ّ اگـ ایي ؿلن ثقؿگتـ هنبّی 8 ثبىؼ ( یٌٞی ثب اؿفه تـیي ثیت ایي ؿلن 1‬
                                           ‫امت) کل ٝؼػ هٌفی امت . ػؿ ایٌزب ػاؿین‬
‫)2(0110 = 6‬

‫6‬
                                 ‫چْى ثب اؿفه تـیي ثیت ٍفـ امت پل کل ٝؼػ هخجت امت.‬
    ‫* اگـ ثغْاُین ٝؼػ ؿا ثَ هکول 2 آى تجؼیل کٌین ّ ثٞؼ ثَ ٍْؿت ‪ Hex‬ثٌْینین اف ایي‬
                                                             ‫ؿّه امتفبػٍ هی کٌین:‬
       ‫اف موت ؿامت ُـ چَ ٍفـ ػاؿین ؿا هی ًْینین ّ اّلیي ؿلن ثٞؼ اف ٍفـ ؿا اف 61 ّ‬
                                                 ‫ثبلی اٝؼاػ ؿا اف 51 کن هی کٌین .‬


           ‫61 51 51 51 51 51‬                        ‫61 51‬                      ‫61 51 51 51‬
                                                                                                                ‫هخبل:‬
           ‫‪6BFC4dH‬‬                                  ‫‪7300H‬‬                      ‫‪650A‬‬
           ‫-‬                                        ‫-‬                          ‫-‬
           ‫3‪9403B‬‬                                   ‫00‪8D‬‬                       ‫6‪9AF‬‬



                                       ‫* ًتیزَ ی ٍفـ ًوبیبى گـ ایي امت کَ ػّ ٝؼػ هکول ُن ُنتٌؼ.‬
                                                                                         ‫هخبل:‬
                         ‫1‬     ‫1‬   ‫1‬    ‫1‬   ‫1‬   ‫1‬

                        ‫‪6BFC4D H‬‬
                      ‫3‪+ 9403B‬‬
                         ‫000000‬
                                                                                      ‫هخبل:روٜ ُبی همبثل ؿا اًزبم ػُیؼ‬
                               ‫1‬                                 ‫1‬   ‫1 1‬

          ‫‪8000 H‬‬                                        ‫‪650A H‬‬
        ‫000‪+ F‬‬                                        ‫‪+ 3AFE‬‬
           ‫0007‬                                         ‫800‪A‬‬


      ‫ػؿ ػّ هخبل ثبال هالصَٚ هی ىْػ کَ ًتیزَ ی ػّ ٝؼػ هٌفی هخجت (روٜ(2)) ّ ًتیزَ ی‬
    ‫روٜ ػّ ٝؼػ هخجت هٌفی (روٜ1 ) ىؼٍ امت. ػؿ ایي صبالت مـ ؿیقی ؿط ػاػٍ امت ّ ثـای‬
          ‫ؿفٜ ایي هيکل اف اٝؼاػ پبیٌی هکول 2 گـفتَ ّ ثب اٝؼاػ ثبالیی روٜ هی کٌین.‬


                               ‫1‬                                 ‫1‬   ‫1 1‬

          ‫‪8000 H‬‬                                        ‫‪650A H‬‬
        ‫0001 +‬                                        ‫205‪+ C‬‬
           ‫0009‬                                         ‫‪2A0C‬‬


                                                            ‫7) دُذُی غیزفؼزدٍ ػذٍ (‪:( unpacked Decimal‬‬
‫ثـای ًيبى ػاػى اٝؼاػ ػُؼُی (9،8،7،6،5،4،3،2،1،1) ػؿ صبفَٚ اصتیبد ثَ 4 = ] 11 2‪ [log‬ثیت‬
  ‫ػاؿین کَ ایي 4 ثیت 61صبلت ؿا پْىو هی ػُؼ ( ػؿ هجٌبی 61 ) کَ فمٔ هب 11 صبلتو‬
                                                                     ‫ؿا اصتیبد ػاؿین .‬

                        ‫‪ :( Binery Coded Decimal ):BCD‬ثَ 11 ؿلن اّل کؼُبی ‪ ( BCD )Hex‬گفتَ هی ىْػ.‬
‫‪0 … 9  30 … 39 H ‬‬                    ‫( ‪ )ASCII – CODE‬کؼ امکی‬

                                          ‫ًوایغ عذد در طیظتن دُذُی غیز فؼزدٍ ػذٍ:‬
      ‫ػؿ ایي مینتن ًوبیو، ُـ ؿلن ػُؼُی (‪ ،) BCD‬ػؿ یک ثبیت ًوبیو ػاػٍ هی ىْػ . ػؿ‬
    ‫ایي ثبیت 4 ثیت کن اؿفه ًيبى ػٌُؼٍ ی کؼ ‪ BCD‬ؿلن ػُؼُی هْؿػًٚـ، ّ 4 ثیت ثب اؿفه‬
    ‫ُوْاؿٍ ٍفـ هی ثبىؼ. ثٌبثـایي یک ٝؼػ ‪ n‬ؿلوی ػُؼُی ًیبف ثَ ‪ n‬ثبیت رِت ًوبیو ػؿ‬
                                          ‫صبفَٚ ثَ ٍْؿت ػُؼُی غیـ فيـػٍ ىؼٍ ػاؿػ.‬
     ‫هخبل: ػؿ مینتن ػُؼُی غیـ فيـػٍ ىؼٍ ٝؼػ 721 ثَ ٍْؿت فیـ ثَ ػّػّیی هٞبػل تجؼیل‬
                                                                          ‫هی ىْػ.‬

                                        ‫1‬                   ‫2‬              ‫7‬
‫7‬
                        ‫13‬            ‫23‬          ‫73‬
                     ‫1000,1100‬     ‫0100,1100‬   ‫1110,1100‬
                     ‫1110 0000 0100 0000 1000 0000‬



                                                             ‫21 = 001 * 7 + 101 * 2 + 201 * 1‬

                                                              ‫8) دُذُی فؼزدٍ ػذٍ:‬
    ‫ػؿ ایي ؿّه ػؿ ُـ ثبیت2 کؼ( ‪ 2() BCD‬ؿلن) ربػاػٍ هیيْػ یٌٞی ػؿُـ 4 ثیت یک کؼ‪BCD‬‬
      ‫ثـای صبلت ػُؼُی فيـػٍ ىؼٍ ّ غیـ فيـػٍ ىؼٍ ػمتْؿات مغت افقاؿی ّرْػ ػاؿػ.‬
       ‫0‬        ‫1‬            ‫2‬             ‫7‬
     ‫0000‬     ‫1000‬       ‫0100‬          ‫1110‬
                                                                                                   ‫‪BCD‬‬

    ‫ًکتَ: کلیَ ی ًوبیيِبی تّْیش ػاػٍ ىؼٍ ثـای اٝؼاػ ٍضیش ثْػًؼ. ّ ػؿ ّالٜ اهکبى‬
           ‫پـػافه ثـای ػاػٍ ُبی صمیمی ىٌبّؿ (اٝيبؿی) ػؿ پـػافًؼٍ ُب ّرْػ ًؼاؿًؼ.‬
                                 ‫پـػافه ػاػٍ ُبی صمیمی ثَ ٍْؿت فیـ اًزبم هی پؾیـػ:‬
                                                           ‫1 - ىجیَ مبفی ثَ ّمیلَ ًـم افقاؿ‬
                                                                           ‫2 - کوک پـػافًؼٍ‬

                                                                 ‫- اطالعات غیز عذدی:‬
    ‫ثـای‬  ‫ٝلت ًبهگؾاؿی غیـ ٝؼػی ثـای ایي امت کَ اؿفه هضبمجبت ؿیبّی ًؼاؿًؼ ّ ٍـفب‬
                                           ‫ؽعیـٍ ّ ثبفیبثی إالٝبت امتفبػٍ هی ىًْؼ.‬
                                                                                ‫هخل:‬
        ‫8‬
       ‫ثیت هی تْاًین 652= 2‬     ‫صؼّػا 19 تب ٝالهت ػاؿین کَ ثبیؼ کؼ گؾاؿی ىْػ هب ثب8‬
  ‫ًوبػ ؿا کؼ گؾاؿی کٌین ًوبیو إالٝبت ثَ ٍْؿت ًوبیو إالٝبت ثَ ٍْؿت ‪EBCDIC ASCII‬‬
                                                                           ‫هی ثبىؼ.‬
‫ّ "9" .… "0"‬   ‫" ‪"a" …. "z" ّ " A " … "Z‬‬


                                                                                                ‫‪:ASCII‬‬
‫گبم اّل ػؿ ایي ؿّه، کؼ گؾاؿی إالٝبت غیـ ٝؼػی امت. ُـچَ هْؿػ امتفبػٍ لـاؿ هی‬
‫گیـػ ثبیؼ ثَ هٞبػلِبی ٍفـ ّ یک تجؼیل ىْػ فیـا آًچَ ػؿ صبفَٚ ًوبیو ػاػٍ هی ىْػ‬
                                                                  ‫ٍفـ ّ یک امت.‬
‫10000010 "‪65 41H "A‬‬
‫01000010 "‪66 42H "B‬‬
   ‫ثَ ٌْٝاى هخبل اگـ ثغْاُین ػّ ؿىتَ ؿا ثبُن همبینَ کٌین آًچَ کَ همبینَ هی ىْػ‬
                                                      ‫کؼُبی آًِبمت ًَ عْػ آًِب.‬
                                             ‫652 ًوبػ ثَ مَ ػمتَ تمنین هی ىًْؼ.‬
        ‫13 …… 0‬     ‫1) ایي کؼُب کؼُبی کٌتـلی ُنتٌؼ، ّرْػ ػاؿًؼ ّلی ىکل ًؼاؿًؼ.‬
                                                          ‫هخبل: کؼ 72 ثـای ‪space‬‬
     ‫2) کؼُبی امتبًؼاؿػ ٍفضَ کلیؼ ُنتٌؼ کَ ثـ امبك فثبى اًگلینی تؼّیي ىؼٍ اًؼ.‬
                                                                       ‫721 .…… 23‬
   ‫3) کؼ ُبی ًْٛ مْم ػاػٍ ی ثیي 821 تب 652 ُنتٌؼ کَ هـثْٓ ثَ کؼُبی تْمَٞ یبفتَ‬
                                                                          ‫ُنتٌؼ.‬

                                                ‫- کذُای تْطعَ یافتَ (‪:) EBSDIC‬‬
‫کؼ ایي ػاػٍ ُب ثیي 522 ...... 821 هی ثبىؼ ّ ىبهل ًوبػُبیی امت کَ ثٞؼا پیو ثیٌی‬
 ‫ىؼٍ اًؼ. هخال فثبى ُبی ػیگـ غیـ اف اًگلینی کَ ٝالئوی ثیيتـی ػاؿًؼ هی تْاًٌؼ اف‬
                                                        ‫ایي لنوت امتفبػٍ کٌٌؼ.‬
 ‫هب ػؿ کبهپیْتـ ‪ A‬یب کؼ 56 ؿا ّاؿػ کٌین، فـم هٞبػل ایي ػّ ػؿ صبفَٚ ثَ یک ىکل‬
                                                                      ‫عْاُؼ ثْػ‬

                                                                    ‫‪A‬‬     ‫10000010‬
‫8‬
            ‫10000010 56‬
     ‫ًضٍْ ی تيغیٌ ایٌکَ ایي کؼ ثَ کؼام همؼاؿ اىبؿٍ هی کٌؼ ثَ ًگبٍ هب ثنتگی ػاؿػ.‬
                                                                  ‫ثَ ٌْٝاى هخبل:‬

‫; ‪x: bate‬‬   ‫10000010‬    ‫ٝؼػی‬
‫; ‪y: char‬‬   ‫10000010‬   ‫صـف یب ؿىتَ ای‬
                                                                  ‫-کذُا ی عولیاتی :‬
     ‫کؼ ُبیی کَ ثغو ُبیی اف هؼاؿُبی پـػافًؼٍ ؿا تضـیک هی کٌؼ کؼُبی ٝولیبتی گفتَ‬
                                             ‫هی ىْػ. کؼُبی ٝولیبتی عْػ ؿا ػؿ لبلت‬
                                                     ‫‪ً Instruction Format‬يبى هی ػٌُؼ.‬
    ‫هخال هب ثب ػیؼى ٝجبؿت 4 + 71 همؼاؿ 12 ؿا ػؿ ؽُي عْػ ایزبػ هی کٌین آًچَ کَ ثبٝج‬
       ‫اًزبم ایي کبؿ ىؼٍ امت همؼاؿ + امت. هبًٌؼ ُویي هخبل کؼ ُبی ٝولیبتی ثغو ُبی‬
       ‫هغتلف هؼاؿُبی پـػافًؼٍ ؿا ػمتکبؿی هی کٌٌؼ تب ٝول عبً اًزبم ىْػ. اٍٖالصب ثَ‬
                                          ‫آًِب ‪ Operation_Code‬یب ‪ OP code‬گفتَ هی ىْػ.‬
                                              ‫‪add A , B‬‬                          ‫هخبل:‬
                                            ‫‪mov C ,T‬‬




‫9‬
                                                                                               ‫تخغ اّل‬
‫ـزای‬      ‫ـااتار حافظـ‬
   ‫ـَ ّ اجـ‬          ‫طـ‬                                            ‫فصـ‬
                                                              ‫ـل دّم‬
                                                                                               ‫دطتْرات‬


     ‫پبمکبل‬                  ‫ثـًبهَ ثَ فثبى‬                           ‫هخبل: ارـای یک ػمتْؿ پبمکبل،‬
              ‫‪A‬‬                                                                                ‫‪*.pas‬‬
                                                             ‫‪*.exe‬‬
                             ‫‪‬‬       ‫‪C:= A+B‬‬

              ‫‪B‬‬                                                            ‫ارـایی‬                 ‫فبیل‬




              ‫‪C‬‬
     ‫صبفَٚ‬              ‫ػؿ هخبل ثبال ‪ A, B ,C‬هتغییـُبی ػمتْؿالٞول ُنتٌؼ ّ ثبیؼ ػؿ‬
                                                      ‫یک فْبی هيغٌ ػؿیبفت کٌٌؼ.‬
           ‫ثـای ارـای یک ثـًبهَ ػمتْؿات ّ ػاػٍ ُب ثبیؼ ثَ ٍْؿت فبیل ‪ .exe‬ػآیٌؼ.‬
‫ػؿ ٕی ارـای یک ثـًبهَ ػمتْؿات ثـًبهَ ػؿ ‪ CPU‬ارـا هی ىْػ. ػؿ ثـًبهَ ُبیی کَ ثَ‬
     ‫صبفَٚ ی فیبػ الفم ػاؿًؼ ثـًبهَ ػؿ صبفَٚ لـاؿ هی گیـػ ّ ػمتْؿ ثَ ػمتْؿ ّاؿػ‬
                      ‫پـػافًؼٍ هی ىْػ ّ پل اف ارـا ًتیزَ ثَ صبفَٚ هٌتمل هی ىْػ.‬

                      ‫صبفَٚ‬                                          ‫‪ADD‬‬    ‫‪DIV‬‬
               ‫4312‬     ‫1‬        ‫‪A‬‬             ‫‪DATA BUS‬‬              ‫‪MUL‬‬    ‫‪SUB‬‬
                       ‫…‬




              ‫‪242B‬‬      ‫7‬        ‫‪B‬‬                                                  ‫‪ CPU‬‬
                       ‫...‬




                                               ‫‪Address BUS‬‬

              ‫‪464B‬‬      ‫8‬        ‫‪C‬‬                                    ‫‪Register‬‬      ‫حجبت ُب‪‬‬
       ‫ثیي‬                                      ‫اؿتجبٕبت‬


                                             ‫صبفَٚ ّ پـػافًؼٍ ّ ًکبتی ػؿ هْؿػ آى:‬
       ‫1. إالٝبت، ػمتْؿات ّ ػاػٍ ُبی یک ثـًبهَ ثیي صبفَٚ ّ ‪ CPU‬تْمٔ ‪DATA BUS‬‬
                                                               ‫هجبػلَ هی ىْػ.‬
 ‫2. آػؿك ػاػٍ ُب ّ ػمتْؿات یک ثـًبهَ تْمٔ ‪ Address BUS‬ثیي صبفَٚ ّ ‪ CPU‬هجبػلَ‬
                                                                      ‫هی ىْػ.‬
    ‫‪ Address BUS‬یک هنیـ یک ٕـفَ اف ‪ CPU‬ثَ صبفَٚ امت. ّ تٞییي هی کٌؼ کَ کؼام ػاػٍ‬
                                            ‫ثبیؼ اف صبفَٚ ثَ ػاعل ‪ CPU‬کيیؼٍ ىْػ.‬
  ‫* ػؿ ػاعل ‪ CPU‬صبفَٚ ُبیی هْمْم ثَ ‪ Register‬یب حجبت ّرْػ ػاؿػ کَ صبفَٚ ُبی هْلت‬
    ‫ّ مـیٜ الٞول پـػافًؼٍ ًبم ػاؿًؼ. تٞؼاػ حجبت ُب هضؼّػ ّ تٌِب ػؿ رـیبى ارـای‬
                                               ‫ثـًبهَ هْؿػ امتفبػٍ لـاؿ هی گیـًؼ.‬
   ‫* هؼاؿُبی ػاعل پـػافًؼٍ تٌِب ػؿ ُـ لضَٚ یک ػمتْؿ ؿا ارـا هی کٌٌؼ ّ ػّ ػمتْؿ‬
                                                     ‫ثَ ْٕؿ ُوقهبى لبثل ارـا ًینت.‬
                                              ‫ثـًبهَ ُب اف ػّ لنوت تيکیل ىؼٍ اًؼ:‬
                                                ‫2) ػمتْؿات‬               ‫1) هتغیـُب‬
         ‫ثـای ایٌکَ یک ػمتْؿالٞول ثـای هبىیي لبثل فِن ثبىؼ ثبیؼ2 کبؿ ٍْؿت گیـػ:‬
   ‫1) تزقیَ ػمتْؿ ٝجبؿت: ثب تْرَ ثَ ایٌکَ ػؿ ُـ لضَٚ تٌِب یک ػمتْؿ ارـا هی ىْػ‬
                       ‫ػؿ یک ػمتْؿ ثیبثیؼ:‬          ‫لؾا یک ػمتْؿالٞول ثبیؼ ثَ ٍْؿت‬
                             ‫‪C:= A+B  C  A , C  C + B‬‬
‫ػؿ ّالٜ هبىیي 2 ػمتْؿ تزقیَ ىؼٍ ی لبثل ؿا کَ ُـ کؼام یفک ػمفتْؿالٞول (ٝولگفـ)‬
                                                                    ‫ػاؿًؼ هی فِوؼ.‬
‫‪MOW‬‬    ‫‪C,A‬‬
‫‪ADD C , B‬‬
                            ‫2) تـروَ ىؼى ػمتْؿات تزقیَ ىؼٍ، ػؿ لبلت ػمتْؿالٞول.‬
                     ‫لبلت ػمتْؿالٞول: ُـ لبلت ػمتْؿالٞول اف2 ثغو تيکیل ىؼٍ امت.‬
                  ‫1) ثبیت موت چپ کَ ًيبى ػٌُؼٍ ی کؼ ٝولیبتی ٝولگـ امت. (‪(OP_Code‬‬

‫01‬
                           ‫2) ثبیت یب ثیتِبیی کَ صبّی آػؿك ػاػٍ ُب یب کؼ ػاػٍ ُب هی‬
     ‫‪Op_code‬‬        ‫‪Data‬‬                                                       ‫ثبىٌؼ‬

                                   ‫ًکتَ: ثـای ُـٝولی تٌِب یک تـروَ ی عبً ّرْػ ػاؿػ.‬
                                                           ‫ًکتَ: ‪ data‬ثَ ػّ ٍْؿت امت:‬
                               ‫هتغیـ‬    ‫‪‬‬    ‫آػؿك ػاػٍ ُب‬
                             ‫همؼاؿ حبثت‬     ‫‪‬‬    ‫کؼ ػاػٍ ُب‬

                                       ‫‪ C:= A+B‬ؿا هی تْاى ثَ ٍْؿت فیـ ًْىت:‬       ‫ػمتْؿ‬
                                        ‫‪MOV C , A‬‬
                                        ‫‪ADD C , B‬‬
                                                        ‫لبلت ػمتْؿ‬
                                            ‫‪ ‬کؼ‬         ‫50‬     ‫‪464B‬‬    ‫7312‬
                                           ‫ٝولیبتی‬       ‫‪1E‬‬     ‫‪464B‬‬    ‫‪242B‬‬


                            ‫هخبل: ػمتْؿ همبثل ؿا ثَ ىکل ًوبػیي ّ اموجلی تزقیَ کٌیؼ.‬
‫‪D := b * b – 4 * a * a‬‬
                                ‫ًگبىت 1ثَ 1 ‪‬‬
               ‫‪D B‬‬          ‫‪D=B‬‬           ‫‪MOW D , B‬‬
               ‫‪DB+D‬‬         ‫2‪D = B‬‬        ‫‪MUL‬‬   ‫‪D,B‬‬
               ‫4‪T‬‬           ‫4=‪T‬‬           ‫4 , ‪MOV T‬‬
               ‫‪TT*A‬‬         ‫‪T = 4A‬‬        ‫‪MUL‬‬       ‫‪T,A‬‬
               ‫‪TT*C‬‬         ‫‪T = 4AC‬‬       ‫‪MUL‬‬       ‫‪T,C‬‬
               ‫‪DD–T‬‬         ‫‪T =B2 – 4AC‬‬   ‫‪SUB‬‬       ‫‪D ,T‬‬

       ‫* ػؿ فثبى ُبی مٖش ثبال یک ػمتْؿالٞول ثَ ‪ n‬ػمتْؿالٞول ػؿ مٖش هبىیي تجؼیل هی‬
                                                           ‫ىْػ. یٌٞی یک ًگبىت 1 ثَ ‪.n‬‬
      ‫* ػؿ فثبى اموجلی یک ػمتْؿالٞول ثَ یک ػمتْؿالٞول ػؿمٖش هبىیي تجؼیل هی ىْػ.‬
                                                                ‫یٌٞی یک ًگبىت 1 ثَ 1.‬
       ‫ثب امتفبػٍ اف اموجلی ثَ هضتْای فبیل ُبی ‪ *.obj ّ *.com ، *.exe‬ػمتـمی هی یبثین‬
         ‫یک فبیل ارـایی هزوَْٝ ای اف ٍفـ ّ یک ُب (لبلت ُبی ػمتْؿالٞول ) هی ثبىؼ.‬
        ‫ثب ارـای ثـًبهَ ػمتْؿات اف اّلیي ػمتْؿالٞول ثَ ػاعل پـػافًؼٍ ‪ load‬ىؼٍ ّ ػؿ‬
                                                                 ‫پـػافًؼٍ ارـا هی ىْػ‬

     ‫حجبت ُب ‪ :( Instruction Register) IR‬ػؿ ُـ لضَٚ ػمتْؿالٞول ػؿ ُـ صبل ارـا ؿا ػؿ عْػ‬
                                                                     ‫ًگِؼاؿی هی کٌؼ.‬
  ‫حجبت ػیگـی ػؿ پـػافًؼٍ ّرْػ ػاؿػ کَ ػؿ کبهپیْتـ ثب یکی اف ًبم ُبی فیـ ىٌبعتَ‬
                                                                         ‫هی ىْػ.)‪( PC/IP‬‬
                                        ‫) ‪ PC  ( Program Counter‬ىوبؿًؼٍ پـػافًؼٍ‬
                                   ‫)‪ IP  ( Instruction Painter‬اىبؿٍ گـ ػمتْؿالٞول‬
 ‫‪ PC/IP‬آػؿك ػمتْؿالٞول ػؿ صبل ارـا ؿا ػؿ عْػ ًگِؼاؿی هی کٌؼ. ػؿ ّالٜ آػؿك آعـیي‬
                                                                 ‫ػمتْؿالٞول ارـایی.‬

                                                                ‫اجزای دطتْرالعول:‬
                               ‫1. ُـ ػمتْؿالٞول ثـای ارـا4 هـصلَ ؿا ٕی هی کٌؼ:‬
          ‫‪ :Instruction fetching‬ػؿ ایي هـصلَ ػمتْؿالٞل هْؿػ ًٚـ اف صبفَٚ یب ‪ Ram‬ثَ ػؿّى‬
                                                           ‫پـػافًؼٍ ّاکيی هی ىْػ.‬
      ‫اثتؼا ػمتْؿ ّاکيی هی ىْػ مپل ػؿ حجبت ‪ IR‬همؼاؿ هی گیـػ پل اف ایي هـصلَ هبُیت‬
                                                       ‫ػمتْؿ ثـؿمی ّ هيغٌ هی ىْػ.‬

 ‫2. ‪ :Data fetching‬ػؿ ایي هـصلَ ػاػٍ یب ػاػٍ ُبی هْؿػًٚـ ثَ ػاعل پـػافًؼٍ کيیؼٍ‬
                                                                  ‫هی ىْػ.‬
‫11‬
                       ‫تٞؼاػ ػاػٍ ُب ّ ًْٛ آًِب ثَ هبُیت ػمتْؿالٞول ثنتگی ػاؿػ.‬

  ‫3. ‪ :Address Alining‬ػؿ ایي هـصلَ آػؿك ػمتْؿالٞول هٌٖمَ ثٞؼی تٌٚین هی ىْػ ثَ‬
                       ‫ب‬
   ‫ایي هٌٞب کَ اگـ یک ػمتْؿ ‪ jam‬یب فـاعْاًی ػاىتَ ثبىین اثتؼا آػؿك ارـای‬
    ‫ایي ػمتْؿات تٌٚین هی ىْػ ّ پل اف ارـای ایي لنوت هزؼػَ اػاهَ ی ثـًبهَ‬
                   ‫ا‬
‫ػًجبل هی ىْػ. ّ اگـ ػمتْؿ مبػٍ ثبىؼ ثب امتفبػٍ اف ْٕل ػمتْؿالٞول هی تْاى‬
                                       ‫ثَ آػؿك ػمتْؿالٞول ثٞؼی ػمت یبفت.‬

                                                                              ‫هخبل :‬
                                                                      ‫:‪L‬‬   ‫‪MOV C A‬‬
                                     ‫‪ADD C , B‬‬
                                      ‫........ .‬
                                     ‫...........‬
                                       ‫........‬
                                      ‫‪JMP‬‬      ‫‪L‬‬
                                      ‫0 , ‪MOV A‬‬

       ‫* اگـ ػمتْؿ پـىی ًجبىؼ آػؿك ػمتْؿالٞول ثٞؼی ثب تْرَ ثَ ْٕل ػمتْؿالٞول‬
                                                               ‫تٞییي هی ىْػ.‬
‫‪PC‬‬      ‫‪PC + length of Instruction‬‬

                           ‫5 ثبیت‬
                 ‫‪op-code‬‬
                                                       ‫5+‪œ‬‬      ‫آػؿك ػمتْؿالٞول ثٞؼی‬


                                      ‫4. ‪ ( :Executron‬ارـای ػمتْؿالٞول هْؿػًٚـ)‬
‫کؼ هْرْػ ػؿ ثغو ‪ op-code‬ػؿ ثغو حجبت ‪ IR‬ثبٝج هی ىْػ یکی اف هؼاؿُبی ٝولیبتی ػؿ ‪cpu‬‬
                                                 ‫فٞبل ىْػ ّ ػمتْؿالٞول ارـا ىْػ.‬
                         ‫ُویي چِبؿ هـصلَ ثـای ػمتْؿالٞول ثٞؼی ُن ارـا هی ىًْؼ.‬
   ‫تؼاّم ایي کبؿ ؿا ثَ ٌْٝاى ػؿ صبل ارـا ثْػى ثـًبهَ هی ىٌبمین ّ ػمتْؿالٞول ُب‬
‫پيت مـ ُن ارـا هی ىًْؼ تب ّلتی کَ ثَ ػمتْؿ ‪ STOP‬ثـمین. ػؿ ایي ٍْؿت میکل ارـای‬
     ‫ثـًبهَ عبتوَ هی یبثؼ ّ فـآیٌؼ کٌتـل ثـًبهَ ؿا ثَ مینتن ٝبهل هٌتمل هی کٌؼ.‬
                        ‫مئْال:چَ اتفبلی هی افتؼ ّلتی کَ کبهپیْتـ ‪ Hang‬هی کٌؼ؟‬
   ‫ُـ گبٍ یک ‪ op-code‬ثَ ػؿّى پـػافًؼٍ ‪ Fatch‬ىْػ کَ ثـای آى هؼاؿ هٞبػل ّرْػ ًؼاىتَ‬
                                               ‫ثبىؼ کبهپیْتـ اٍٖالصَ ‪ Hang‬هی کٌؼ.‬
                                                            ‫ب‬

                                         ‫* - ًحٍْ ی اجزای دطتْرات غیز هتْالی:‬
                                              ‫ثـای ایي کبؿ ػّ ؿّه ّرْػ ػاؿػ:‬
   ‫1) ػؿ ایي ؿّه ػؿ ػمتْؿ ‪ Jmp‬ثَ ْٕؿ هنتمین ػمتْؿ آػؿك ‪ ‬لـاؿ هی گیـػ. ػؿ ایي‬
‫ٍْؿت آػؿك اف یک کبهپیْتـ ثَ کبهپیْتـ ػیگـ فـق هی کٌؼ ثؼیي هٌٞی کَ هوکي امت ػؿ‬
      ‫یک کبهپیْتـ ػیگـ آػؿك ‪ ‬ثَ یک ػاػٍ ی ػیگـ کَ هؼ ًٚـ هب ًینت اىبؿٍ کٌؼ.‬

‫‪L1: mov‬‬   ‫4,‪Ax‬‬                  ‫‪‬‬
                                    ‫‪sub ax,bx‬‬
       ‫………‬
       ‫.………‬
       ‫.………‬
     ‫4,‪add ax‬‬
     ‫‪Jmp‬‬ ‫1‪L‬‬                     ‫‪‬‬      ‫‪-‬‬

‫ؿا‬   ‫2(ػؿ ایي ؿّه آػؿك ًنجی هضل پـه ًگَ ػاؿی هی ىْػ ثَ ایي تـتیت کَ آػؿك ‪ - ‬‬
                                         ‫ثب آػؿك ‪ IP‬روٜ کـػٍ ّ ػؿ حجبت ‪ IP‬هی ؿیقین.‬
                                                             ‫ىکل ‪IP=  +  - = ‬‬
                                                                                 ‫ثبال:‬

                               ‫ًکتَ: :ىکل ًگَ ػاؿی آػؿك ُبی پـىی ثَ ٍْؿت ًنجی امت.‬


‫21‬
                                                                                ‫تخغ اّل‬
                           ‫طااتار حافظَ‬                                         ‫فصل طْم‬
                                                        ‫تزًاهَ ُا‬
 ‫ُـ ثـًبهَ صؼاکخـ اف چِبؿ لَٖٞ صبفَٚ تيکیل ىؼٍ امت کَ هی تْاًٌؼ ثَ ُن چنجیؼٍ‬
                                                             ‫یب ػّؿ اف ُن ثبىٌؼ.‬
  ‫ًکتَ: ثَ ُـ لَٖٞ یک ‪ segment‬گفتَ هی ىْػ ّ صؼاکخـ هی تْاًؼ ‪ 64kb‬ػاىتَ ثبىین ایي‬
                         ‫لَٖٞ ػؿ یک صبفَٚ ی ثَ ُن چنجیؼٍ (پیْمتَ) لـاؿ هی گیـػ.‬
                            ‫ًکتَ:ُـ مگوٌت ػؿ صبفَٚ ػاؿای یک آػؿك ىـّٛ هی ثبىؼ‬
                                             ‫کَ ثَ آى آػؿك مگوٌت گفتَ هی ىْػ.‬
   ‫ًکتَ:ثـای ُـ مگوٌت ػؿ پـػافًؼٍ یک حجبت ّرْػ ػاؿػ کَ ایي حجبت ُب آػؿك ىـّٛ‬
                                                     ‫مگوٌت ؿا ًگَ ػاؿی هی کٌٌؼ.‬
                                                   ‫حجبت ُبی لَٖٞ ػؿ پـػافًؼٍ:‬
                                              ‫ػزّع کَ طگوٌت (‪)code segment‬‬      ‫‪: cs‬آدرص‬
                             ‫‪code‬‬                         ‫ػزّع(‪)data segment‬‬    ‫‪: ds‬آدرص‬
                    ‫‪Cs=‬‬
                           ‫‪segment‬‬                        ‫ػزّع(‪(stack segment‬‬   ‫‪: ss‬آدرص‬
                                                         ‫ػزّع(‪)Extra segment‬‬    ‫‪ :Es‬آدرص‬


                    ‫‪Ds=‬‬     ‫‪Data‬‬
                           ‫‪segment‬‬


                    ‫‪Ss=r‬‬     ‫‪stack‬‬
                                 ‫‪B‬‬
                           ‫‪segment‬‬


                    ‫‪Es=‬‬    ‫‪Extra‬‬
     ‫‪stack‬‬                      ‫‪r‬‬
                           ‫‪segment‬‬
                                     ‫‪SS=r‬‬

                                     ‫ًکتَ: هضل ًينت مگوٌت ُب ػؿ صبفَٚ ػیٌبهیک‬
                                    ‫هی ثبىؼ ثؼیي هٌٞی کَ ػؿك ىـّٛ مگوٌت ُب ػؿ‬
                                    ‫لضَٚ ی ارـا هيغٌ هی ىْػ. ػؿ ایي آػؿك ُب ػؿ‬
                                         ‫ػّ ثبؿ ارـای ارـا ثب ُن ثـاثـ ًینتٌؼ.‬
    ‫ثـای مگوٌت ُب ُیچ تـتیجی ّرْػ ًؼاؿػ ّ هوکي امت ػؿ ربُبی هغتلف صبفَٚ لـاؿ‬
                                                                           ‫گیـًؼ.‬
                                                              ‫کارایی طگوٌت ُا:‬
                                 ‫ُـ مگوٌت ثـًبهَ ّٙیفَ ی عبٍی ؿا ثـِٝؼٍ ػاؿػ:‬
           ‫1) ‪ :code segment‬ػمتْؿات یک ثـًبهَ ارـایی ػؿ ایي مگوٌت لـاؿ هی گیـًؼ.‬
‫2)‪ :Data segment‬هتغیـُبی اٍلی ثـًبهَ کَ هی تْاًٌؼ آؿایَ ُن ثب ىٌؼ ػؿ ایي مگوٌت‬
                                                                  ‫لـاؿ هی گیـًؼ.‬
‫3)‪ :stack segment‬هتغیـُبی هضلی، آػؿمِبی ثبفگيتی ّ فـاعْاًی فیـ ثـًبهَ ُب ػؿ ایي‬
                                                            ‫مگوٌت لـاؿ هی گیـًؼ.‬
 ‫4)‪ :Extra segment‬ثـای صبلتی کَ ػاػٍ ُبی ثیيتـ اف ‪ 64kb‬ثبىؼ، ػاػٍ ُب ّ إالٝبت هی‬
                              ‫تْاًٌؼ ٝالٍّ ثـ فْبی ‪ data‬ػؿ ایي مگوٌت لـاؿ ثگیـًؼ.‬
                                                                 ‫‪:Displacement ّ Offset‬‬
   ‫آػؿك ارـای یک مگوٌت ًنجت ثَ آػؿك ىـّٛ مگوٌت هـثَْٕ تٞییي هی گـػػ کَ ثَ آى‬
                                                       ‫‪ displacement‬یب ‪ offset‬هی گْیٌؼ.‬
                                                                               ‫هٞوْال‬
‫َ ثـای ‪ code segment‬اف ‪ ّ ، Offset‬ثـای هبثمی مگوٌت ُب اف ‪ displacement‬امتفبػٍ هی‬
                                                                                    ‫ىْػ‬

                                      ‫آػؿك اّلیي ػمتْؿالٞول ًنجت ثَ ىـّٛ ٍفـ امت.‬
                ‫0‬
                     ‫آػؿك آعـیي ػمتْؿالٞول ًنجت ثَ ىـّٛ، ثَ مبیق مگوٌت ّاثنتَ امت‬
      ‫‪code‬‬          ‫ًکتَ: اگـ مگوٌت پـ ثبىؼ آػؿك آعـیي ًمَٖ ثَ ٍْؿت ‪ FFFF‬هی ثبىؼ.‬
             ‫‪FFFF‬‬
                     ‫ثـای ًيبى ػاػى آػؿك ّالٞی یک ػمتْؿالٞول ثبیؼ ثغو مگوٌت ؿا ثب‬
                                                                      ‫‪ offset‬روٜ کـػ.‬

‫31‬
     ‫آدرص ّاقعی‬      ‫‪ + Offset‬آدرص تخغ طگوٌت =‬
                                                                                    ‫دطتْرالعول‬
                           ‫‪Segment : Offset‬‬               ‫کَ ثَ ٍْؿت همبثل ًيبى ػاػٍ هی ىْػ.‬
                                                                                        ‫هخآل:‬
‫تخغ طگوٌت‬        ‫‪‬‬         ‫71‪212B : 0E‬‬        ‫‪‬‬   ‫ػمتْؿ‬    ‫ثغو ‪Offset‬‬

      ‫ًکتَ: ثب تْرَ ثَ مگوٌت ُب، ثـًبهَ ُب اهکبى رب ثَ رب پؾیـی ( ‪ ( Relocatable‬ؿا‬
               ‫پیؼا کـػٍ اًؼ یٌٞی هی تْاى آًِب ؿا ؿّی کبهپیْتـُبی هغتلف ارـا کـػ.‬
     ‫‪ 12390 : 0452B‬آػؿك‬                         ‫توزیي:آػؿك ّالٞی ػمتْؿ همبثل چینت؟‬
                                                                               ‫ػمتْؿ‬
                                                  ‫هيغٌ کٌیؼ ٝؼػ صبٍل چٌؼ ثیتی امت؟‬
                    ‫09321‬
                 ‫‪+ 0452B‬‬
                                      ‫‪ ‬تعذاد ارقام‬       ‫5‬   ‫*‬   ‫4‬   ‫22=‬   ‫تعذاد تیتِا‬
                   ‫‪168BB‬‬
                                                   ‫آػؿك ّالٞی ػمتْؿ ‪‬‬               ‫‪Hex‬‬

                                                  ‫توزیي:آػؿك ّالٞی ػمتْؿ ‪ 16800 = 00BB‬چینت؟‬
                   ‫00861‬
                ‫‪+ 00BB‬‬
      ‫آػؿك‬       ‫‪168BB‬‬
                                                                                 ‫ّالٞی ػمتْؿ ‪‬‬


             ‫ًکتَ: ّلتی آػؿك ّالٞی ػّ ػمتْؿ ثب ُن یکنبى ثبىؼ هی گْیین آى ػّ ػمتْؿ‬
                                                                            ‫هٞبػلٌؼ.‬
                          ‫هخآل ػؿ ػمتْؿ ثبال هٞبػلٌؼ چْى آػؿك ّالٞی آًِب یکنبى امت.‬




‫41‬
                                                                            ‫تخغ اّل‬
                                                 ‫فصل چِارم‬
‫طااتواى پزداسًذٍ ُا ّ ّیژگی ُای‬
                                                                                ‫آًِا‬




                                                                 ‫ّیژگی پزداسًذٍ ُا‬
                   ‫- صفز آدرطَ‬      ‫قالة دطتْرالعول‬     ‫1)‬
                     ‫- یک آدرطَ‬
                    ‫- دّ آدرطَ‬
                    ‫- طَ آدرطَ‬    ‫حجن فضای آدرص دُی‬     ‫2)‬
                           ‫تْاى پزداسع هْاسی تیت ُا‬     ‫3)‬
                                         ‫فزکاًض کار‬     ‫4)‬
                             ‫حافظَ ُای پٌِاى (‪)Cash‬‬     ‫5)‬
                                     ‫پزداسع لْلَ ای‬     ‫6)‬


                                                               ‫1) قالة دطتْرالعول:‬
     ‫پـػافًؼٍ ُبی ٍفـ آػؿمَ( ‪ :(stack machin‬ػؿ ایي پـػافًؼٍ ُب ػمتْؿات ػؿ مٖش هبىیي‬
                                                                         ‫ثَ لبلت ُبیی‬
     ‫اف ػمتْؿالٞول کَ فمٔ ػاؿای ‪ op-code‬امت تـروَ هی ىْػ. ػؿ ایي هبىیٌِب صبفَٚ‬
                                                 ‫ثَ ٍْؿت یک پيتَ (‪ٝ (stack‬ول هی کٌؼ.‬
     ‫)‪Last Input First :(LIFO‬‬   ‫‪ :Stack‬صبفَٚ ای کَ ػؿ آى هجتٌی ثـ (‪ (LIFO‬هی ثبىؼ.‬
                                                                               ‫‪output‬‬
                    ‫ػؿ ایي هبىیي ُب حجبتی ثَ ًبم ‪ Acc‬هغفف ‪ّ Accumul ator‬رْػ ػاؿػ.‬
       ‫اگـ ثغْاُین ػمتْؿ ‪ C = A+B‬ؿا ػؿ ایي هبىیٌِب اًزبم ػُین ثَ ٍْؿت فیـ ػؿ هی‬
                                                                               ‫آیؼ.‬

         ‫‪in‬‬   ‫‪input‬‬ ‫))‪to Acc(Read (A‬‬
         ‫‪str store Acc into‬‬  ‫‪stack‬‬
         ‫‪in‬‬   ‫‪input‬‬ ‫))‪to Acc(Read (b‬‬
         ‫‪Add Add Acc with stack (Top) and stor result into Acc‬‬
         ‫‪Out output‬‬
                                                              ‫پزداسًذٍ ُای یک آدرطَ:‬

                 ‫ػؿ ایي پـػافًؼٍ ُب لبلت ػمتْؿالٞول اف ػّ ثغو تيکیل ىؼٍ امت.‬
‫یک ثغو ‪ ّ op-code‬ثغو ػیگـی ثَ ًبم ‪ address‬کَ ایي ثغو آػؿك یک ػاػٍ ؿا ًگِؼاؿی هی‬
                                                                             ‫کٌؼ.‬
                              ‫ػؿ ایي هبىیٌِب ثـای ٝولگـُبی کَ ًیبف ثَ 2 اپـًؼ‬
   ‫‪Op-code‬‬    ‫‪Address‬‬   ‫ػاؿًؼ یک اپـًؼ ُوْاؿٍ حجبت ‪ Acc‬هی ثبىؼ کَ هبىیي ثَ ْٕؿ‬
                            ‫ّوٌی ثَ آى هـارَٞ هی کٌؼ ّ اپـًؼ ػیگـ ثَ ْٕؿ ٍـیش‬
                                                               ‫آػؿك ػُی هی ىْػ.‬
     ‫ػؿ ایي پـػافًؼٍ ُب ػیگـ صبفَٚ هبًٌؼ ‪ٝ stack‬ول ًوی کٌؼ ػؿُْٝ مبیق لبلت ُب‬
                                                                ‫افقایو هی یبثؼ.‬
    ‫اگـ ثغْاُین ػمتْؿ ‪ C= A+B‬ؿا ػؿ ایي هبىیي ُب اًزبم ػُین ثَ ٍْؿت فیـ ػؿ هی‬
                                                                             ‫آیؼ:‬

      ‫‪Lod‬‬     ‫‪A‬‬   ‫‪Acc‬‬   ‫‪‬‬   ‫)‪(A‬‬
      ‫‪Add‬‬     ‫‪B‬‬   ‫‪Acc‬‬   ‫‪‬‬   ‫) ‪( Acc ) + ( B‬‬
      ‫‪Str‬‬     ‫‪C‬‬   ‫‪C‬‬     ‫‪‬‬    ‫) ‪( Acc‬‬
‫51‬
                                                                        ‫پزداسًذٍ ُای دّآدرطَ:‬
                        ‫آػؿك‬       ‫آػؿك‬           ‫ػؿ ایي هبىیٌِب لبلت ػمتْؿالٞول ٝالٍّ ثـ‬
     ‫‪op-code‬‬
                     ‫اپـًؼ اّل‬   ‫اپـًؼ ػّم‬       ‫ثغو ‪ op-code‬ػاؿای ػّ ثغو 1‪ً address2 , address‬یق‬
                                                                                       ‫هی ثبىؼ.‬
                   ‫ػؿ ایي هبىیٌِب ُـ ػّ اپـًؼ ثَ ْٕؿ ٍـیش آػؿك ػُی هی ىًْؼ.‬
 ‫ثٞؼآ ػؿ ایي‬   ‫ًکتَ: (ُـ ػّ اپـًؼ ًوی تْاًٌؼ ثَ ْٕؿ ُوقهبى اف یک صبفَٚ ثبىؼ)‬
                                                               ‫ؿاثَٖ ثضج هی ىْػ‬
   ‫اگـ ثغْاُین ػمتْؿ ‪ C = A+B‬ؿا ػؿ ایي هبىیٌِب اًزبم ػُین ثَ ٍْؿت فیـ هی ىْػ.‬
‫‪mov‬‬            ‫‪C,A‬‬
‫‪ADD‬‬            ‫‪C,B‬‬

                                                      ‫پزداسًذٍ ُای طَ آدرطَ:‬
 ‫ػؿ ثْٞی اف ٝولگـ ُب ٝالٍّ ثـ ػّ ٝولًْؼ کَ هضبمجبت ؿّی آًِب اًزبم هی گیـػ یک‬
 ‫ٝولًْؼ ُن ثـای ًگِؼاؿی ًتیزَ الفم امت. کَ ػؿ هبىیٌِب هی تْاى ثَ ْٕؿ ُوقهبى ُـ‬
                                            ‫كۀ ایي ٝولًْؼ ُب ؿا آػؿك ػُی کـػ.‬

                       ‫آػؿك اپـًؼ‬      ‫آػؿك‬          ‫آػؿك‬
     ‫‪op-code‬‬     ‫‪w‬‬
                           ‫اّل‬       ‫اپـًؼ ػّم‬     ‫اپـًؼ مْم‬
                                                                 ‫ثیتی‪W ‬‬   ‫تٞییي کٌٌؼٍ 8 یب 61‬
                          ‫مینتن ُبی ( ‪ ) vax‬ػاؿای پـػافًؼٍ ُبی مَ آػؿمَ ُنتٌؼ.‬
   ‫اگـ ثغْاُین ػمتْؿ ‪ C = A+B‬ؿا ػؿ ایي هبىیٌِب اًزبم ػُین ثَ ٍْؿت فیـ هی ىْػ:‬
 ‫‪add‬‬   ‫‪C,A,B‬‬    ‫) ‪( vax‬‬
                  ‫طْال: ٝلت ایٌکَ هبىیٌِبی مَ آػؿمَ کبؿثـػ چٌؼاًی ًؼاؿًؼ چینت؟‬
     ‫1- ػؿ ثنیبؿی اف پـػافه ُب ًتیزَ ی پـػافه ػؿ یکی اف عْػ اپـًؼ ُبی ىـکت‬
                   ‫کٌٌؼٍ ػؿ پـػافه ًگِؼاؿی هی ىْػ ّ ًیبف ثَ اپـًؼ رؼیؼ ًینت.‬
 ‫2- ثب مَ آػؿمَ ىؼى لبلت ُبی ػمتْؿالٞول افقایو یبلتَ ّ مـٝت ارـای ثـًبهَ ؿا‬
                                                                   ‫کبُو هی ػُؼ.‬
                   ‫* ػؿ صبل صبّـ پـػافًؼٍ ُب ثَ ٍْؿت ػّ آػؿمَ مبعتَ هی ىًْؼ.‬
                                                       ‫2) حجن فضای آدرص دُی :‬
  ‫پٌِبی آػؿك ثبك ( ‪ ( address bus‬صؼاکخـ فْبی لبثل آػؿك ػُی ( صزن صبفَٚ ) ؿا هيغٌ‬
                                                                            ‫هی کٌؼ‬
                                                                            ‫هخآل:‬
‫تعذاد تیت ُای آدرص تاص‬

‫پزداسًذٍ 8 تیتی‬                                   ‫82‬    ‫=‬   ‫‪2568 B‬‬
     ‫‪216 = 64KB‬‬                     ‫ُبی لبثل آػؿمی ػؿ پـػافًؼٍ ُبی هغتلف ‪‬‬          ‫تٞؼاػ ثبیت‬
‫پزداسًذٍ 61 تیتی‬
‫‪232 = 4GB‬‬
‫پزداسًذٍ 23 تیتی‬

 ‫کبهپیْتـُبی 6818 ػاؿای آػؿك 12 ثیتی هی ثبىؼ یٌٞی ػاؿای ‪ 220 =1MB ،RAM‬هی ثبىؼ.‬
      ‫62 * 132‬         ‫مئْال: ‪ 64 RAM‬گیگب ثبیتی ػاؿای آػؿك ثبك چٌؼ ثیتی امت؟‬
‫ًکتَ: هضؼّػیت ُبی صزن فْبی لبثل آػؿك ػُی هبًٜ اف ارـای ثنیبؿی اف پـػافًؼٍ ُب‬
                                                                  ‫ػؿ ‪ cpu‬هی ىْػ.‬

                                                ‫3 ) تْاى پزداسع هْاسی تیت ُا:‬
    ‫هخبل: صؼاکخـ تٞؼاػ اؿلبهی هب هی تْاًین ثؼّى هضبمجَ ی ػمتی ػؿ ػُي عْػ ؿّی‬
   ‫آًِب هضبمجَ اًزبم ػُین یک ؿلوی هی ثبىؼ. هخآل ػؿ ّـة ُبی همبثل هب ّـة اّل ؿا‬
                 ‫62 * 73‬       ‫ّ‬        ‫6 * 7‬             ‫مـیٞتـ اًزبم هی ػُین.‬
    ‫پـػافًؼٍ ُن ىجیَ ؽُي اًنبى ٝول هی کٌؼ. ُـ چٌؼ یک پـػافًؼٍ تٞؼاػ ثبیت ُبی‬
 ‫ثیيتـی ؿا ػؿ یک لضَٚ پـػافه کٌؼ هی تْاًؼ ػؿ فهبى کوتـی هضبمجبت ؿا اًزبم ػاػٍ‬
                                            ‫ّ ػؿ ًتیزَ مـٝت ثیيتـی ػاىتَ ثبىؼ.‬
  ‫هخبل: پـػافًؼٍ ُبی 8 ػّ تب ػاػٍ ی 8 ثیتی ؿا ثب ُن روٜ هی کٌٌؼ. روٜ فیـ ؿا‬
 ‫پـػافًؼٍ ُبی 61 ثیتی ػّ تب ػاػٍ ی 61 ثیتی ؿا ثب‬       ‫ػؿ 4 هـصلَ اًزبم هی ػُؼ.‬
                           ‫ُن روٜ هی کٌٌؼ. روٜ فیـ ؿا ػؿ 2 هـصلَ اًزبم هی ػُؼ.‬


‫61‬
     ‫پـػافًؼٍ ُبی 23 ثیتی ػّ تب ػاػٍ ی 23 ثیتی ؿا ثب ُن روٜ هی کٌٌؼ. روٜ فیـ ؿا‬
                                                       ‫ػؿ 1 هـ صلَ اًزبم هی ػُؼ.‬
           ‫7362‬
         ‫9235 +‬                      ‫ْٝاهلی کَ ثـ تْاى هْافی ثیت ُب تأحیـ ػاؿًؼ:‬
                                                          ‫‪. Data bus‬‬  ‫1) پٌِای‬
                                                         ‫2) اًذاسٍ ی ثثات ُا .‬
       ‫ًکتَ: اگـ یک مینتن 61 ثیتی ثبىؼ ّ یکی اف ٝؼػ ُب 8 ثیتی ثبىؼ ثَ اًؼافٍ ی‬
                        ‫تٞؼاػ ثیت ُبیی کَ یکی اف آًِب کن ػاؿػ ٍفـ لـاؿ هی گیـػ.‬

                                                    ‫ٍفـُبی گؾاىتَ ىؼٍ‬   ‫1111111111111111‬
                  ‫1111111111111111‬

                                                      ‫3) کلیذ یا ‪ word‬یک طیظتن.‬
   ‫هخآل ّلتی کَ هب ػؿ ‪ C‬یک ػاػٍ ی ‪ int‬تٞـیف هی کٌین. اگـ ُـ مینتن 61 ثیتی ثبىؼ‬
  ‫ثـای ‪ 2 ، int‬ثبیت ػؿ ًٚـ هی گیـػ ّ اگـ مینتن 23 ثیتی ثبىؼ ثـای ‪ 4 ، int‬ثبیت ػؿ‬
                                                                     ‫ًٚـ هی گیـػ.‬
          ‫‪ Data bus‬یک ؿاثَٖ ی هنتمین ثب تْاى پـػاؿه هبىیي ػاؿػ.‬     ‫ًکتَ: پٌِبی‬
                                                        ‫3) فزکاًض کار پزداسًذٍ:‬
  ‫پـػافًؼٍ ثـای افـاػی ػمتْؿات الوبًی ثَ ًبم کـینتبل ػاؿػ. کَ ایي لنوت اهْاد‬
                                ‫الکتـیکی ؿا فیلتـ کـػٍ ّ ثَ ٍْؿت پبلل ػؿ هی آّؿػ‬
                                 ‫‪ : Pulse‬ثَ تکبى ُبی الکتـیکی پبلل گفتَ هی ىْػ.‬
 ‫‪ Clock time‬یک ػمتْؿالٞول: ثَ تٞؼاػ پبلل ُبی هْؿػ ًیبف رِت ارـای یک ػمتْؿالٞول‬
                                                      ‫آى ػمتْؿالٞول گفتَ هی ىْػ.‬
                    ‫فـکبًل: ثَ تٞؼاػ پبلل ُب ػؿ ّاصؼ فهبى فـکبًل گفتَ هی ىْػ.‬
               ‫طْال: هؼت فهبى الفم رِت ارـای یک ػمتْؿ ثَ چَ ْٝاهلی ثنتگی ػاؿػ؟‬

    ‫1) هبُیت ػمتْؿالٞول: ُـ ػمتْؿالٞول ثـای ارـا تٞؼاػ پبلل ُبی عبً عْػ ؿا‬
                                         ‫ػاؿػ. هخال ‪4 ، Add‬پبلل اصتیبد ػاؿػ‬
   ‫2) ًْٛ( اًؼافٍ) ػاػٍ: ُـ چَ ػاػٍ ُب کْچک تـ ثبىٌؼ هضبمجبت مـیٜ تـ اًزبم‬
                                                                    ‫هی ىْػ.‬
       ‫3) هضل لـاؿ گـفتي ػاػٍ: ُـچَ ػاػٍ ُب ًقػیک تـ ثبىٌؼ(هخال: ػؿ حجبت ُب‬
                                       ‫ثبىٌؼ) ٝولیبت مـیٜ تـ اًزبم هی ىْػ.‬
                         ‫هثال: ثـای ارـای یک ػمتْؿ روٜ کَ چِبؿ پبلل ًیبف ػاؿػ:‬
  ‫‪ ‬اگـ فـکبًل کبؿ هبىیي‪ 1HZ‬ثبىؼ ثـای ارـای ایي ػمتْؿ4ّاصؼ فهبى ًیبف ػاؿػ.‬
‫‪ ‬اگـ فـکبًل کبؿ هبىیي‪ 4HZ‬ثبىؼ.ثـای ارـای ایي ػمتْؿ 1 ّاصؼ فهبى ًیبف ػاؿػ.‬
                     ‫‪ ‬اگـ فـکبًل کبؿ هبىیي ‪ 2000 MHZ‬ثبىؼ ثـای ارـای ایي ػمتْؿ‬
                                                                 ‫5) حافظَ پٌِاى:‬
 ‫کَ ایي کبؿ‬             ‫پـػافًؼٍ ثـای ارـای یک ػمتْؿ ثبیؼ آى ؿا اف صبفَٚ ثـػاؿػ‬
                ‫صبفَٚ‬                                                          ‫فهبى‬
                ‫پٌِبى‬
     ‫صبفَٚ‬                              ‫فیبػی ؿا ٍـف هی کٌؼ. ثـای کبُو ایي فهبى‬
                           ‫پـػافًؼٍ‬                   ‫اف صبفَٚ ُبی کو امتفبػٍ ىؼ.‬
                                       ‫‪ :Cash‬صبفَٚ ُبیی ُنتٌؼ کَ اف ًٚـ ّالٞی ػؿ‬
                                                               ‫ػاعل ‪ُ CPU‬نتٌؼ ّلی‬
         ‫اف ًٚـ ٙبُـی ثیي ‪ RAM ّ CPU‬لـاؿ ػاؿًؼ. مـٝت ایي صبفَٚ ُب ثَ اًؼافٍ‬
                          ‫حجبت ُب ًینت ّلی عیلی ثیيتـ اف صبفَٚ ُبی هٞوْلی امت.‬
                                                                ‫ًضٍْ ٝولکـػ ‪:cash‬‬
    ‫اٍل هضلی ثْػى اؿربٝبت: صْْؿ ‪ cash‬ػؿ مینتن هؼیْى ایي اٍل امت. اگـ هب ثَ یک‬
     ‫إالٛ(ػاػٍ) ػف هضلی هـارَٞ کٌین ثَ اصتوبل فیبػ هـارٞبت ثٞؼی هب ثـای إالٝبت‬
                                                          ‫ثٞؼی ػؿ ُونبیگی آى امت.‬
‫صبل ثب تْرَ ثَ اٍل ثبال: فهبًی کَ ػمتْؿی ؿا ارـا هی کٌین. همؼاؿی اف إالٝبت کَ‬
  ‫آػؿك آًِب ًقػیک آػؿك ایي ػمتْؿ امت ػؿ ‪ cash‬لـاؿ هی گیـػ. ّ ‪ CPU‬ػاػٍ ُبی هْؿػ‬
   ‫ًیبف ؿا ثـػاىتَ ّ امتفبػٍ هی کٌؼ ّ ثمیَ ػاػٍ ُب ػؿ هـاصل ثٞؼی ارـای ػمتْؿات‬
                                                                  ‫امتفبػٍ هی ىًْؼ.‬
                          ‫ًکتَ: رؼّل اًْاٛ صبفَٚ ُب ؿا ػؿ همبثل هيبُؼٍ هی کٌیؼ.‬
   ‫ُـچَ اف پبییي رؼّل ثَ موت ثبال ثـّین مـٝت صبفَٚ ُب ّ ُقیٌَ آًِب فیبػ ّ صزن‬
                                                                     ‫ىبى کن هی ىْػ.‬


‫71‬
                         ‫‪Register‬‬
          ‫‪‬‬               ‫‪Cach‬‬
        ‫ُقیٌَ‬
                  ‫‪‬‬       ‫‪RAM‬‬
          ‫صزن‬   ‫مـٝت‬      ‫‪HDD‬‬
           ‫‪‬‬
                           ‫‪CD‬‬
                       ‫‪Flash & Tape‬‬           ‫1) پزداسع لْلَ ای(‪:)PIPE Processing‬‬
      ‫ػؿ مینتن پـػافه لْلَ ای الفهَ اًزبم ػمتْؿات ایي امت کَ پـػافًؼٍ ثغيی اف‬
‫ػمتْؿات ؿا ثَ ‪ CPU‬هٌتمل کـػٍ , چْى پـػافًؼٍ ػؿ یک لضَٚ لبػؿ ثَ اًزبم یک ػمتْؿ‬
                           ‫امت پل ثبیؼ ثمیَ ػمتْؿات ؿا ثغيِبی ػیگـ اًزبم ػٌُؼ.‬
  ‫ًکتَ: ٝلت ایٌکَ کبؿُبی هغتلف ثبیؼ ثَ ثغو ُبی هغتلف ّاگؾاؿ ىًْؼ ایي امت کَ‬
                      ‫ؿیق پـػافًؼٍ ُب ػؿ ُـ لضَٚ لبػؿ ثَ ارـای یک ػمتْؿ ُنتٌؼ.‬
                                                            ‫ًحٍْ پزداسع لْلَ ای:‬
 ‫فـُ کٌیؼ ػمتْؿات ثـای ارـا ُـ کؼام 1 حبًیَ فهبى الفم ػاىتَ ثبىٌؼ. پل ‪ N‬ػمتْؿ‬
 ‫ثَ ‪ N1=NS‬حبًیَ فهبى الفم ػاؿین ّلی ثب امتفبػٍ اف ؿّه پـػافه لْلَ پل اف ارـای‬
 ‫هـصلَ ی 1 اف ػمتْؿ1 هؼاؿ آى آفاػ هی ىْػ ّ هب هی تْاًین ُن فهبى ثب ارـای هـصلَ‬
    ‫2 اف ػمتْؿ 1 هـصلَ ی 1 اف ػمتْؿ 2 ؿا ًیق ارـا کٌین ثؼیي تـتیت پل اف ارـای‬
        ‫هـصلَ ی3 اف ػمتْؿ1 , ػؿ ُـ حبًیَ 4 ػمتْؿ ثَ ْٕؿ ُن فهبى ارـا هی ىًْؼ.‬

                                                               ‫پزداسًذٍ ُای ‪:Intel‬‬
‫هٞـّف تـیي پـػافًؼٍ ُبی ایي ىـکت ‪ Intel 8080 , Motorola, 280/zailog‬امت ایي ىـکت ػؿ‬
          ‫اثتؼا یک پـػافًؼٍ ی 4 ثیتی ثَ ًبم 4004 مبعت ّ مپل آى ؿا ثَ 58‪ 80‬ؿمبًؼ.‬
                       ‫‪ Internal data bus‬ثَ کبًبل ُبی ثیي صبفَٚ ی ‪ cpu ّ ram‬گفتَ هی ىْػ.‬
                   ‫‪ External data bus‬ثَ کبًبل ُبی ثیي ‪ُdevice ّ cpu‬بی ػیگـ گفتَ هی ىْػ.‬
  ‫ًکتَ: صبفَٚ فیقیکی ؿاثَٖ هنتمین ثب ‪ address bus‬ػاؿػ, ثَ ایي ٍْؿت کَ ‪= 2adress bus‬‬
                                                                            ‫صبفَٚ فیقیکی‬
   ‫یٌٞی ُـچَ ‪ Address bus‬پٌِبی ثیيتـی ػاىتَ ثبىؼ همؼاؿ صبفَٚ ی ثیيتـی لبثل آػؿك‬
                                                                             ‫ػُی هی ىْػ.‬
                                  ‫ًکتَ: ػؿ یک پـػافًؼٍ ثیيتـیي فهبى ٍـف ‪ I/O‬هی ىْػ.‬
                                                  ‫امتخٌبٝبت رؼّل پـػافًؼٍ ُبی ‪: Intel‬‬
                      ‫امتخٌبٝبت ایي رؼّل ثَ ػّ پـػافًؼٍ ی 6808 , 8808 هضؼّػ هی ىْػ.‬
     ‫1) - ُـچَ مبلِب افقایو هی ثبػ ‪ً External DB ّ clock time‬یق افقایو هی یبثؼ ّلی‬
 ‫ایي ػّ همؼاؿ ػؿ مبعتوبى 6808 ّ 8808 تغییـ چٌؼاًی ًکـػٍ ّ صتی کبُو ًیق یبفتَ‬
                                                                                 ‫امت.‬
        ‫ٝلت ایي اهـ ًـم افقاؿُبی مبعتَ ىؼٍ لجل اف 6808 ثْػٍ ثَ ٝلت ایٌکَ ًـم‬
  ‫افقاؿ صبٍل فکـ ّ ػلت اًنبى امت ّ تْمٔ هبىیي ًوی تْاى ًـم افقاؿ تْلیؼ کـػ.‬
  ‫ًـم افقاؿُب اؿفه فیبػی ػاؿًؼ ّ اف ًٚـ هبلی ُقیٌَ فیبػی ٍـف هی ىْػ ثب ٝـَّ‬
            ‫ی پـػافًؼٍ ُبی 6808 ثَ ثبفاؿ ًـم افقاؿُبی تْلیؼ ىؼٍ ی لجلی ؿّی ایي‬
  ‫پـػافًؼٍ ُب ٝول ًکـػٍ. اف ایي ؿّ ثـای ٝؼم تغییـ ًـم افقاؿُب ثَ مـٝت پل اف‬
   ‫6808 , پـػافًؼٍ ُبی 8808 تْلیؼ ّ ثَ ثبفاؿ ٝـَّ ىؼ کَ اف ًٚـ ثـعی هيغَبت ثَ‬
                                                       ‫پـػافًؼٍ ُبی 5808 ًقػیک ثْػ.‬
   ‫2) - پـػافًؼٍ ُب ؿّی اٝؼاػ اٝيبؿی ٝولیبت اًزبم ًوی ػٌُؼ. ثـای ایي کبؿ یب‬
    ‫اف یک ًـم افقاؿ ىجیَ مبف امتفبػٍ هی ىْػ یب اف یک کوک پـػافًؼٍ امتفبػٍ هی‬
                                                                                 ‫ىْػ.‬
     ‫‪cpu‬‬                       ‫اثتؼا تب ًنل 6808 ثـای ُـ پـػافًؼٍ یک کوک پـػافًؼٍ‬
    ‫‪Real mode‬‬      ‫ثغو ‪‬‬                              ‫ُن مبعتَ هی ىْػ ّلی پل اف آى‬
       ‫6808‬              ‫6818‬    ‫ػؿ ػاعل ُـ پـػافًؼٍ یک کوک پـػافًؼٍ تٞجیَ کـػًؼ.‬
       ‫‪Protected mode‬‬                                ‫پـػافًؼٍ ُبی ‪ Intel‬پل اف 6808 اف‬
           ‫68 * 08‬
                                  ‫ػّ لنوت تيکیل ىؼٍ اًؼ ثَ ایي هٌٞی کَ ؿّی ُوَ ی‬
                                                ‫پـػافًؼٍ ُب اهکبًبت 6808 ّرْػ ػاؿػ.‬
                                                    ‫ًحٍْ ًوایغ اعذاد اعؼاری:‬
     ‫صبل ثـای ًوبیو ػؿ صبفَٚ ًمَٖ هویق ؿا ثَ موت ثب اؿفه تـیي ؿلن ػّػّیی هی‬
                                                                        ‫کيین‬
          ‫صبل فـُ کٌیؼ هی عْاُین ایي ٝؼػ ؿا ػؿ یک صبفَٚ ی 4 ثبیتی لـاؿ ػُین‬
                ‫ًوب ػؿ صبفَٚ ثَ ٍْؿت ثبیٌـی ثب ٝالهت هٖلك ًوبیو ػاػٍ هی ىْػ.‬
‫81‬
   ‫ًکتَ: ّلتی هی گْیین پـػافًؼٍ ُب ػاؿای ‪ 32 , Internal DB‬ثیتی امت. ایي ثَ ایي‬
  ‫هٌٞی امت کَ اّال" صزن حجبتِبیو 23 امت ّ ُوچٌیي تْاى پـػافه آى 23 ثیتی امت‬
 ‫ًکتَ: پـػافًؼٍ ُبی 6808 ػاؿای ‪ 16 , Internal DB‬ثیتی هی ثبىؼ. ثٌٞی ایي پـػافًؼٍ‬
               ‫ػاؿای حجبت ُبی 61 ثیتی هی ثبىؼ ّ تْاى پـػافه آى 61 ثیتی امت.‬




‫91‬
                                                                                     ‫تخغ اّل‬
               ‫طااتواى پزداسًذٍ ُا(6808 )‬                                    ‫فصل پٌجن‬
            ‫(ثثات ُا)‬
     ‫مبعتوبى پـػافًؼٍ ُبی 8808/6808 اف ػّ ػیؼ لبثل ثـؿمی هی ثبىؼ, 1 مغت افقاؿی 2‬
     ‫ًـم افقاؿی ُب ایي پـػافًؼٍ ُب ؿا اف ػیؼ ًـم افقاؿی ثـؿمی هی کٌین کَ اف مَ‬
                                                      ‫رِت لبثل ىٌبمبیی هی ثبىؼ.‬
      ‫پـػافًؼٍ 6808 ػاؿای 41 حجبت 61 ثیتی لبثل ثـًبهَ ًْینی امت. حجبت ُبی ػیگـی‬
                               ‫ًیق ّرْػ ػاؿػ کَ اف ػیؼ ثـًبهَ ًْینی پٌِبى امت.‬
                                               ‫ثثات ُا: )‪(General purpose register‬‬
                                                   ‫الف) ثثات ُای ُوَ هٌظْرٍ:‬
                                       ‫1. ثثات ‪ " (Accumulator) : AX‬اًثارٍ,‬
        ‫ثَ ٌْٝاى یک حجبت اًجبؿٍ ثَ ْٕؿ ّوٌی ػؿ ٝولیبت ّؿّػی ّ عـّری امتفبػٍ هی‬
                                                                          ‫ىْػ.‬
                                                 ‫2. ثثات ‪ : ( Base) : BX‬پایَ ,‬
 ‫ایي حجبت ٝالٍّ ثـ ُوَ هٌْٚؿٍ ثْػى ػؿ ثـعی ؿّه ُبی آػؿك ػُی ًمو پبیَ ؿا ثبفی‬
                                                                      ‫هی کٌؼ‬
                                        ‫3. ثثات ‪ : ( Counter) : CX‬ػوا رًذٍ ,‬
         ‫ثَ ٌْٝاى یک ىوب ؿًؼٍ ػؿ ػمتْؿالٞول ُبی صلمَ ّ یب پـػافه ؿىتَ ّ ُوچٌیي‬
                                 ‫ػمتْؿالٞول ُبی ػمتکبؿی ثیت ُب امتفبػٍ هی ىْػ.‬
                                                  ‫4. ثثات ‪ : ( Data) :DX‬دادٍ ,‬
     ‫ایي حجبت ػؿ ثْٞی اف ػمتْؿالٞول ُبی هضبمجبتی هبًٌؼ ّـة ّ تمنین ًگِؼاؿًؼٍ ی‬
                                                            ‫ثغيی اف ًتبیذ امت.‬
                                    ‫ب) ثثات ُای قطعَ: )‪( Segment register‬‬
                 ‫آدرص آغاس ُز ‪ Segment‬در ایي ثثات ُا ًگِذاری هی ػْد.‬
              ‫‪ ( Code segment) :CS ‬آدرص کذ طگوٌت را ًگِذاری هی کٌذ‬
              ‫‪ ( Data segment): DS ‬آدرص طگوٌت ‪ data‬را ًگِذاری هی کٌذ‬
          ‫‪ ( Stack segment) : SS ‬آدرص طگوٌت پؼتَ را ًگِذاری هی کٌذ.‬
           ‫‪ ( Extra segment) : ES ‬آدرص طگوٌت ‪ Extra‬را ًگِذاری هی کٌذ‬
   ‫آػؿك ُب ػؿ 6808 , 12 ثیتی ُنتٌؼ یٌٞی ثـای ًگِؼاؿی یک آػؿك ثَ 12 ثیت یب 5 ؿلن‬
   ‫ُگق ًیبف امت. صبل چگًَْ هی تْاى یک آػؿك 12ثیتی ؿا در حجبت ُبی 61 ثیتی ؽعیـٍ‬
                                                                           ‫کـػ؟‬
   ‫ثـای صل ایي هيکل مگوٌت ُب اف ًمبٕی ىـّٛ هی ىًْؼ کَ چِبؿ ثیت کن اؿفه آػؿك آى‬
           ‫ًمبٓ ٍفـ ثبىؼ ثَ ٝجبؿت ػیگـ مگوٌت ُب اف هـف پاراگزاف ىـّٛ هی ىًْؼ.‬
 ‫هـف پبؿاگـاف: ًمبٕی اف صبفَٚ کَ آػؿك آًِب ثـ 01 ُگق یب لبثل لنوت ثبىؼ ( یٌٞی‬
                 ‫4 ثیت کن اؿفه ٍفـ ّ یب اّلیي ؿلن ُگق آدرص آى ًقطَ صفز ثبىؼ)‬
     ‫ثـای ًگِؼاؿی آػؿك مگوٌت ُب تٌِب 61 ثیت ثب اؿفه آػؿك مگوٌت ػؿ حجبت ُب لـاؿ‬
                    ‫گـفتَ ّ ٌُگبم هضبمجَ یک ٍفـ ػؿ همبثل ایي آػؿك لـاؿ هی ػُین‬
                           ‫ًکتَ: هزس پاراگزاف 61 تایت تَ 61 تایت تکزار هی ػْد.‬
                                               ‫هخبل: آػؿك ّالٞی همبثل ؿا پیؼا کٌیؼ:‬
                                           ‫ج) ثثات ُای ػااص: )‪( Index register‬‬
                                                            ‫1- ‪( Source index) SI‬‬
                                                        ‫2- ‪( Destination index) DI‬‬
 ‫اس ایي ثثات ُا تَ هٌظْر دطتزطی تَ دادٍ ُا در رّع آدرص دُی ػااص ُا هْرد‬
                                                        ‫اطتفادٍ قزار هی گیزد‬
                                         ‫د) ثثات ُای پؼتَ: )‪( pointer register‬‬
                                                             ‫1- ‪( Base pointer) BP‬‬
                                                           ‫2- ‪( Stack pointer) SP‬‬
    ‫اف ایي حجبت ُب ثَ هٌْٚؿ ػمتـمی ثَ ػاػٍ ُب ػؿ ًبصیَ ‪ stack memory‬امتفبػٍ هی‬
                                                                                       ‫ىْػ.‬
‫حجبت ‪ُ : PC/IP‬وْاؿٍ صبّی همؼاؿ ‪ offset‬ػمتْؿالٞول ػؿ صبل ارـامت(ػؿ ًبصیَ ی ‪Code‬‬
                                                                                  ‫‪) segment‬‬
                             ‫ًکتَ: ‪ PC/IP‬هغفف ‪ Instruction pointer / program counter‬هی ثبىؼ‬
                                                                        ‫ثثات پزچن: )‪( FIAG‬‬
       ‫ػؿ ثْٞی کتبثِب ایي حجبت ثب ًبم ‪ ( program word status) P.W.S‬ىٌبعتَ هی ىْػ ایي‬
                   ‫حجبت ػؿ ُـ لضَٚ آعـیي ّّٞیت ارـای ػمتْؿالٞول ؿا ًيبى هی ػُؼ‬

‫02‬
  ‫هخال : آیب ًتیزَ ی ثَ ػمت آهؼٍ هخجت امت یب هٌفی ّ یب ؿلن ًملی ػاؿػ یب عیـ‬
                                             ‫ّ یب ّلفَ ػاؿػ یب عیـ ّ ......‬
          ‫ًکتَ : ثمیَ ثیت ُب ػؿ ؿفؿّ مینتن ُنتٌؼ ّ هب ثَ آًِب ػمتـمی ًؼاؿین‬
‫0 – ‪ : ( Carry flag) CF‬اگـ ػمتْؿالٞول هٌزـ ثَ تْلیؼ ًتیزَ ای ثيْػ کَ ػؿ آى ًتیزَ ؿلن‬
                    ‫ًملی یک ثبىؼ ایي ثیت یک ّ اگـ ٍفـ ثبىؼ ایي ثیت ٍفـ هی ىْػ.‬
                                                       ‫2 – ‪ : ( Parity flag) PF‬تیت تْاسى‬
    ‫اف ایي ثیت ثـای ثبال ثـػى إویٌبى ًنجت ثَ اًتمبل ػاػٍ ُب ثیي ارقاء مینتن‬
     ‫امتفبػٍ هی ىْػ یَ ایي ٍْؿت کَ ُوْاؿٍ تٞؼاػ یک ُب ػؿ یک ثبیت ثبیؼ تٞؼاػ‬
                                                                  ‫فـػی ثبىؼ.‬
   ‫‪ PF‬ثب تْرَ ثَ ایي هّْْٛ همؼاؿ هی گیـػ یٌٞی اگـ ًتیزَ ػاؿای تٞؼاػ فـػ یک‬
  ‫ثبىؼ ثیت ‪ P‬همؼاؿ 0 ؿا هی گیـػ ّ اگـ ػاؿای تٞؼاػ فّد یک ثبىؼ ثـای ( تْافى‬
                                            ‫فـػ) ثیت ‪ P‬همؼاؿ 1 ؿا هی گیـػ.‬
 ‫ٌُگبم اًتمبل یک ثیت اف یک لنوت ثَ لنوت ػیگـ پل اف ػؿیبفت ثبیت ثـؿمی هی ىْػ‬
  ‫کَ آیب ػاؿای تٞؼاػ فـػ یک امت یب تٞؼاػ فّد . ػؿ ٍْؿت فّد ثْػى تٞؼاػ یک ُب‬
   ‫ًتیزَ هی گیـین کَ ػؿ ْٕل ػاػٍ ی هب عْاة ىؼٍ امت ّلی اگـ 2 ثیت تغییـ کٌٌؼ‬
                                                     ‫ػیگـ لبثل ىٌبمبیی ًینت‬
                                                               ‫4 – ‪: ( Auxiliary flag) AF‬‬
  ‫ًيبى ػٌُؼٍ ؿلن ًملی تْلیؼ ىؼٍ ثـ ثیت ىوبؿٍ ی 4 ٌُگبم پـػافه امت هٞوْال کبؿثـػ‬
 ‫آى ػؿ ٝولیبت ‪ BCD‬هی ثبىؼ اگـ ایي ثیت ٍفـ ثبىؼ ؿلن ًملی ٍفـ امت ّ اگـ ایي ثیت‬
                                                       ‫یک ثبىؼ ؿلن ًملی یک امت.‬
                                                                    ‫6 – ‪: ( Zero flag) ZF‬‬
       ‫اگـ ًتیزَ ی صبٍل ٍفـ ثبىؼ ایي ثیت یک ّ اگـ ًتیزَ ی صبٍل یک ثبىؼ ایي ثیت‬
                                                                    ‫ٍفـ هی ىْػ‬
                                                                    ‫7- ‪: ( Sign flag) SF‬‬
       ‫ایي ثیت یک ّ اگـ ًتیزَ صبٍل هخجت ثبىؼ ایي ثیت‬    ‫اگـ ًتیزَ صبٍل هٌفی ثبىؼ‬
                                                                     ‫ٍفـ هی ىْػ.‬
                                                                    ‫8 – ‪: ( Trap flag) TF‬‬
      ‫اگـ ایي ثیت ٍفـ ثبىؼ پـػافًؼٍ ػؿ صبلت ًـهبل ػمتْؿات ؿا ارـا هی کٌؼ ّ اگـ‬
                     ‫یک ثبىؼ ارـای ثـًبهَ ثَ ٍْؿت ػمتْؿ ثَ ػمتْؿ ارـا هی ىْػ.‬
                                                                 ‫9- ‪: ( Interrupt flag) IF‬‬
     ‫اگـ پـػافًؼٍ ؿػ صبل پـػافه یک ػمتْؿ ّلفَ ثبىؼ ایي ثیت یک امت ّ اگـ ػؿ صبل‬
                                            ‫پـػافه ّلفَ ًجبىؼ ایي ثیت ٍفـ امت.‬
                                                                  ‫01- ‪: ( Direct flag) DF‬‬
     ‫ایي ثیت ًيبى ػٌُؼٍ رِت پـػافه هی ثبىؼ ( ثَ عًَْ ػؿ ػمتْؿالٞول ُبی ؿىتَ ای‬
                                                                             ‫)‬
         ‫ػؿ ػمتْؿالٞول ُبی پـػافه ؿىتَ اگـ ایي ثیت ٍفـ ثبىؼ ثَ ایي هٌٞی امت کَ اف‬
        ‫اثتؼا ثَ اًتِب (افقایيی) هی ثبىؼ ّ اگـ ایي ثیت یک ثبىؼ ثَ ایي هٌٞی امت کَ‬
                                           ‫پـػافه اف اًتِب ثَ اثتؼا (کبُيی ) امت.‬
                                                                ‫11- ‪: ( Overflow flag) OF‬‬
        ‫اگـ ًتیزَ صبٍل ‪ over flow‬ثبىؼ ایي ثیت یک ّ اگـ ًجبىؼ ایي ثیت ٍفـ امت.‬
   ‫ًکتَ: ٝالٍّ ثـ کبؿثـػُبی عبً ؽکـ ىؼٍ ثـای حجبت ُبی ‪ DX ّ CX ّ BX ّ AX‬اف‬
                 ‫ایي حجبت ُب هی تْاى ػؿ کبؿثـػ ُبی هغتلف ٝوْهی امتفبػٍ کـػ.‬
     ‫ًکتَ: ثب حجبت ُبی ُوَ هٌْٚؿٍ ( ‪ ) AX,BX,CX,Dx‬هی تْاى ثَ ٍْؿت 8 ثیتی کبؿ‬
                                                                         ‫کـػ.‬
 ‫‪ DH ّ CH ّ BH ّ AH‬ثغيی اف حجبت ُبی ُوَ هٌْٚؿٍ ُنتٌؼ ّ حجبت رؼیؼی ًینتٌؼ‬
                             ‫ُـ تغییـی ػؿ ‪ AX‬ثبٝج تغییـ ػؿ ‪ AH ّ AL‬هی ىْػ.‬
                           ‫ػؿ پـػافًؼٍ ُبی 23 ثیتی حجبت ُب ُن 23 ثیتی ُنتٌؼ.‬
    ‫ػؿ پـػافًؼٍ ُبی ثبالی 68308 هی تْاًین ثب اّبفَ کـػى یک ‪ E‬ثَ ًبم حجبت ىبى‬
                                                       ‫آًِب ؿا 23 ثیتی کٌین.‬
 ‫ًکتَ ک ػؿ پـػافًؼٍ ُبی 5808 ػؿ 4 حجبت ‪ X ّ DX ّ CX ّ BX ّ AX‬هغفف ‪Expend‬‬
                                                                         ‫امت.‬
                                                                       ‫ًکتَ :‬
                                            ‫فبیل ُب2 ًْٛ ُنتٌؼ 1 ‪exe 2 ّ cam‬‬
  ‫اّلی ُویيَ اف ‪ 64kb‬کوتـ ُنتٌؼ ّ چْى تک مگوٌت ُنتٌؼ مـیٞتـ اًزبم هی ىًْؼ اهب‬
                ‫ػّهی ثیيتـ ُنتٌؼ چْى اف ُـ 4 ًْٛ مگوٌت ػؿ آًِب امتفبػٍ هی ىْػ.‬



‫12‬
                                                                                  ‫تخغ اّل‬
                                                                                  ‫فصل ػؼن‬

                                                             ‫طااتواى پزداسًذٍ ُا )6808(‬
     ‫( رّع ُای آدرص‬
                                                                                     ‫دُی)‬



              ‫1 -ًظثی‬
            ‫2 -هظتقین‬          ‫1 - آدرص دُی تزًاهَ ( ‪program‬‬
        ‫3 -غیز هظتقین‬
                                                    ‫‪)addressing‬‬
                                                                      ‫رّع ُای آدرص دُی‬
                             ‫2 - آػؿك ػُی ػاػٍ ( ‪data addressing‬‬

                                                               ‫)‬
‫ػ متْؿات ثـًب هَ ػؿ ل نوت کؼ لـاؿ ػاؿػ ّ آػؿك ػ متْؿات ؿا ثب یؼ ػؿ ا یي ل نوت پ یؼا‬
                                                                                        ‫کـػ‬
                               ‫‪ = CS * 10H + IP‬آػؿك ػاػٍ‬
                                                ‫الف ) آػؿك ػُی ثـًبهَ ‪program addressing‬‬
                                                 ‫1 - آػؿك ػُی ًنجی: ‪Relative Addressing‬‬
‫ػؿ ا یي ؿّه آػؿك ػُی آػؿك ػ متْؿالٞول هْؿػ ً ٚـ ً نجت ثَ آػؿك ػ متْؿالٞول هْؿػ‬
‫ًٚـ ًنجت ثَ آػؿك ػمتْؿالٞول ربؿی هضبمجَ هی ىْػ ثیيتـ ػمتْؿالٞول ُب ثَ ٍْؿت‬
                                                              ‫ًنجی آػؿك ػُی هی ىًْؼ.‬
          ‫ػؿ ایي ؿّه ثیيتـ ػؿ ػمتْؿالٞول ُبی پـىی هْؿػ امتفبػٍ لـاؿ هی گیـػ.‬
                                      ‫4,‪11: Add AX‬‬         ‫‪B‬‬                      ‫هخبل‬
                                                              ‫0,‪Mov Cx‬‬      ‫2+‪B‬‬
                                                               ‫‪Jmp‬‬     ‫1‪L‬‬    ‫‪A‬‬
  ‫لـاؿ هی گیـػ.‬                             ‫ػؿ لب لت ػ متْؿالٞول ث غو ت فبّت ه کبى‬
                                 ‫‪B-A‬‬


                                           ‫ثَ ایي ٍْؿت امت کَ ‪ IP‬هضل ؿا ًيبى هی ػُؼ.‬

‫هوکي امت ػؿ ثـًبهَ ػمتْؿات فـاعْاًی ػاىتَ ثبىین کَ آػؿك ػُی ػؿ آًِب یب ه نتمین‬
                                                           ‫امت ّ یب غیـ هنتمین‬
                                              ‫‪Direct addressing‬‬    ‫2) آدرص دُی هظتقین:‬
‫ػؿ ایي ؿّه آػؿك ػُی آػؿك ػمتْؿالٞول هْؿػ ًٚـ ثَ ْٕؿ هنتمین اف لبلت ػمتْؿالٞول‬
                                                        ‫ثَ حجبت ‪ load ّ IP‬هی ىْػ‬
‫اگـ آػؿك آغبف فیـ ثـًبهَ ‪ A‬ثبىؼ ػمتْؿالٞول ‪ call‬ثَ ٕفْؿ هنفتمین همفؼاؿ ‪ A‬ؿا ػؿ‬
                                                               ‫عْػ ًگَ هی ػاؿػ‬
                                       ‫‪Indirect Addressing‬‬     ‫3) آدرص دُی غیز هظتقین:‬
   ‫ػؿ ایي ؿّه اف آػؿك ػُی ثَ ْٕؿ غیـ هنتمین ثَ هضل اىبؿٍ هی کٌین ایي ؿّه هبًٌؼ‬
 ‫اىبؿٍ گـُب ػؿ ‪ C‬هی ثبىؼ یٌٞی هضتْیبت حجبت عْػ آػؿك هکبًی امت کَ هضتْای آى یک‬
    ‫ًمَٖ امت. ػؿ ثْٞی اف هْالٜ ػمتْؿ ‪ call‬ثَ گًَْ ای امت کَ ٝول آػؿك ػُی آى غیـ‬
                                 ‫]‪call [Bx‬‬                     ‫هنتمین امت . هخل‬
‫هخال ػؿ ایٌزب ‪ Bx=4710H‬هی ثبىؼ کَ ػؿ ایي هکبى اف صبفَٚ ًیق آػؿك هضل ػیگـی ّالٜ‬
                                                                           ‫امت.‬

                                                     ‫ب) آدرص دُی دادٍ: ‪Data addressing‬‬
                                                ‫‪ )O‬آدرص دُی ثثاتی: ‪register addressing‬‬
‫ػؿ ا یي ؿّه ػاػٍ یب ػاػٍ ُبی هْؿػ ً ٚـ ثـای ا رـای ػ متْؿالٞول ػؿ ح جبت ُبی ػا عل‬
                                                                ‫پـػافًؼٍ هی ثبىؼ.‬
 ‫ثـیب ایي کبؿ اثتؼا ثَ مگوٌت کؼ هـارَٞ هی ىْػ ّ آػؿك ػمتْؿالٞول گـفتَ هی ىْػ ّ‬
         ‫ػؿ ‪ّ I0H‬ـة ‪ offset‬ػمتْؿالٞول کَ ػؿ ‪ PC/IP‬هی ثبىؼ روٜ ىؼٍ ّ آػؿك پٌذ ؿلوی‬
‫22‬
 ‫ػمتْؿالٞول ثؼمت هی آیؼ اف ایي آػؿك ثَ ًبصیَ ی ‪ C.M‬هـارَٞ هی ىْػ ّ ػمتْؿالٞول‬
                                           ‫ّ ػاػٍ ُب ثَ ػؿّى ‪ّ CPU‬اکيی هی ىْػ‬
                           ‫ًکتَ: در ایي رّع هزاجعَ تَ ‪ Data segment‬صْرت ًوی گیزد.‬
                                          ‫‪ o‬آدرص دُی تالفصل: ‪Immediate addressing‬‬
                                                          ‫ػؿ ایي ؿّه.........‬
  ‫ػؿ ایي ؿّه آػؿك ػُی ػاػٍ ثَ ٍْؿت یک حبثت ػؿ لبلت ػمتْؿالٞول تـروَ هی ىْػ‬
  ‫ثٌبثـیي ثب ّاکيی ػمتْؿالٞول ػاػٍ ًیق ّاکيی هی ىْػ. ثـای آّؿػى ػاػٍ ًیبفی‬
                                             ‫ثَ هـارَٞ هزؼػ ثَ صبفَٚ ًینت.‬
 ‫ًکتَ: ػاػٍ ُبیی کَ ْٕليبى ثیو اف یک ثبیت ثبىؼ ػؿ صبفَٚ ثَْؿت هٞکْك هی ًيیٌؼ.‬
                                               ‫2) آدرص دُی هظتقین: ‪Direct addressing‬‬
 ‫ػؿ ایي ؿّه اثتؼا آػؿك ػمتْؿالٞول ؿا ػؿ ًبصیَ ی ‪ C.M‬هی یبثین ّ مپل ػؿ لبلت‬
‫ػمتْؿالٞول ‪ offset‬ػاػٍ ّرْػ دارد کَ تزای یافتي آػؿك ّالٞی ػاػٍ همؼاؿ ‪ DS‬ؿا‬
‫ؿػ ‪ّ 10H‬ـة ّ ثب ‪ offset‬ػاػٍ کَ ػؿ لبلت ػمتْؿالٞول ّرْػ ػاؿػ روٜ ًوْػٍ ّ آػؿك‬
                                                ‫هتغییـ ؿا ػؿ ‪ D.M‬هی یبثین.‬
‫ًکتَ: ػؿ ایي ؿّه آػؿك ّالٞی ػاػٍ ی هْؿػ ًٚـ ػؿ لبلت ػمتْؿالٞول لـاؿ ًگـفتَ‬
                         ‫امت ثلکَ ثغو ‪ offset‬آػؿك ػمتْؿالٞول لـاؿ گـفتَ امت.‬
                              ‫1) آدرص دُی ػااص دار هظتقین: ‪Direct Indexed Addressing‬‬
‫ػؿ ایي ؿّه هبًٌؼ ؿّه لجلی اثتؼا آػؿك ػمتْؿالٞول ؿا ػؿ ًبصیَ ی ‪ C.M‬هی یبثین‬
    ‫ّ ثب هـارَٞ ثَ آى ‪ offset‬ػاػٍ ؿا پیؼا کـػٍ ّ ثب همؼاؿ یکی اف ‪ُ Index‬ب روٜ‬
                                     ‫کـػٍ ّ آػؿك ػاػٍ ی هـثَْٕ ؿا هی یبثین.‬
             ‫ًکتَ: حجبت ُبی ‪ Si‬یب ‪ Di‬ػؿ ایي ؿّه ثَ ٌْٝاى اًؼیکل ثَ کبؿ هی ؿًّؼ‬
           ‫ًکتَ: اف ایي ؿّه ثـای فـاُن کـػى آؿایَ ُبی یک ثٞؼی امتفبػٍ هی ىْػ.‬
                                 ‫2) آدرص دُی ثثات پایَ ای: ‪Bases Relative Addressing‬‬
‫ایي ؿّه هبًٌؼ ؿّه لجل امت ثَ ربی ایٌکفَ اف ‪ SI‬یفب ‪ DI‬امفتفبػٍ کٌفین اف ‪ BX‬ثفَ‬
                                               ‫ٌْٝاى ىوب ؿًؼٍ امتفبػٍ هی کٌین‬
                                                ‫‪= DS + 10H + offset + BX‬آدرص دادٍ‬
                ‫3) آدرص دُی ثثات پایَ ای ػااص دار ‪Base Relative Index Addressing‬‬
‫ػؿ ایي ؿّه اف 2 حجبت 2ؿّه ثبال تْاهب امتفبػٍ هی ىْػ کَ ایي ؿّه ثـای آؿایفَ ُفبی‬
                                                     ‫ػّ ثٞؼی کبؿثـػ ثیيتـی ػاؿػ.‬
‫ػؿ ایي صبلت همؼاؿ آػؿك ػمتْؿالٞول اف 4 لنوت تيکیل ىؼٍ امت ػؿ ایي ؿّه هضبمجَ‬
  ‫ی آػؿك ػمتْؿالٞول هخل صبلت ُبی لجل امت ّلی ثـای هضبمجَ ی آػؿك ػاػٍ ی هْؿػ‬
  ‫ًٚـ هضتْای حجبت ‪ DS‬ؿا ثب همؼاؿ ‪ ّ offset‬همؼاؿ حجبت ُبی ‪ DI ّ SI‬روٜ هی کٌین.‬
                                                ‫4) آدرص دُی ضوٌی: ‪Implied Addressing‬‬
      ‫ایي ؿّه یکی اف پـ کبؿثـػ تـیي ؿّىِبی آػؿك ػُی امت کَ ًیبفی ثَ امن هتغییـ‬
     ‫ًؼاؿػ(ثَ ربی ًبم, آػؿك ػاػٍ ؿا ػاؿین) ػؿ ایي ؿّه لبلت ػمتْؿالٞول2 ثبیت هی‬

               ‫‪Op- code‬‬         ‫‪AMB‬‬
 ‫هخال هٌْٚؿ اف ػمتْؿ همبثل ایي امت کَ ثَ حجبت ‪ AX‬همؼاؿی ؿا اّبفَ کي کَ آػؿك‬
   ‫آى ػؿ ‪ SI‬هی ثبىؼ.(ُوْاؿٍ یک حجبت ػاؿین ّ صبفَٚ ای کَ آػؿك آى ػؿ ‪ SI‬یب ‪DI‬‬
                                                                       ‫امت)‬

 ‫ػؿ ایي ؿّه اثتؼا آػؿك ػمتْؿالٞول ؿا اف مگوٌت ‪ code‬ثَ ػمت هی آّؿین ّ ثب هـارَٞ‬
‫ثَ ایي آػؿك لبلت ػمتْؿالٞول ثَ ػؿّى پـػافًؼٍ ّا کيی هی ىْػ. ّ ثـای یبفتي آػؿك‬
    ‫ػاػٍ کبفی امت همؼاؿ ‪ DS‬ؿا ػؿ ‪ّ 10H‬ـة کـػٍ ثب حجبت ُبی ‪ )SI( Index‬یب )‪ ( DI‬روٜ‬
                                                       ‫کـػٍ ّ آػؿك ػاػٍ ؿا ثیبثین‬
                          ‫5) آدرص دُی پایَ ای ضوٌی : ‪Implied Base Relative Addressing‬‬
‫‪ DI‬اف حجفبت‬    ‫‪ SI‬یب‬ ‫ایي ؿّه ُوبًٌؼ ؿّه لجلی امت ثب ایي تفبّت کَ ثَ ربی حجبت ُبی‬
                                                              ‫‪ BX‬امتفبػٍ هی ىْػ.‬
                           ‫ًکتَ: ثَ ْٕؿ کلی آػؿك ػُی ُبی ّوٌی ُوگی 2ثبیتی ُنتٌؼ.‬
                 ‫هب ػؿ ایي ؿّه ثـای یبفتي آػؿك ػاػٍ اف ؿاثَٖ فیـ امتفبػٍ هی کٌین‬
                                              ‫‪ = DS + 10H + BX‬آدرص ّاقعی دادٍ‬
 ‫6) آدرص دُی ثثات پایَ ای ػااص دار ضوٌی ‪Implied Base Relative Index Addressing‬‬
‫ػؿ ایي ؿّه آػؿك ػُی تفبّت هکبى ػاػٍ ی هْؿػ ًٚـ اف هزوفْٛ هضتفْای حجفبت ‪ BX‬ثفب‬
                                                        ‫حجبت ‪ SI‬هضبمجَ هی ىْػ.‬
                                               ‫7) آدرص دُی پیؼَ ای ‪Stack Addressing‬‬

‫32‬
‫‪ Stack memory‬امتفبػٍ هی کٌین. ػؿ ایي ؿّه لبلت ػمفتْؿالٞول‬   ‫ػؿ ایي ؿّه اف ًبصیَ ی‬
                                                                  ‫3 ثبیتی هی ثبىؼ‬
     ‫ػؿ ایي ؿّه اثتؼا ػمتْؿالٞول هْؿػ ًٚـ ؿا یبفتَ ثَ ػؿّى ‪ّ CPU‬اکيی هی ىْػ ّ‬
                         ‫مپل آػؿك ػاػٍ ی هْؿػ ًٚـ ػؿ ًبصیَ ‪ Stack‬رنتزْ هی ىْػ.‬
                                                     ‫8) آدرص دُی ضوٌی پؼتَ ای:‬
                          ‫9) آدرص دُی ػااص دار پؼتَ ای: ‪Stack Index Addressing‬‬
‫ّاکيی آى ثَ ػؿّى ‪ CPU‬آػؿك ػاػٍ‬       ‫ػؿ ایي ؿّه پل اف یبفتي ػمتْؿالٞول هْؿػ ًٚـ ّ‬
                                                        ‫ی هْؿػ ًٚـ هضبمجَ هی ىْػ.‬
                                      ‫21) آدرص دُی ػااص دار پؼتَ ای ضوٌی:‬
                                                                 ‫تخغ اّل‬
            ‫رًّذ تزجوَ دطتْرات ّ رّع ُای آدرص‬                   ‫فصل ُفتن‬
                                                               ‫دُی(‪)AMB‬‬
      ‫مْال اموجلی چگًَْ ثَ ؿّه ُبی آػؿك ػُی پی هی ثـػ. هخال" ػؿ ػّ ػمتْؿ فیـ‬
                        ‫اموجلـ چگًَْ ؿّىِبی آػؿك ػُی ؿا اف یگؼیگـ تيغیٌ می ػُؼ.‬
    ‫ثـای تيغیٌ ایي تفبّت ُب اف یک ثبیت ػؿ لبلت ػمتْؿالٞول امتفبػٍ هی ىْػ کَ‬
 ‫ثٞؼ اف ‪ op-code‬لـاؿ هی گیـػ. ًبم ایي ثبیت ‪ AMB‬هغفف ‪ Addressing Mode Byte‬هی ثبىؼ‬
                                             ‫هجٌبی کلی ایي ثبیت ثَ ىکل فیـ امت.‬
                    ‫ثَ ْٕؿ کلی صبلت ػمتْؿالٞول ُب ػؿ ایٌزب مَ ػمتَ تمنین هی ىْػ.‬
                                                                   ‫دُی ثثاتی‬   ‫آدرص‬    ‫1)‬
                                                                    ‫دُی ضوٌی‬   ‫آدرص‬    ‫2)‬
                                                                ‫دُی غیز ضوٌی‬   ‫آدرص‬    ‫3)‬
                                                                      ‫‪: Mode‬‬    ‫تیت‬   ‫دّ‬
                            ‫00: ًيبى ػٌُؼٍ ؿّه آػؿك ػُی ّوٌی یب هنتمین هی ثبىؼ.‬
                 ‫ػؿ ایي ؿّه اثتؼا آػؿك ػمتْؿالٞول ثَ کوک ؿاثٔ فیـ ثَ ػمت هی آیؼ‬
‫مپل لبلت ػمتْؿالٞول ثَ ػؿّى ‪ّ CPU‬اکو هی ىْػ ّ پل اف آى ثفَ کوفک ؿاثٖفَ ی فیفـ‬
                                        ‫آػؿك ػاػٍ ػؿ ًبصیَ ی ‪ stack‬ثَ ػمت هی آیؼ.‬
        ‫ًکتَ: تٌِب حجبت ُبی ‪ Bx ّ bpّ SPّ DIّ SI‬هی تْاًٌؼ ػؿّى {} لـاؿ ثگیـًؼ.‬
                                        ‫توـیي : ًْٛ آػؿك ػُی فیـ ؿا تٞییي کٌیؼ.‬
         ‫‪Op-code‬‬       ‫16‬       ‫53‬                                ‫اٍال ‪ً AMB‬ؼاؿػ.‬

                ‫‪add‬‬           ‫‪Ax,3561H‬‬              ‫تالفصل‬
                ‫‪add‬‬               ‫‪Ax,bx‬‬             ‫ثثاتی‬
                ‫‪add‬‬             ‫‪Ax,sum‬‬             ‫هظتقین‬
                ‫‪add‬‬           ‫]‪Ax,list[SI‬‬        ‫ػااص دار‬
                                                   ‫هظتقین‬
                ‫‪add‬‬           ‫]‪Ax,list[bx‬‬    ‫ثثات پایَ ای‬
                ‫‪add‬‬        ‫]‪Ax,list[bx+SI‬‬    ‫ثثات پایَ ای‬
                                                 ‫ػااص دار‬
                ‫‪add‬‬           ‫]‪Ax,list[bp‬‬         ‫پؼتَ ای‬
                ‫‪add‬‬        ‫]‪Ax,list[bp+SI‬‬    ‫پؼتَ ای ػااص‬
                                                      ‫دار‬
                ‫‪add‬‬              ‫]‪Ax,[SI‬‬             ‫ضوٌی‬
                ‫‪add‬‬              ‫]‪Ax,[bx‬‬    ‫ثثات پایَ ای ضوٌی‬

                ‫‪add‬‬           ‫]‪Ax,[bx+SI‬‬    ‫ثثات پایَ ای ضوٌی‬
                                                     ‫ػااص دار‬
                ‫‪add‬‬             ‫]‪Ax,[bp‬‬      ‫ضوٌی پؼتَ ای‬
                ‫‪add‬‬          ‫]‪Ax,[bp+SI‬‬        ‫ضوٌی پؼتَ ای‬
                                                   ‫ػااص دار‬
                ‫‪add‬‬              ‫]‪Ax,[ax‬‬              ‫غلطٌذ‬
                ‫‪add‬‬          ‫]‪Ax,[bx+bp‬‬               ‫غلطٌذ‬
                                                                                ‫‪:Mode‬‬
 ‫10,01: ُـ ػّ ثـای آػؿك ػُی غیـ هنتمین ُنتٌؼ ثؼیي هٌٞی کَ ػؿ آػؿك ّوٌب" ًبم‬
   ‫هتغیـ ّرْػ ػاؿػ ّ ٝالٍّ ثـ آى حجبت یب حجبتِبیی ًیق ثغيی اف آػؿك ؿا ػؿ عْػ‬
                                                            ‫ًگِؼاؿی هی کٌٌؼ.‬
‫10: اگـ تفبّت هکبى آغبف ػاػٍ ًنجت ثَ آغبف میگوٌت کوتـ اف 552 ثبىؼ آًگبٍ ایي‬
     ‫تفبّت هکبى ػؿ یک ثبیت تْریَ هی ىْػ ّ لبلت ػمتْؿالٞول مَ ثبیتی هی ىْػ.‬
‫42‬
      ‫01: اگـ تفبّت هکبى آغبف ػاػٍ ًنجت ثَ آغبف میگوٌت ثیيتـ اف 552 ثبىؼ آًگبٍ‬
        ‫ایي تفبّت هکبى ػؿ 2ثبیت تـروَ هی ىْػ ّ لبلت ػمتْؿالٞول 4ثبیتی هی ىْػ.‬
                                                                        ‫‪:Mode‬‬
‫11: ػؿ ایي ٍْؿت ُـ ػّ پـػافًؼٍ اف ًْٛ حجبت هی ثبىفٌؼ کفَ ًيفبى ػٌُفؼٍ ی ‪Register‬‬
‫‪ Addressing‬امت. ػؿ ایي ؿّه لبلت ػمتْؿالول2 ثبیتی هی ثبىؼ ایي ًفْٛ ؿّه آػؿك ػُفی‬
                                                      ‫صزن ثـًبهَ ؿا کبُو هی ػُؼ.‬
                                                                  ‫طَ تایت‪:yyy‬‬
              ‫ایي مَ ثیت ًيبى ػٌُؼٍ ًْٛ حجبت ثَ کبؿ ؿفتَ ػؿ ػمتْالٞول هی ثبىؼ.‬
‫ًکتَ عیلی هِن: ػؿ ػمتْؿات 6808 ُوْاؿٍ یکی اف اپـًؼُب اف ًْٛ حجبت امت ّ ُـگق‬
                    ‫ًوی تْاى ػؿ یک ػمتْؿ اف ػّ یکنبى غیـ حجبت امتفبػٍ کـػ.‬
 ‫ثیت ‪ : Weight‬ثَ آعـیي ثیت اف ثبیت ‪ op-code‬ثیت ‪ weight‬گفتَ هی ىْػ (تيغیٌ اًزبم‬
  ‫ٝولیبت 8 ثیتی) اگـ ایي ثیت ٍفـ ثبىؼ ٝولیبت8ثیتی اًزبم هی ىْػ ّ اگـ 1 ثبىؼ‬
                                                   ‫ٝولیبت61 ثیتی ارـا هی ىْػ.‬
                               ‫مَ ثیت ‪ : ZZZ‬ایي مَ ثیت ًنجت ثَ ُن 8 صبلت ػاؿًؼ‬
  ‫ایي مَ ثیت ًيبى ػٌُؼٍ ی ًْٛ اپـًؼ ػّم هی ثبىؼ کَ یب اف ًْٛ صبفَٚ امت ّ یب‬
 ‫اف ًْٛ حجبت . اگـ 2 ثیت ‪ 11 ّ mode‬ثبىؼ ایي مَ ثیت یک حجبت ؿا ًيبى هی ػٌُؼ.‬
                                                                 ‫جذّل طَ تیت‬
     ‫(‪ :)dsّCS‬ایي ػّ حجبت آػؿك اًؼ ُـ گبٍ ثـای یک ٝولکـػ ثیو اف یک ٝولًْؼ ًیبف‬
                    ‫ثبىؼ صؼاکخـ یکی اف ٝولًْؼُب هی تْاًؼ اف ًْٛ صبفَٚ ای تاػذ‬
                                                                 ‫رؼّل مَ ثیت‪:ZZZ‬‬
                       ‫ًکتَ : ػؿ رؼّل ُبی ٍفضَ ی لجل ػّ ؿّه آػؿك ػُی ّرْػ ًؼاؿػ:‬
                                  ‫1) رّع آدرص دُی تال فصل چْى اصالً ‪ AMB‬ندارد.‬
      ‫2) رّع آدرص دُی پؼتَ ای ضوٌی کَ هزتْط تَ پزداسًذٍ ُای تاالتز اس 682‬
                                                                        ‫اطت‬
                                                                         ‫هثال:‬
‫ًکتَ: فهبًی کَ اف ‪ bp‬ثَ ٌْٝاى آػؿك ػُی غیـ هنتمین امتفبػٍ هی کٌین ایي همؼاؿ‬
   ‫ثَ ‪ stack segment‬اىبؿٍ هی کٌؼ. ثـای ایٌکَ ثتْاًؼ ثَ مگوٌت ُبی ػیگـ ُن اىبؿٍ‬
                                                   ‫کٌؼ ایٌگًَْ ٝول هی کٌین:‬
                                                   ‫همؼاؿ پیو فـُ ]‪ ss:[bp‬امت.‬
                           ‫ّ ُوچٌیي ثمیَ ی حجبت ُب ثَ ٍْؿت پیو فـُ ثَ ًوْػ.‬
                                                    ‫همؼاؿ پیو فـُ ]‪ cs:[si‬امت.‬




‫52‬
                                                                                ‫تخغ دّم‬
          ‫طااتار اطوثلز‬                                                      ‫فصل اّل‬
    ‫اموجلـ : ّٙیفَ ی کلی ایي ثـًبهَ تـروَ اف فثبى اموجلی ثَ فثبى هبىیي امت کَ‬
       ‫ىبهل تـروَ ی ثغو کؼ ثغو آػؿك ثغو ػاػٍ ُبی حجبت کَ ػؿ صبفَٚ ًوبیو ػاػٍ هی‬
                                                                      ‫ىًْؼ هی ثبىؼ.‬
   ‫‪SysTab‬‬
   ‫ًوبػ‬      ‫آػؿك‬     ‫رؼّل ‪ :op-tab‬ایي رؼّل صبّی کلیَ ی ػمتْؿالٞول ُب ّ ‪ُ op-code‬بی‬
     ‫‪L‬‬        ‫‪‬‬                                                       ‫آًِب هی ثبىؼ.‬
     ‫‪X‬‬         ‫‪‬‬
 ‫...... .......‬
     ‫‪Y‬‬         ‫‪‬‬                                                        ‫رؼّل ‪:sgmtab‬‬
                        ‫ایي رؼّل صبّی کیَ ی ىٌبمَ ُب ثـچنت ُب هتغییـ‬
                                                        ‫ُبّ....ّ ُوـاٍ آػؿك آًِبمت.‬
       ‫ایي رؼّل ثَ تٌِبیی ّرْػ ًؼاؿػ ثلکَ ػؿ اثتؼای ُـ ثـًبهَ مَ عبلی امت ّ ثَ‬
    ‫‪ Op-code‬ػمتْؿالٞول‬                                             ‫تؼؿیذ پـ هی ىْػ.‬
        ‫‪ADD‬‬        ‫50‬                                                         ‫‪Op - Tab‬‬
                                ‫ّ ُـ ثـًبهَ ثـای عْػ یک رؼّل هزقا ّ هتفبّت ػاؿػ.‬
        ‫‪MOV‬‬        ‫‪1E‬‬
                           ‫اموجلـ ػمتْؿات اموجلی ؿا ثب یک ًگليت یک ثَ یک ثَ لبلت‬
         ‫‪Sub‬‬       ‫67‬
                            ‫ُبی ػمتْؿالٞول کَ ػاؿای ْٕل ُبی هغتلف ُنتٌؼ تجؼیل هی‬
                                 ‫کٌؼ ّ اف کٌبؿ ُن قزار ػاػى ایي لبلت ُب فبیل ‪*.obj‬‬
                                                               ‫ثـًبهَ ایزبػ هی ىْػ.‬

                                                                ‫اطوثلز2 گذرٍ اطت:‬
            ‫ثؼیي هٌٞی کَ ثـًبهَ ؿا 2 ثبؿ اف ثبال تب پبییي ثـؿمی هی کٌؼ.‬
       ‫1 ) - گؾؿ اّل ػؿ گؾؿ اّل اموجلـ ػمتْؿات ثـًبهَ ؿا ثَ ٍْؿت ػمتْؿ ثَ ػمتْؿ‬
       ‫ثـؿمی کـػٍ ّ توبم ىٌبمَ ُب( هتغییـُب) ؿا اٝن اف ثـچنت ػمتْؿالٞول ُب ّ یب‬
     ‫هتغییـُب ىٌبمبیی ًوْػٍ ّ آػؿك آًِب ؿا ثَ ُوـاٍ ًبم آًِب ػؿ رؼّل ‪ sgmtab‬لـاؿ‬
                                                                           ‫هی ػُؼ.‬
     ‫2) – ػؿ گؾؿ ػّم اموجلـ هزؼػا ػمتْؿات ثـًبهَ ؿا اف آغبف ثـًبهَ هْؿػ ىٌبمبیی‬
     ‫لـاؿ ػاػٍ ّ ثـای ُـ ػمتْؿالٞول ثب امتفبػٍ اف رؼّل ًوبػُب کَ ػؿ هـصلَ لجل (‬
       ‫گؾؿ اّل ) ایزبػ ىؼ ّ ُوچٌیي رؼّل ‪ ّ Op – tab‬رؼّل ‪ AMB‬لبلت ػمتْؿالٞول ؿا‬
                                                                    ‫ایزبػ هی کٌؼ.‬
     ‫اگـ ػؿ ْٕل ثـًبهَ اف یک هتغییـ امتفبػٍ ىْػ کَ ػؿ ثـًبهَ تٞـیف ًيؼٍ امت. ػؿ‬
        ‫گؾؿ ػّم ٌُگبهی کَ ثَ ایي هی ؿمین. ػؿ رؼّل ‪ SystemTab‬رنتزْ هی ىْػّ ثَ ٝلت‬
                                  ‫ایٌکَ ػؿ ایي رؼّل ّرْػ ًؼاؿػ اموجلـ عٖب هی ػُؼ‬
     ‫ًکتَ : ػؿ گؾؿ اّل تٞؼاػی اف ىجَ ػمتْؿالٞول ارـا هی ىْػ ىجَ ػمتْؿالٞول ُبیی‬
                                                           ‫ًٚیـ ‪ ّ define‬غیـٍ ....‬
     ‫ًکتَ : ػؿ گؾؿ ػّم ىجَ ػمتْؿالٞول ُبیی کَ ػؿ هـصلَ لجل ارـا ىؼٍ اًؼ ارـا هی‬
                                                                             ‫ىًْؼ.‬
                                       ‫مئْال : ٝلت ایٌکَ اموجلـ ػّگؾؿٍ امت چینت؟‬
             ‫‪: jmpl L‬‬               ‫ػؿ فهبى تـروَ، ٌُگبهی ثَ ػمتْؿ ‪ Jmpl‬هی ؿمؼ،‬
‫...............................‬           ‫تفبّت هکبى ثیي ثـچنت ّ ػمتْؿ ‪ jmp‬ؿا ػؿ‬
 ‫..............................‬     ‫لبلت لـاؿ هی ػُؼ. اٍٖالصب ثَ ایي ٝول، ٝولیبت‬
          ‫‪L: Mov ax, o‬‬              ‫هجتٌی ثَ اؿربٛ ثَ رلْ هی گْیٌؼکَ ثبٝج هی ىْػ‬
                                    ‫هب هزجْؿ هی ین، امجلـُب ؿا ػّگؾؿٍ تٞـیف کٌین‬
                                  ‫یٌٞی ػؿ ّالٜ ػؿ گؾؿ اّل هب ‪ L‬ؿا پیوبیو هی کٌؼ،‬
                             ‫ػؿ گؾؿ ػّم آًـا ثـاصتی ػؿ ایي عبًَ ی فیـ ػؿد هی کٌؼ‬
                                                            ‫‪-‬‬

                                                    ‫تزجوَ ستاى اطوثلی تَ کوک اطوثلز‬
        ‫‪*.Asm ‬‬     ‫اطوثلز هی‬   ‫‪‬‬   ‫‪*.obj‬‬   ‫‪‬‬      ‫پیًْذ‬   ‫‪ *.com‬یا ‪*.exe‬‬
                         ‫گیزد‬                      ‫دٌُذٍ‬
                                ‫ثَ تٌِبیی لبثل ارـا ًینتٌؼ.‬     ‫ًکتَ : فبیل ُبی ‪*.obj‬‬
                              ‫اموجلـُب ًوی تْاًٌؼ هنتمیوب فبیل ارـایی ایزبػ کٌٌؼ.‬
          ‫اموجلـ یک هضیٔ ‪ً IDE‬ؼاؿػ ّ ثـای ثَ ّرْػ آّؿػى فبیل اموجلی هی تْاى اف ُـ‬
                            ‫‪ Editor‬امتفبػٍ کـػ ّ مپل فبیل ؿا ثب پنًْؼ ‪ .asm‬ؽعیـٍ کـػ‬
        ‫ثـای تـروَ ی ثـًبهَ اموجلی ػّ ًْٛ ًـم افقاؿ ّرْػ ػاؿػ کَ ٝجبؿتٌؼ اف ‪MASM‬‬
                                                                               ‫ّ‪TASM‬‬
                              ‫‪ MASM‬هضَْل ىـکت ‪ TASM ّ IBM‬هضَْل ىـکت ‪ Microsoft‬امت.‬
   ‫62‬
                                                                          ‫اًْاع اطوثلزُا :‬
                                           ‫) ‪( micro assembler‬‬       ‫‪MASM‬‬       ‫1) هاکزّاطوثلز‬
                                                      ‫2 ) تْرتْ اطوثلز ‪( Turb Assembler ) TASM‬‬
                                                                               ‫اًْاع ‪ُ linker‬ا:‬
                                                  ‫2) ‪Tlink‬‬                           ‫‪link‬‬  ‫1) -‬
‫ثـای اموجلـ ‪ TASM‬ثبیؼ اف ‪ ّ Tlink‬ثـای اموجلـ ‪ MASM‬ثبیؼ اف ‪ Link‬امتفبػٍ کـػ.‬
                                                                        ‫امتفبػٍ اف ‪MASM‬‬
            ‫ثـای ارـای ایي ثـًبهَ ‪ MASM‬ؿا تبیپ کـػٍ ّ ثَ مْاالت پبمظ هی ػُین.‬
    ‫اموجلـ ُب ٝالٍّ ثـ اهکبى تْلیؼ ‪ obj‬فبیل اهکبى تْلیؼ ‪ crf ّ lst‬ؿا کَ فبیل ُبی‬
                                                                    ‫‪ُ Text‬نتٌؼ ؿا ػاؿًؼ.‬
  ‫رؼّل ٍفضَ ی ثٞؼ هـثْٓ ثَ ‪ listing‬هی ثبىؼ کَ ایي فبیل ثَ ػّ لنوت تمنین هی ىْػ‬
                      ‫اگـ ػمتْؿالٞول ُبیی ‪ error‬ػاىتَ ثبىین ػؿ متْى چپ هی ًْینؼ.‬
 ‫تْلیؼ ‪ listing‬ؿثٖی ثَ ‪ً error‬ؼاؿػ یٌٞی اگـ ثَ ‪ listing‬ؿمیؼین ًبم اًتغبثی ؿا تبیپ‬
                                     ‫کـػٍ ّ ‪‬ؿا هی فًین کَ فبیل ؿا تْلیؼ هی کٌؼ‬
 ‫رؼّل اؿربٛ هتمبثل ‪ cross Refrence filename [ noll.crf]:‬ایي ػمتْؿ یک فبیل ‪ Text‬ثَ ٍْؿت‬
                                                                        ‫فیـ تْلیؼ هی کٌؼ‬
    ‫پل اف تْلیؼ ‪ – obj‬فبیل ثـای ارـا ثبیؼ ثـًبهَ ؿا ثَ ‪ linker‬ثؼُین هخال" اگـ اف‬
                                                                        ‫‪ link‬امتفبػٍ کٌین‬
                                                                                            ‫‪link‬‬
                                                         ‫‪Object filename[*.obj]: firstprogram:‬‬
                                                                      ‫‪Run [ first program.exe]:‬‬
                                                                      ‫‪Map filename:[null.map]‬‬
   ‫‪ Map‬یک ًميَ اف صبفَٚ ای کَ ثـًبهَ لـاؿ امت ػؿ آى ‪ load‬ىْػ ؿا ثَ هب هی ػُؼ.‬
‫کَ اگـ ثغْاُین تْلیؼ ىْػ ًبم فبیل ؿا هی ًْینین ّ اگـ ًغْاُین ‪ ‬ؿا هی فًین ّ‬
                                              ‫ػؿ پبیبى ُن مْال فیـ پـمیؼٍ هی ىْػ‬
                                                                      ‫‪Indude library [null.lib]:‬‬
          ‫ػؿ ٍْؿت ّرْػ ًبم کتبثغبًَ ُبیی ؿا کَ اف فیـ ثـًبهَ ُبی آى ػؿ ثـًبهَ‬
                                                      ‫امتفبػٍ کـػین ؿا هی ًْینین.‬
                                                                      ‫امتفبػٍ اف ‪: TASM‬‬
   ‫اگـ ‪ Tasm‬ؿا تبیپ کـػٍ ّ ‪ ‬ؿا ثقًین ثَ هب ‪ help‬ؿا ًيبى هی ػُؼ کَ ٝجبؿتنت اف‬
                                                             ‫]…[]‪[option] sourcefile[object file‬‬
            ‫‪ :Option‬هٞوْال" ثب یک / آغبف هی ىًْؼ هخال" ‪ / L‬یب ‪ / La‬یب ‪ / Zi‬یب ‪/ C‬‬
                    ‫کَ یک فبیل ‪ obj‬ثب ایي ًبم ّ یک ‪ listing‬ثب ایي ًبم تْلیؼ هی کٌؼ‬
                                           ‫ثـای ایٌکَ فبیل ‪ُ exe‬ن تْلیؼ ىْػ ثبیؼ‬
                                            ‫‪ Tlink [option] object filename‬ؿا ثَ کبؿ ثـػ‬
      ‫ًکتَ: هی تْاى ثـًبهَ ُبی اموجلی ؿا ػؿ فبیل ثـًبهَ ُبی ‪ًْ pascal ّ C‬ىت ثَ‬
                                                                                    ‫ٍْؿت فیـ:‬

                                                                                        ‫ثغو ػّم‬
                                                                          ‫فَل ػّم‬
        ‫ُـ ػمتْؿ اموجلی اف مَ ثغو تيکیل هی ىْػ ّ ُـ ػمتْؿ اموجلی ثبیؼ ػؿ یک عٔ‬
                                                                        ‫ثیبى ىْػ:‬
                                                               ‫ثغو ًغنت، ثـچنت‬    ‫1)‬
                                          ‫عْػ ػمتْؿالٞول (ٝولگـ یب ‪) operator‬‬     ‫2)‬
                                                         ‫ٝولًْؼ ُب یب ‪operands‬‬    ‫3)‬


                       ‫ثـ چنت‬                 ‫ٝولگـ‬                    ‫ٝولًْؼ‬
        ‫ثـچنت القاهی ًینت ثلکَ ثَ هٌٖك ثـ ًبهَ‬
                                                                           ‫ُب‬
                                                                           ‫1) ّرْػ‬
                                ‫ثنتگی ػاىتَ ّ ػؿ ٍْؿت لقّم امتفبػٍ هی کٌین .‬
     ‫ثـچنت، ػًجبلَ ای اف صـّف کْچک ّ ثقؿگ ّ اٝؼاػ (_) امت ثَ ْٕل 13 کبؿاکتـ کَ‬
                                                              ‫ثب ٝؼػ ىـّٛ ًوی ىًْؼ‬
                        ‫ًکتَ: ثـچنت ػؿ فثبى اموجلی ثب (:) اف ٝولگـ رؼا هی ىْػ.‬
                           ‫هخبل: ثـای ثـچنت ُب:1‪. data، sort، F17، arrage ،sum ،L‬‬
     ‫2) ٝولگـُب: ػؿ ثـػاؿًؼٍ ی ًْٛ ٝولی ُنتٌؼ کَ ػؿ آى ػمتْؿالٞول ارـا هی ىْػ.‬
                                                 ‫ٝولگـُب عْػ ىبهل مَ ًْٛ ٝولیبتٌؼ:‬
‫72‬
                                                                  ‫الف) ىجَ ػمتْؿالٞول‬
                                                                  ‫ة ) عْػ ػمتْؿالٞول‬
                                                                  ‫د ) فـاعْاًی هبکـّ‬

                         ‫الف) ىجَ ػمتْؿالٞول : ‪( Assembler Direction ) psedu instruction‬‬
       ‫ىجَ ػمتْؿالٞول ُب ثـ ؿًّؼ تـروَ تأ حیـ هی گؾاؿًؼ ّاف تـروَ ی آًِب لبلت‬
      ‫ػمتْؿالٞول ایزبػ ًوی ىْػ ) ‪ً op_code‬ؼاؿًؼ) ػمتْؿاتی ُنتٌؼ کَ هٞبػل هبىیي‬
                                                                           ‫تـروَ ًؼاؿًؼ.‬

                       ‫ة)ػمتْؿالٞول ُب:ػؿفَل ثٞؼ ثَ ْٕؿ هفَل تّْیش ػاػٍ هی ىْػ.‬

 ‫د) هب کـُّب : هزوَْٝ ای اف ػمتْؿالٞول ُب ؿا هوکي امت یکزب روٜ آّؿی کٌین کَ‬
       ‫ثَ آى هبکـّ هی گْیین. ّ ػؿ ٍْؿت لقّم ایي ػمتْؿات ؿا ثَ کوک ًبم هبکـّ‬
                                                          ‫فـاعْاًی هی کٌین.‬

                   ‫3) ٝولًْؼُب : ّرْػ ٝولًْؼُب ثَ هبُیت ٝولگـُب ثنتگی ػاؿػ.‬
                               ‫ثَ ْٕؿ کلی ٝولًْؼُب ثَ مَ ػمتَ تمنین هی ىًْؼ‬
‫3) ًبم ىٌبمَ کَ ػؿ ثغيی اف ثـًبهَ ثَ ٌْٝاى ثـ‬    ‫2) یک حجبت‬     ‫1) ًبم حجبت‬
                                                        ‫چنت امتفبػٍ ىؼٍ امت‬
                                                                              ‫ثثاتِا:‬
   ‫اف 41 حجبت هْرْػ، 21 تبی آًِب لبثل امتفبػٍ اًؼ. ّ ثَ ْٕؿ کلی هی تْاًٌؼ 6‬
                                                      ‫صبلت فیـ ؿا ػاىتَ ثبىٌؼ.‬
   ‫3) ُگق (هجٌبی ىبًقػٍ)‬       ‫2) اکتبل (هجٌبی ُيت)‬          ‫1) ػُؼُی‬    ‫عذدی:‬
                                                           ‫4) ثبیٌـی (هجٌبی ػّ)‬
                                      ‫6( ؿىتَ ای‬     ‫غیز عذدی: 5) کبؿاکتـی‬
   ‫1) دُذی صحیح : ؿىتَ ای اف اؿلبم ٍفـ تب 9 کَ هوکي امت ثب یک ٝالهت + یب –‬
                                           ‫آغبف ّ ثَ یک ‪ (decimal) d‬عتن ىْػ.‬
 ‫( ػؿد ‪ D‬ػؿ اًتِبی ایي اٝؼاػ ارجبؿی ًینت ّ ػؿ ٍْؿت ًْىتي صـف ‪،D‬ثبیؼ ثَ ٝؼػ‬
                                                          ‫چنجیؼٍ ثبىؼ) هخبل:‬
                                     ‫‪123 ، - 147 ، 39D ، +673D‬‬
        ‫2) ثبیٌـی : ػًجبلَ ای اف اؿلبم ٍفـ ّ یک کَ صتوَ ثَ یک ‪ B‬عتن هی ىْػ.‬
                             ‫ب‬
                                                                    ‫)‪)B….binary‬‬

                           ‫‪mov‬‬    ‫‪ax,01101001B‬‬                                 ‫هخبل:‬

                        ‫3) اکتبل (‪ :(octal‬ؿىتَ ای اف اؿلبم ٍفـ تب 7 کَ صتوَ ثَ یک‬
                              ‫ب‬
                                                            ‫‪ O‬یب ‪ Q‬عتن هی ىْػ.‬
                     ‫‪mov ax,134Q‬‬                                            ‫هخبل:‬

      ‫4) ُگق)‪ :(Hex‬ػًجبلَ ای اف اؿلبم ٍفـ تب 9 ّ صـّف ‪ A‬تب ‪ F‬کَ صتوَ ثب یک ؿلن‬
                ‫ب‬
                                               ‫آغبف ّ ثَ یک ‪ H‬عتن هی ىًْؼ.‬
     ‫ًکتَ: ػؿ ٍْؿتی کَ اّلیي ؿلن صـف ‪ A‬تب ‪ F‬ثبىؼ. اموجلـ ٝؼػ ؿا ثب ثـ چنت یکی‬
        ‫هی گیـػ.ثـای رلْگیـی اف ایي کبؿ ػؿ اثتؼای ایٌگًَْ اٝؼاػ یک ٝؼػ ٍفـ هی‬
                                                                       ‫گؾاؿین.‬
                                    ‫‪20H ،345H ، 3ACDH‬‬     ‫هخبل: ‪X FFH…. OFFH‬‬
        ‫5) کبؿاکتـی: ُـ ًوبػ یب تک ٝالهتی کَ ػؿ هیبى 2 تک کْتیيي لـاؿ هی گیـػ.‬
                                                                      ‫هخبل:‬
          ‫' 5 ', ‪mov ax‬‬

                   ‫6) ؿىتَ ای: ُـ ػًجبلَ ای اف ًوبػ ُب یب ٝالئن کَ ػؿ هیبى 2 تک‬
                     ‫کْتیيي لـاؿ هی گیـػ ّ ثَ ٍْؿت ثبیت ثَ ثبیت تٞـیف هی ىْػ.‬
                                    ‫' ‪str DB ' Turba Assembler‬‬           ‫هخبل:‬

                                                               ‫ىجَ ػمتْؿالٞول ُب:‬
                       ‫1) ‪ :Title‬هتٌی کَ ػؿ همبثل ایي ىجَ ػمتْؿالٞول ًْىتَ هی ىْػ‬
                                    ‫ثَ ٌْٝاى تیتـ ػؿ مـ ٍفضَ ‪ listing‬ػؿد هی ىْػ.‬

                       ‫ٝولگـ‬          ‫ٝولًْؼ‬
‫82‬
      ‫‪title‬‬      ‫‪Tis is First my Asscmbly‬‬

                                     ‫2) ‪ :page‬ایي ىجَ ػمتْؿالٞول 2 ٝؼػ هی گیـػ. هخال‬
                           ‫َ 08,06. ػؿ‬
              ‫ایي ٍْؿت ػؿ ‪ُ listing‬ـ ٍفضَ ىبهل 06 عٔ ّ ُـ عٔ ىبهل 08 متْى عْاُؼ ىؼ.‬
                                                                     ‫ٝوگـ‬        ‫ٝولًْؼ‬

                                ‫تٞؼاػ متْى (کبؿاکتـ) ػؿ ُـ مٖـ، تٞؼاػ مٖـ‬
                              ‫‪page‬‬
                                          ‫08,06 ‪page‬‬
                ‫3( ‪ : Segment‬ایي ىجَ ػمتْؿالٞول آغبف ُـ ‪ segment‬ؿا ًيبى هی ػُؼ.‬
     ‫چْى 4 ًبصیَ ػاؿین . ایي ىجَ ػمتْؿالٞول صؼاکخـ 4 ثبؿ هْؿػ امتفبػٍ لـاؿ هی‬
                                                        ‫گیـػ.. ًضٍْ ی امتفبػٍ:‬
             ‫]پبؿاهتـ کالك [] پبؿاهتـ تـکیت [ ] پبؿاهتـ تٌٚین[ ‪ًSEGMENT‬بم ‪segment‬‬

                 ‫پبؿاهتـ تٌٚین: هـفی ؿا کَ مگوٌت ثبیؼ افآًزب ىـّٛ ىْػ هيغٌ‬
                                       ‫هی کٌؼ هی تْاًؼ همبػیـ فیـ ؿا ثگیـػ:‬
                    ‫‪:byte‬آػؿك مگوٌت هی تْاًؼ اف ُـ ًمَٖ ای افصبفَٚ ىـّٛ ىْػ.‬
                       ‫‪ :word‬مگوٌت هی تْاًؼ اف ُـ ًمَٖ ای اف صبفَٚ کَ آػؿك آى‬
                                                             ‫فّد ثبىؼ ىـّٛ ىْػ.‬
                                ‫‪ :para‬آػؿك مگوٌت اف ....پبؿاگـاف ىـّٛ هی ىْػ.‬
                         ‫‪ :page‬آػؿك مگوٌت هی تْاًؼ اف ُـ ربیی کَ ثـ ‪(256) 100H‬‬
                                                     ‫لبثل لننوت ثبىؼ ىـّٛ ىْػ.‬
 ‫ػیگـی کَ پل اف‬     ‫پبؿاهتـ تـکیت: هيغٌ هی کٌؼ کَ آیب ایي مگوٌت ثب مگوٌت ُبی‬
‫تـروَ ثـًبهَ ثَ آى پیًْؼ ػاػٍ هی ىًْؼ، تـکیت ػاػٍ ىْػ یب عیـ. ّ هی تْاًؼ یکی‬
                                            ‫اف همبػیـ‪Common ، Stack، Public، None‬‬
                                                                    ‫ؿا اعتیبؿ کٌؼ.‬
 ‫پبؿاهتـ کالك: ثَ پیًْؼ ػٌُؼٍ کوک هی کٌٌؼ تب مگوٌت ُبیی ثب ًبم ُبی هغتلف ؿا ثَ‬
                ‫ُن پیًْؼ ػُؼ، مگوٌت ُب ؿا هيغٌ کٌؼ ّ تـتیت آًِب ؿا کٌتـل کٌؼ.‬
       ‫4)‪ :Assume‬اف ایي ىجَ ػمتْؿالٞول ثـای هـتجٔ کـػى مگوٌت ُب ثب حجبتِب یيبى‬
                                                                   ‫امتفبػٍ هی ىْػ.‬
 ‫ثؼیي هٌٞی کَ آػؿك اثتؼای مگوٌت ُب ؿا ػؿ ػاعل حجبتِب ی هـثَْٕ لـاؿ هی ػُؼ هضل‬
        ‫امتفبػٍ ایي ػمتْؿ ػؿ ‪ ّ code_seg‬ػؿ ػاعل فیـ ثـًبهَ اٍلی ثَ ٌْٝاى اّلیي‬
                                                              ‫ػمتْؿالٞول هی ثبىؼ.‬
                                        ‫‪Assume CS:codeseg , DS:dataseg‬‬       ‫هخبل:‬

                        ‫‪Call a‬‬                                                 ‫5) ‪:proc‬‬
              ‫ثبىؼ.‬                         ‫ىکل ثَ کبؿ گیـی ایي ػمتْؿ ثَ ٍْؿت همبثل هی‬
                        ‫‪Proc‬‬
              ‫ٝولگـ‬     ‫‪Call b‬‬                      ‫ٝولًْؼ‬
                                                                                    ‫ثـچنت‬
                                                                                      ‫‪near‬‬
     ‫‪proc‬‬                                    ‫‪for‬‬
                        ‫‪Proc b‬‬                                     ‫ًبم فیـ ثـًبهَ‬

‫ػؿ ُـ ثـًبهَ ای یک فیـ ثـًبهَ اف ًْٛ ‪ّ for‬رْػ ػاؿػ کَ آى فیـ ثـًبهَ ًيبى ػٌُؼٍ‬
                           ‫ی آغبف ػمتْؿالٞول ُبی ارـایی امت هبًٌؼ )(‪ main‬ػؿ‪. C‬‬
   ‫ًکتَ: اگـ فـاعْاًی اف مگوٌت ػیگـ ثبىؼ فـاعْاًی ػّؿ ّ اگـ فـاعْاًی اف مگوٌت‬
                                               ‫ثـًبهَ ثبىؼ فـاعْاًی ًقػیک امت.‬

                                                                        ‫فـاعْاًی ًقػیک‬



                                                                     ‫فـاعْاًی ػّؿ‬


                                                             ‫‪:end، ends، endp‬‬          ‫6)‬
 ‫فیـ ثـًبهَ ثَ یک ‪ endp‬عتن هی ىْػ کَ پبیبى ػٌُؼٍ ی تٞـیف یک فیـ ثـًبهَ امت.‬            ‫ُـ‬
           ‫مگوٌت ثَ یک ‪ ends‬عتن هی ىْػ کَ پبیبى ػٌُؼٍ ی تٞـیف یک مگوٌت امت.‬            ‫ُـ‬
        ‫ثـًبهَ ثَ یک ‪ end‬عتن هی ىْػ کَ ًيبى ػٌُؼٍ ی پبیبى ُوَ مگوٌت ُب امت.‬            ‫ُـ‬
‫92‬
‫تـتیت ‪ُ endp‬وبًٌؼ تـتیت پـاًتق ُبمت، یٌٞی اّلیي ‪ Endp‬هـثْٓ ثَ آعـیي ‪ proc‬امت ّ‬
                        ‫ثبلٞکل آعـیي ‪endp‬هـثْٓ ثَ اّلیي ‪ proc‬امت.--------------‬




                            ‫ثـچنت‬        ‫ٝولگـ‬           ‫ًضُْی امتفبػٍ ی ‪:endp , ends‬‬
                                                        ‫ًبم فیـثـًبهَ‬          ‫‪ENDP‬‬
           ‫ًبم مگوٌت‬           ‫‪ENDS‬‬

                     ‫7) ‪: ORG‬ایي کلوَ اف ‪ orgnize‬ثَ هٌٞی مبفهبًؼُی کـػى هی آیؼ.‬
     ‫ایي ىجَ ػمتْؿ ثَ اًؼافٍ ی ‪ opranal‬عْػ اف آػؿك ربؿی، صبفَٚ ؿفؿّ هی کٌؼ.هخبل:‬
                                                                     ‫---- 02,‪add ax‬‬
                               ‫---- ‪Org 100H‬‬             ‫ؿفؿّ هی کٌؼ‬     ‫‪100H‬‬
                                                                 ‫001+ ---- 4,‪mov bx‬‬

                              ‫8) ‪: EQU‬ایي ػمتْؿ ُوبًٌؼ ػمتْؿ ‪ define‬ػؿ‪ C‬هی ثبىؼ.‬
                         ‫‪ُEQU‬ب هی تْاًٌؼ تْػؿتْ ثبىٌؼ ّلی ثبیؼ تـتیت ؿٝبیت ىْػ.‬
                                                                    ‫001 ‪max EQU‬‬
                                                                   ‫‪count EQU max‬‬

   ‫9) ‪: public‬ثب امتفبػٍ اف ایي ىجَ ػمتْؿالٞول هتغیـُب یب همبػیـ ثـای ػیگـ ثـًبهَ‬
                                     ‫ُب ّ فیـ ثـًبهَ ُب ثَ اىتـاک گؾاىتَ هی ىْػ.‬
                                        ‫----, ‪public sum ,max ,sort‬‬            ‫هخبل:‬
  ‫01)‪: Extrn‬ایي ىجَ ػمتْؿالٞول ثَ اموجلـ اٝالم هی کٌؼ کَ هتغیـ ُبی هٞـفی ىؼٍ تْمٔ‬
       ‫آى ثَ ٌْٝاى هتغیـ ُب ی عبؿری ُنتٌؼ یٌٞی ربی تٞـیف ىؼٍ ػؿ ایٌزب امتفبػٍ هی‬
                                                                                ‫ىًْؼ.‬
 ‫11)‪: Include‬ثـای پیًْؼ ػاػى فبیل ُب ّ کتبثغبًَ ُب ی امتفبػٍ ىؼٍ ػؿ ثـًبهَ ثَ ثـ‬
                                                                 ‫ًبهَ امتفبػٍ هی ىْػ.‬
 ‫ًبم فبیل یب کتبثغبًَ ای ؿا کَ اف ٌٝبٍـ آى ػؿ ػاعل ثـًبهَ امتفبػٍ کـػٍ این ثٞؼ‬
                                                 ‫اف آى هی آّؿین هخل ‪ uses‬ػؿ‪. pascal‬‬
                                              ‫‪Include C:\Nork\mylib.asm‬‬         ‫هخبل:‬
                                    ‫ىجَ ػمتْؿالٞول ُبی تٞـیف ػاػٍ ُب ّ هتغیـُب :‬
 ‫ػؿ اموجلی ًیق هبًٌؼ مٖش ثبال، ثبیؼ ػاػٍ ُب تٞـیف ىًْؼ. ػؿ اموجلی ػاػٍ ُب ؿا ثب‬
                                   ‫یکی اف ىجَ ػمتْؿالٞول ُب ی فیـ تٞـیف هی کٌٌؼ.‬
 ‫1) ‪(Define byte) DB‬‬
‫2)‪(Define word ( DW‬‬
 ‫3(‪(Define doublew) DD‬‬
‫4)‪(Define Quad word) DQ‬‬
‫5)‪(Define Ten Byte ) DT‬‬

      ‫ًکتَ: هتغیـُب ؿا هی تْاى ػؿ ُوَ ی مگوٌت ُب تٞـیف کـػ ّلی اغلت ػؿ ‪ data‬مگوٌت‬
                                                                      ‫تٞـیف هی ىْػ.‬
     ‫ًکتَ: ٌُگبهی کَ ػؿ مگوٌت ُب هب ػّ هتغیـ ؿا پيت مـ ُن تٞـیف هی کٌین ػؿ صبفَٚ‬
                          ‫عبًَ ُبی هزبّؿ ؿا هی گیـًؼ ّ پيت مـُن ػؿ صبفَٚ هی ًيیٌٌؼ.‬
  ‫ًکتَ: ثـای ایزبػ آؿایَ کَ همؼاؿ عبًَ ُبی آى هيغٌ ًینت هی تْاى اف ػمتْؿ ‪ dup‬ثَ‬
                                                              ‫ٍْؿت فیـ امتفبػٍ کـػ:‬
‫)?(‪list DB 4 dul‬‬
     ‫هخبل ثبال یک آؿایَ ی چِبؿ تبیی ثب همؼاؿ? (ًب هٞلْم) ایزبػ هی کٌؼ. هی تْاى ثَ‬
                                                          ‫ربی ? ُـ همؼاؿی لـاؿ ػاػ.‬
                  ‫ًکتَ: ثـای ایزبػ یک آؿایَ ی ػّ ثٞؼی هی تْاى ثَ ٍْؿت فیـٝول کـػ.‬
‫) 4 ‪list 2 DB 10 Dup( 3 Dup‬‬

 ‫ػمتْؿ ثبال یک آؿایَ ی 3*01 ثب همؼاؿ اّلیَ ی 4 ثـای عبًَ ُبی آى ایزبػ کـػٍ امت.‬
                ‫1) ‪:DB‬ثـای تٞـیف هتغیـ ُب یب ػاػٍ ُبی یک ثبیتی امتفبػٍ هی ىْػ.‬
 ‫اف لضبٗ ٝؼػی هی تْاًؼ ػاػٍ ُبی ٝالهتؼاؿ ؿا اف 721 تب 821- ّ ػاػٍ ُبی غیـ ٝالهتؼاؿ‬
                                                       ‫ؿا اف 552 تب 0 ًگِؼاؿی کـػ.‬


‫03‬
        ‫2) ‪: DW‬هتغیـُبیی کَ اف ایي ًْٛ ُنتٌؼ صبفَٚ ُبیی ثب مبیق 2 ثبیت ُنتٌؼ.‬
                                                                        ‫? ‪count DW‬‬
‫)?(‪count DW 24 Dup‬‬
                         ‫ػمتْؿ ثبال ػاؿای 42 عبًَ ی 2 ثبیتی هی ثبىؼ یٌٞی 84 ثبیت.‬
      ‫ًکتَ: تـافثٌؼی ػاػٍ ُب ثـ امبك هْـثی اف ْٕل عْػ ىبى امت. یٌٞی ػاػٍ ُبی 2‬
     ‫(اف آػؿك ُبی فّد ىـّٛ هی ىًْؼ)‬       ‫ثبیتی ؿّی آػؿك ُب ی فّد تـافثٌؼی هی ىًْؼ‬
 ‫ًکتَ: ٌُگبهی کَ هتغیـ ُب اف یک ثبیت ثیيتـ هی ىًْؼ ثَ ْٕؿ هٞکْك ػؿ صبفَٚ لـاؿ‬
                                                                         ‫هی گیـًؼ.‬
 ‫ًکتَ: ػؿ فثبى اموجلی ‪ (Out Of Range‬ػمتجـػ ػؿ عبًَ ی ُونبیَ )ًؼاؿین ثؼیي هٌٞی‬
‫کَ اگـ یک آؿایَ ی 01 تبیی ػاىتَ ثبىین ػمتْؿات 1-‪ list‬یب 11+‪ list‬عٖب گـفتَ ًوی ىْػ.‬
  ‫هتغیـ ُبیی اؿ ًْٛ ‪ DW‬هی تْاًٌؼ همبػیـ ثؼّى ٝال هت0 تب 53556 ؿا ػؿ عْػ ًگِؼاؿی‬
                   ‫کٌٌؼ.ُوچٌیي همبػیـٝالهتؼاؿ 86723- تب 76723 ؿا ًگِؼاؿی هی کٌٌؼ.‬
           ‫3( ‪: DD‬ایي ًْٛ هتغیـُب ثـای ًگِؼاؿی ػاػٍ ُبی 4 ثبیتی ثَ کبؿ هی ؿًّؼ.‬
                ‫اف ایي ًْٛ هتغیـ ُب ثیيتـ ثـای ًگِؼاؿی آػؿك ُب امتفبػٍ هی ىْػ.‬
         ‫ًکتَ: یک هتغیـ 4 ثبیتی ؿا ًوی تْاى ثَ ْٕؿ هنتمین ػؿ هضبمجبت ىـکت ػاػ.‬
                                                                ‫‪x‬‬    ‫‪DD‬‬   ‫4356‬
                                                                      ‫‪Add ax,x bk‬‬

                                          ‫1-132--------132-‬           ‫‪ Range‬ػاػٍ ُبی ٝالهتؼاؿ:‬
                                                     ‫‪ Range‬ػاػٍ ُبی ثؼّى ٝالهت: 1-232--------0‬
   ‫4) ‪: DQ‬ثـای ًگِؼاؿی ػاػٍ ُبی 8 ثبیتی ( 4 کلوَ ای) هْؿػ امتفبػٍ لـاؿهی گیـػ.‬
                                           ‫1-362--------362-‬            ‫‪ Range‬ػاػٍ ُبی ٝالهتؼاؿ:‬
                                                    ‫‪ Range‬ػاػٍ ُبی ثؼّى ٝالهت: 1-462--------0‬
           ‫5) ‪: DT‬ثـای ًگِؼاؿی ػاػٍ ُبی 01 ثبیتی ( 5 کلوَ ای )هْؿػ امتفبػٍ لـاؿ هی‬
                                                                                            ‫گیـًؼ.‬
                                          ‫1-972+--------972-‬            ‫‪ Range‬ػاػٍ ُبی ٝالهتؼاؿ:‬
                                                  ‫‪ Range‬ػاػٍ ُبی ثؼّى ٝالهت: 1-082+--------0‬
                                                     ‫هخبل: ًضٍْ ی ًوبیو ػاػٍ ُب ػؿ صبفَٚ:‬
                                                   ‫(ًوبیو صبفَٚ ػؿ ٍفضَ ی ثٞؼ آهؼٍ امت.)‬
‫? ‪b1 DB‬‬
‫'‪b2 DB 'abc‬‬
‫‪blist DB 1,32,20H,'B',01000001b‬‬
‫‪wlist DW 39H,2736H‬‬
‫‪D1 DD 243B9F4AH‬‬
‫‪D2 DD 2DH‬‬
         ‫?‬                                                                               ‫ًکتَ ُب:‬
       ‫‪41H‬‬
       ‫‪42H‬‬                                                                                        ‫1‪b‬‬
                          ‫2‪b‬‬      ‫1) هتغیـُب ثَ تـتیجی کَ ػؿ ثـًبهَ تٞـیف هی ىًْؼ ػؿ‬
       ‫‪43H‬‬
                                                                           ‫صبفَٚ لـاؿ هی گیـًؼ.‬
        ‫‪1H‬‬
                               ‫2) ثـای تٞـیف ؿىتَ ُب اف ثبیت ‪ DB‬امتفبػٍ هی کٌین.(2‪)b‬‬
       ‫‪2OH‬‬
                         ‫‪blist‬‬    ‫3) ‪ blist‬صکن یک آؿایَ ؿا ػاؿػ ّ ػاػٍ ُبی همبثل آى ثَ‬
       ‫‪20H‬‬                                                      ‫تـتیت ػؿ صبفَٚ لـاؿ هی گیـًؼ.‬
       ‫‪42H‬‬                                                ‫4) ثب امتفبػٍ اف ػمتْؿ ]‪ .blist[si‬اگـ‬
       ‫‪41H‬‬
       ‫‪39H‬‬                                                    ‫1-=‪ si‬اگـ‬        ‫‪ blist[si]=43H‬آًگبٍ‬
       ‫‪00H‬‬                                           ‫آًگبٍ 5=‪ si‬اگـ ‪wlist‬‬             ‫‪blist[si]=39H‬‬
       ‫‪36H‬‬
       ‫‪27H‬‬         ‫5) ثب تْرَ ثَ ایٌکَ ‪ wlist‬اف ًْٛ کلوَ ای امت ػؿ ًتیزَ ػاػٍ ُبی آى‬
       ‫‪4AH‬‬                          ‫ُن ثبیؼ ثَ ٍْؿت 2 ثبیت ػؿ صبفَٚ لـاؿ گیـًؼ. همؼاؿ‬
       ‫‪9FH‬‬                       ‫1‪D‬‬     ‫‪ 39H‬ثـای لـاؿ گـفتي ػؿ صبفَٚ ثَ ٍْؿت ‪ 0039H‬ػؿ‬
       ‫‪3BH‬‬                                                                  ‫صبفَٚ لـاؿ هی گیـػ.‬
       ‫‪24H‬‬                           ‫6) ػاػٍ ُبی ثیو اف 2 ثبیت ثَ ٍْؿت هٞکْك ػؿ صبفَٚ‬
       ‫‪2DH‬‬                                                                   ‫لـاؿ هی گیـًؼ. 2‪D‬‬
       ‫‪00H‬‬                     ‫7) ثب امتفبػٍ اف ػمتْؿ ‪ mov ah,blist‬اّلیي همؼاؿ آؿایَ ػؿ‬
       ‫‪00H‬‬                                                                   ‫حجبت‪ ah‬لـاؿ هی گیـٍ‬
         ‫؟‬

‫13‬
     ‫8) هتغیـ2‪ ،D‬اف ًْٛ ‪ُ DD‬نتٌؼ. یٌٞی ػاؿای 4 ثبیت هی ثبىؼ. همؼاؿ ‪ 2DH‬ثـای لـاؿ‬
            ‫گـفتي ػؿ صبفَٖ ثبیؼ ثَ ٍْؿت 4 ثبیت لـاؿ گیـػ یٌٞی ثَ ٍْؿت ‪. 0000002DH‬‬
                       ‫فَل4:ػمتْؿالٞولِبی اًتمبل ػاػٍ ّ آػؿك: )‪(Data transfer Instructions‬‬
         ‫هیبى‬      ‫ّٙیفَ ػمتْؿالٞول ُب ی اًتمبل ػاػٍ ّ آػؿك، ًمل ّ اًتمبل ػاػٍ ُب‬
                ‫هی گـػًؼ.‬        ‫صبفَٚ ّ حجبت ؿا 1 هی ثبىؼ ّ ثَ چِبؿ ػمتَ ی فیـ تمنین‬
                                        ‫(‪)General_Purpose‬‬          ‫‪:a‬ػمتْؿالٞول ُبی ُوَ هٌْٚؿٍ‬
                                                  ‫‪:b‬ػمتْؿالٞول ُبی ّؿّػی/عـّری (‪(Input / Output‬‬
                                       ‫(‪)Address Transfer‬‬          ‫‪:c‬ػمتْؿالٞول ُبی اًتمبل آػؿك‬
                                                   ‫‪(Flag Transfer) Flag‬‬   ‫‪:d‬ػمتْؿالٞول ُبی حجبت‬

                              ‫‪ :A‬ػمتْؿالٞولِبی ُوَ هٌْٚؿٍ: )‪General Purpose Instructions‬‬
                     ‫ایي ؿػٍ اف ػمتْؿات ىبهل ػمتْؿالٞول ُبی ‪xlat ,xchg ,pop ,push ,mov‬‬
                                                                                ‫هی ثبىؼ.‬
 ‫*: لجل اف تّْیش ایي ػمتْؿالٞول ُب ثَ تّْیش ًوبػُبیی هی پـػافین کَ ػؿ ػمتْؿات‬
                                              ‫اموجلی ثَ ٌْٝاى ٝولًْؼ امتفبػٍ عْاُؼ ىؼ:‬
    ‫1:‪ً :Dest‬يبًؼٌُؼٍ ی یک ٝولًْؼ 8 یب 61 ثیتی امت کَ اف ًْٛ حجبت (‪ ّ (Register‬یب‬
‫صبفَٚ )‪ (RAM‬هی ثبىؼ ّ ثب ارـای ػمتْؿالٞول هضتْای آى تغییـ هی یبثؼ. ایي ٝولًْؼ‬
                              ‫َ ًتیزَ ی ػمتْؿالٞول ؿا ػؿ عْػ ًگِؼاؿی هی ًوبیؼ.‬     ‫هٞوْال‬
‫2:‪ :Source‬ایي ٝولًْؼ ًوبػ یک ػاػٍ ی 8 ّ یب 61 ثیتی امت کَ هی تْاًؼ حجبت، صبفَٚ‬
    ‫ّ یب حجبت ثبىؼ، هضتْای ایي ٝولًْؼ ػؿ صیي ارـای ػمتْؿالٞول تغییـ ًوی یبثؼ.‬
                                    ‫3:‪ً :Reg‬يبًؼٌُؼٍ ی حجبتی ثْػى یک ٝولًْؼ هی ثبىؼ.‬
                               ‫4:‪ً :Mem‬يبًؼٌُؼٍ ی صبفَٚ ای ثْػى یک ٝولًْؼ هی ثبىؼ.‬
                               ‫5:‪ :Acc‬ایي ٝولًْؼ ًيبًؼٌُؼٍ ی حجبت ‪ AL‬یب ‪ Ax‬هی ثبىؼ.‬
                                          ‫6:‪ً :Port‬يبًؼٌُؼٍ ی آػؿك یک ػمتگبٍ ربًجی امت.‬
  ‫7:‪ً :Count‬يبًؼٌُؼٍ ی یک همؼاؿ حبثت ٝؼػی یب حجبت ‪ CL‬ثَ ٌْٝاى ىوبؿًؼٍ هی ثبىؼ.‬
      ‫8:‪ً :Byte-table‬يبى ػٌُؼٍ ی یک آؿایَ ی ثبیتی ثب صؼاکخـ ْٕل 552 ثبیت هی ثبىؼ.‬
                      ‫9:اًؼیل 8 یب 61 یب 23: ًيبى ػٌُؼٍ ی اًؼافٍ ی یک ٝولًْؼ امت.‬
                              ‫‪Mov dest,source‬‬                         ‫1-‪ :a‬ػمتْؿالٞول ‪Mov‬‬

      ‫ایي ػمتْؿالٞول هضتْای ٝولًْؼ ‪ Source‬ؿا ثَ ٝولًْؼ ‪ dest‬هٌتمل هی ًوبیؼ (کپی هی‬
                                                                            ‫ًوبیؼ)‬
                                                                         ‫‪Mov bx,ax‬‬
                                                                        ‫‪Mov sum,ax‬‬
                                                                      ‫]‪Mov ax,List[SI‬‬
                                                                        ‫‪Mov bx,29H‬‬

                         ‫*ًکتَ: ػؿ چٌؼ هْؿػ ًوی تْاًین اف ػمتْؿ ‪ Mov‬امتفبػٍ ًوبیین:‬
                                    ‫1:ُـ ػّ ٝولًْؼ ػمتْؿ ‪ ، Mov‬اؿربٛ ثَ صبفَٚ ثبىؼ.‬
                                                                            ‫‪Mov x,y‬‬
                                                                          ‫]‪Mov x,[bx‬‬
                                                                      ‫‪Mov list[bx+si],y‬‬
‫‪ ABM‬اؿمبل ًوْػ:‬          ‫ػلیل: ُیچ گبٍ ًوی تْاى ُوقهبى ثیو اف یک ٝولًْؼ صبفَٚ ای ثَ‬

       ‫‪Mode‬‬       ‫‪Reg‬‬   ‫‪ReyMem‬‬
                                                                ‫2+‪Pop dest------ sp----sp‬‬
                                                                         ‫]‪dest---- ss:[sp‬‬
        ‫*: تٞؼاػ ػمتْؿات ‪ pop , push‬ثبیؼ ُوبًٌؼ پبؿاًتقُب () یکنبى ثبىؼ ّ اّلیي ‪Pop‬‬
                                                         ‫ثـای آعـیي ‪ push‬هی ثبىؼ.‬
       ‫*: لقّهَ ‪ pop‬ؿّی ُوبى حجبت یب صبفَٚ ای ًینت کَ ‪ push‬اف آى اًزبم گـفتَ امت.‬
                                                                              ‫ب‬

                                       ‫4-‪:a‬ػمتْؿالٞول ‪xchg dest1,dest2 (exchange) xchg‬‬
     ‫ایي ػمتْؿالٞول هضتْای 2 ٝولًْؼ 8 , 61 ّ یب 23 ثیتی ؿا ثؼّى امتفبػٍ اف ّامٔ ثب‬
                                                                   ‫ُن تْٞیِ هی ًوبیؼ.‬
          ‫‪Xchg Ax,Bx‬‬                             ‫*: ْٕل 1‪ dest2,dest‬ثبیؼ هنبّی ثبىؼ.‬
                                                                ‫‪Xchg‬‬       ‫]‪Ax,[bx‬‬
‫23‬
                                                               ‫‪x,y ------------ Mov‬‬
                                                                 ‫‪Xchg‬‬                ‫‪ax,x‬‬
                                                                      ‫‪Xchg ax,y‬‬
                                                                      ‫‪Mov‬‬       ‫‪x,ax‬‬
                   ‫‪xlat list‬‬                                 ‫5-‪ :a‬ػمتْؿالٞول ‪l: xlat‬‬
‫ایي ػمتْؿالٞول یک ػاػُی ثبیتی ؿا اف ًبصیَ ی ‪ّ DS‬اف یک رؼّل ثب مبعتبؿ ثبیتی کَ‬
     ‫آػؿك آغبفیي آى ػؿ حجبت ‪ BX‬ثْػٍ ّ اًؼیل یب ىوبؿٍ ی آى ػؿ حجبت ‪ al‬هی ثبىؼ. ثَ‬
                                                      ‫ػؿّى حجبت ‪ al‬اًتمبل هی ػُؼ.‬
‫‪mov‬‬     ‫----71,‪al‬‬ ‫71,‪mov si‬‬
‫‪xlat‬‬    ‫‪Dist‬‬      ‫]‪mov al, list[si‬‬

                                                    ‫2: ُـ ػّٝولًْؼ حجبت ُبی لَٖٞ ثبىٌؼ:‬
‫‪Mov ds,cs‬‬
‫‪Mov ss,ds -------- Mov‬‬   ‫‪ax,ds‬‬
‫3‪Mov ds,ax‬‬

                                      ‫3: اًتمبل یک حبثت ثَ یکی اف حجبت ُب ی لَٖٞ:‬
‫‪Mov‬‬     ‫‪ds,ax‬‬                 ‫0,‪Mov ds,0 ------ Mov ax‬‬
                                                         ‫4: ٝولًْؼ همَؼ حجبت‪ Cs‬ثبىؼ.‬
                                                                               ‫‪Mov cs,ax‬‬
                   ‫*:ػؿُیچ ػمتْؿالٞولی ًوی تْاى هضتْای حجبت‪Cs‬ؿا ٍـاصتَ تغییـ ػاػ.‬
                              ‫ب‬
         ‫*: ػمتْؿاتی هخل ‪ inttrupt ، ret ، call‬هی تْاًٌؼ هضتْای ‪ Cs‬ؿا ثَ ٍْؿت ّوٌی تغییـ‬
                                                                                   ‫ػٌُؼ.‬

                          ‫61‪push Source‬‬                          ‫2-‪ :a‬ػمتْؿالٞول ‪push‬‬
     ‫ایي ػمتْؿالٞول یک ٝولًْؼ 61 ثیتی اف ًْٛ حجبت ّ یب اؿربٛ ثَ صبفَٚ ؿا ثَ ًبصیَ‬
          ‫ای اف فْب ی پيتَ (‪ )stack‬کَ ثغو تفبّت هکبى آى (‪ )offset‬ػؿ ‪ sp‬ؽعیـٍ ىؼٍ امت‬
                                         ‫اًتمبل ػاػٍ ّ 2 ّاصؼ اف حجبت ‪ sp‬کن هی کٌؼ.‬

                                                      ‫‪ax‬‬             ‫‪3A‬‬     ‫‪FD‬‬     ‫‪push‬‬

                                 ‫*:‪ sp‬ػؿ ُـ لضَٚ ثَ عبًَ ی ثبالی ‪ stack‬اىبؿٍ هی کٌؼ.‬
                                                                                      ‫]‪push [SI‬‬
                                                                             ‫4+]‪push list[Bx+SI‬‬
                             ‫‪push al‬ثیتی ثبىؼ 61 ُوْاؿٍ ثبیؼ‪Source‬‬                  ‫‪x‬‬
          ‫‪Source‬‬                        ‫‪ًpush 294BH‬وی تْاًؼ همؼاؿی حبثت ثپؾیـػ‬                ‫‪x‬‬
                    ‫61 ‪pop dest‬‬                                          ‫3-‪ :a‬ػمتْؿالٞول ‪Pop‬‬
 ‫ایي ػمتْؿالٞول اثتؼا ػّ ّاصؼ ثَ ‪ sp‬اّبفَ کـػٍ ّ ٌَٝـ فْلبًی پيتَ (‪ )stack‬ؿا ػؿ‬
                                                                   ‫ٝولًْؼ ‪ dest‬لـاؿ هی ػُؼ.‬
                                ‫‪ :b‬ػمتْؿالٞول ُبی ّؿّػی-عـّری ‪Input / Output Instructions‬‬
    ‫ایي ؿػٍ اف ػمتْؿات رِت اًتمبل ػاػٍ ُب اف ػمتگبٍ ُبی ربًجی ثَ پـػافًؼٍ ّ یب‬
   ‫ثـٝکل هی ثبىٌؼ ّ ثَ پـػافًؼٍ اربفٍ ی تجبػل إالٝبت ثب هضیٔ ثیـّى ؿا هی ػٌُؼ.‬
                 ‫‪IN Acc,port‬‬                                              ‫1-‪ :b‬ػمتْؿالٞول ‪IN‬‬
     ‫ایي ػمتْؿالٞول یک ػاػٍ ی 8 یب 61 ثیتی ؿا اف یک ػمتگبٍ ربًجی کَ آػؿك آى ثَ‬
   ‫ٍْؿت ‪ port‬تٞییي ىؼٍ امت ؿا ػؿیبفت کـػٍ ّآى ؿا ػؿ حجبت ‪( AL‬ػاػٍ ُبی 8 ثیتی) ّ‬
  ‫یب ‪( AX‬ػاػٍ ُب ی 61ثیتی) لـاؿ هی ػُؼ. (ػکوَ ی فيـػٍ ىؼٍ ؿا ثبیت اف ٍفضَ کلیؼ‬
‫‪IN AL,60H‬‬                                                ‫عْاًؼٍ ّ ػؿ حجبت ‪ AL‬لـاؿ هی ػُؼ)‬
                                                                                              ‫=‬
       ‫(2 ثبیت اف ػمتگبُی کَ آػؿك آى ‪ 160H‬امت عْاًؼٍ ّ ػؿ حجبت ‪ AX‬لـاؿ هی ػُؼ)‬
                                                                             ‫‪IN‬‬   ‫= ‪AX,160H‬‬
 ‫*:اگـ آػؿك ػاػٍ ای ؿا کَ ػؿیبفت هی ًوبیین ثیو اف ‪ 255H‬ثبىؼ ػیگـ ًوی تْاى آػؿك‬
   ‫آى ؿا هنتمیوَ ػؿ لنوت ‪ port‬آّؿػ، ثـای ایٌکبؿ ثِتـ امت اف حجبت ‪ dx‬کوک ثگیـین:‬‫ب‬
                                                                  ‫‪IN al,2FDH----Mov‬‬    ‫‪dx,2FDH‬‬
                                                                      ‫‪AL,dx‬‬               ‫‪IN‬‬

                     ‫‪out port,Acc‬‬                            ‫2-‪ :b‬ػمتْؿالٞول ‪out‬‬
     ‫ایي ػمتْؿالٞول هضتْای حجبت ‪ ّ AL‬یب ‪ AX‬ؿا ثَ ػمتگبٍ عـّری کَ آػؿك اى ثَ ٍْؿت‬
                                                    ‫‪ port‬آهؼٍ امت اؿمبل هی ًوبیؼ.‬

‫33‬
     ‫*:ػؿ ایي ػمتْؿالٞول ًیق اگـ آػؿك ػاػٍ ثقؿگتـ اف ‪ 255H‬ثْػ اف حجبت ‪ dx‬امتفبػٍ‬
                                                                              ‫هی ًوبیین.‬
                          ‫‪ :C‬ػمتْؿالٞول ُبی اًتمبل آػؿك ‪Address Transfer Instructions‬‬
                      ‫1-‪ :c‬ػمتْؿالٞول ‪( (Load Effecne Address):Lea‬ثبؿگؾاؿی آػؿك هْحـ)‬
                                                                         ‫‪Lea‬‬     ‫‪reg16,mem‬‬
                                                                      ‫)‪reg10 = offset(mem‬‬

                                  ‫ایي ػمتْؿالٞول‪ offse، mem‬ؿا ػؿ ‪ reg‬لـاؿ هی ػُؼ‬
       ‫یب ثَ ٝجبؿت ػیگـ ایي ػمتْؿالٞول ثغو آػؿك ٝولًْؼ ػّم ؿا کَ اف ًْٛ صبفَٚ هی‬
             ‫ثبىؼ ثَ ػؿّى حجبت 61ثیتی کَ ثَ ٌْٝاى ٝولًْؼ اّل امت هٌتمل هی ًوبیؼ.‬
       ‫اف ایي ػمتْؿالٞول اغلت ػؿ تجؼیل آػؿك ػُی ّوٌی ثَ آػؿك ػُی ّوٌی امتفبػٍ هی‬
     ‫گـػػ. هقیت آػؿك ػُی ّوٌی ثَ آػؿك ػُی هنتمین، ػّ ثبیتی ثْػى لبلت ػؿ آػؿك ػُی‬
     ‫ّوٌی هی ثبىؼ، ثب ایي تجؼیل صزن ثـًبهَ کبُو یبفتَ ّ‪ exe‬فبیل ُبی ثَ ّرْػ آهؼٍ‬
                                                      ‫کْچکتـ ّ هْحـتـ عْاٌُؼ ىؼ.‬
                                                                       ‫‪Lea SI,List‬‬
                                   ‫]‪[SI‬‬       ‫‪OP-CODE‬‬             ‫‪AMB‬‬    ‫,‪mov AL‬‬


                           ‫‪mov‬‬     ‫‪AL,List‬‬         ‫‪Op-code‬‬             ‫‪AMB‬‬               ‫‪hh:ll‬‬


                                     ‫*: هی تْاى ػمتْؿات فیـ ؿا ثَ ربی ُن ثَ کبؿ ثـػ.‬
‫‪mov‬‬    ‫‪SI , offset List‬‬
‫‪Lea‬‬    ‫‪SI , LIST‬‬
‫‪mov‬‬    ‫‪SI , SEG List‬‬

                            ‫23‪Lds reg16, mem‬‬       ‫2-‪ : c‬ػمتْؿالٞول ‪(Load DS Register) : LDS‬‬

 ‫ایي ػمتْؿالٞول اف یک ػاػٍ ی23 ثیتی (4 ثبیت/‪ DD‬هٞـفی ىؼٍ)، ػّ ثبیت کن اؿفه ؿا‬
                  ‫ػؿ حجبت تٞییي ىؼٍ ّ ػّ ثبیت ثب اؿفه ؿا ػؿ حجبت ‪ DS‬لـاؿ هی ػُؼ.‬
                                                                                    ‫? ‪addr DD‬‬
                                                                                  ‫‪Lds dI , addr‬‬
‫*: اف ایي ػمتْؿالٞول ثَ ٌْٝاى ػمتـمی ثَ آػؿك ثَ ٍْؿت ‪ Segment , offset‬امتفبػٍ هی‬
             ‫گـػػ کَ ػؿ آى 61 ثیت کن اؿفه ‪ 16 , offset‬ثیت پـاؿفه ‪ Segment‬عْاُؼ ثْػ.‬
                            ‫23‪Les reg16, mem‬‬         ‫3-‪ :c‬ػمتْؿالٞول ‪(Load Es Register) : LeS‬‬
‫ایي ػمتْؿالٞول اف یک ػاػٍ ی 23 ثیتی (4 ثبیت/تٞـیف ىؼٍ ثب ػمتْؿ ‪ 2 :) DD‬ثبیت کن‬
      ‫اؿفه ؿا ػؿ حجبت ‪ ES‬لـاؿ هی ػُؼ، اف ایي ػمتْؿالٞول اغلت ٌُگبهی امتفبػٍ هی‬
                     ‫ًوبیین کَ حجبت ‪ ds‬اىغبل ثبىؼ ّ ثغْاُین اف آى امتفبػٍ ًوبیین.‬
                       ‫‪ :D‬ػمتْؿالٞول ُب ی کبؿ ثب حجبت ‪Flag Transfer Instruction--- :FLAG‬‬
  ‫ًمل ّ اًتمبل إالٝبت هـثْٓ ثَ حجبت ‪ flag‬تْمٔ ایي ؿػٍ اف ػمتْؿالٞول ُب اًزبم هی‬
  ‫پؾیـػ. اف آًزبیی کَ حجبت ‪ flag‬ػاؿای ًبم ثـًبهَ ًْینی ًوی ثبىؼ. ایي ػمتْؿالٞول‬
       ‫ُب ثَ ٍْؿت ّوٌی ثب ایي حجبت کبؿ هی کٌؼ. ایي ؿػٍ اف ػمتْؿالٞول ُب ٝولًْؼ‬
                                                  ‫ًؼاؿًؼ ّ ثَ ٍْؿت ٍفـ آػؿمَ کبؿ هی کٌؼ.‬
                                                                                     ‫1-‪:pushf :d‬‬
   ‫ایي ػمتْؿالٞول هضتْای حجبت پـچن (‪ )Flag Register‬ؿا ثَ ثبال ی پيتَ )‪ push (stack‬هی‬
                                                         ‫کٌؼ ّ ػّ ّاصؼ اف ‪ sp‬کن هی ًوبیؼ.‬

     ‫2-‪ :d‬ػمتْؿالٞول ‪ :popf‬اثتؼا ػّ ّاصؼ اف ‪ sp‬کن ًوْػٍ ّ ٌَٝـ فْلبًی پيتَ ؿا ػؿّى‬
                                                          ‫حجبت پـچن کپی هی ًوبیؼ.‬
          ‫اف ایي ػمتْؿالٞول ٌُگبهی امتفبػٍ هی گـػػ کَ ثغْاُین إالٝبتی ؿا کَ تْمٔ‬
                       ‫ػمتْؿالٞول ‪ pushf‬ثَ ‪ stack‬هٌتمل ًوْػٍ این ، ثبفیبثی ًوبیین.‬

                                                  ‫3-‪ :d‬ػمتْؿالٞول ‪(Load AH from) LAHF‬‬
     ‫ایي ػمتْؿالٞول 8 ثیت کن اؿفه حجبت پـچن ؿا ثَ حجبت ‪ AH‬هٌتمل هی ًوبیؼ. ػؿ صیي‬
           ‫ارـای ایي ػمتْؿالٞول ثیت ُبی )‪ (SF,ZF,AF,PF,CF‬ػؿ حجبت ‪ AH‬لـاؿ هی گیـًؼ.‬

                                  ‫4-‪ :d‬ػمتْؿالٞول ‪(Store AH into Flag Register) SHHF‬‬
‫ایي ػمتْؿالٞول هضتْای حجبت ‪ AH‬ؿا ثـ ؿّی 8 ثیت کن اؿفه حجبت پـچن کپی هی ًوبیؼ.‬

‫43‬
      ‫*: ‪ُ popf , pushf‬وبًٌؼ ػمتْؿالٞول ُبی ‪ pop , push‬ثبیؼ ػاؿای ػفٞبت تکـاؿ هنبّی‬
‫ثبىٌؼ، یٌٞی ثـای ُـ ‪ pushf‬ثبیؼ یک ػمتْؿالٞول ‪ّ popf‬رْػ ػاىتَ ثبىٌؼ ُوچٌیي اّلیي‬
                                                  ‫‪ popf‬ثـایآعـیي ‪ pushf‬امت ّ ثـٝکل‬
     ‫ًٚـ ثـ ایٌکَ تبحیـ ػمتْؿات ثـ ؿّی حجبت ‪ flag‬ػاؿای اُویت هی ثبىٌؼ، ػؿ ثـؿمی‬
 ‫ػمتْؿالٞول ُب تبحیـ آًِب ؿا ثـ ؿّی حجبت پـچن ًیق ثـؿمی عْاُین ًوْػ اف آًزبیی‬
           ‫کَ ػمتْؿالٞول ُب ی اًتمبل آػؿك ّ ػاػٍ ثَ 4 فیـ ؿػٍ تمنین هی گـػًؼ ّ‬
 ‫ػمتْؿالٞول ُبی مَ فیـ ؿػٍ ی لجلی ُیچ تبحیـی ثـ ؿّی ثیت ُبی حجبت ‪ً Flag‬ؼاىتٌؼ،‬
‫لؾا رؼّل تبحیـ ثـای آى ُب تـمین ًيؼٍ ّ ثـای فیـ ؿػٍ ی چِبؿم تبحیـ ثَ ٍْؿت فیـ‬
                                                                         ‫هی ثبىؼ:‬

                         ‫‪OF‬‬        ‫‪DF‬‬        ‫‪IF‬‬      ‫‪TF‬‬       ‫‪3F‬‬   ‫‪ZF‬‬   ‫‪AF‬‬     ‫‪PF‬‬    ‫‪CF‬‬



                 ‫‪pushf‬‬    ‫_‬         ‫_‬        ‫_‬        ‫_‬       ‫_‬    ‫_‬     ‫_‬     ‫_‬      ‫_‬



                  ‫‪popf‬‬    ‫*‬          ‫*‬       ‫*‬        ‫*‬       ‫*‬    ‫*‬     ‫*‬     ‫*‬      ‫*‬



                  ‫‪lahf‬‬    ‫_‬         ‫_‬        ‫_‬        ‫_‬       ‫_‬    ‫_‬     ‫_‬     ‫_‬      ‫_‬



                  ‫‪sahf‬‬    ‫_‬         ‫_‬        ‫_‬        ‫_‬       ‫*‬    ‫*‬     ‫*‬     ‫*‬      ‫*‬




     ‫ػؿ رؼّل تبحیـات حجبت ‪ flag‬اف ًوبػُبیی امتفبػٍ هی ىْػ کَ ىـّٛ آًِب ػؿ فیـ آهؼٍ‬
                                                                              ‫امت.‬


                                      ‫‪ٝ : - (a‬ؼم تبحیـ ثـ ؿّی ثیت هْؿػ ًٚـ ػؿ حجبت ‪. flag‬‬
                                           ‫‪ : *)b‬تبحیـ ػمتْؿالٞول ثـ ؿّی ثیت هْؿػًٚـ.‬
                                    ‫‪ :? )c‬ثیت هْؿػًٚـ ثـای ػمتْؿالٞول تٞـیف ًيؼٍ امت.‬
                                    ‫‪ :0 )d‬ثیت هْؿػًٚـ ثب ارـای ػمتْؿالٞول ٍفـ هی ىْػ.‬
                                    ‫‪ :1 )e‬ثیت هْؿػًٚـ ثب ارـای ػمتْؿالٞول یک هی گـػػ.‬
                              ‫‪O‬‬      ‫‪D‬‬           ‫‪I‬‬        ‫‪T‬‬   ‫‪S‬‬    ‫‪Z‬‬     ‫‪A‬‬     ‫‪P‬‬      ‫‪C‬‬

                  ‫‪ADD‬‬         ‫*‬          ‫_‬    ‫_‬           ‫_‬    ‫*‬    ‫*‬    ‫*‬     ‫*‬      ‫*‬

                  ‫‪ADC‬‬         ‫*‬          ‫_‬    ‫_‬           ‫_‬    ‫*‬    ‫*‬    ‫*‬     ‫*‬      ‫*‬

                  ‫‪AAA‬‬         ‫*‬          ‫_‬    ‫_‬           ‫_‬    ‫?‬   ‫?‬     ‫*‬     ‫?‬      ‫*‬

                  ‫‪DAA‬‬         ‫*‬          ‫_‬    ‫_‬           ‫_‬    ‫*‬    ‫*‬    ‫*‬     ‫*‬      ‫*‬

                  ‫‪INC‬‬         ‫*‬          ‫_‬    ‫_‬           ‫_‬    ‫*‬    ‫*‬    ‫*‬     ‫*‬      ‫_‬
                                  ‫‪Addition Instructions‬‬            ‫‪ :A‬ػمتْؿالٞول ُب ی روٜ‬

                        ‫‪Add dest , Source‬‬                    ‫1-‪ :a‬ػمتْؿالٞول ‪Add‬‬
   ‫ایي ػمتْؿالٞول 2 ٝولًْؼ 8 ّیب 61 ثیتی ؿا کَ اف ًْٛ حجبت، صبفَٚ ّیب حبثت هی‬
 ‫ثبىؼ ؿا ثب ُن روٜ ًوْػٍ ّ ػؿ ٝولًْؼ اّل لـاؿ هی ػُؼ یب ثَ ٝجبؿتی ػیگـ هضتْای‬
                                    ‫ٝولًْؼ ػّم ؿا ثَ ٝولًْؼ اّل اّبفَ هی ًوبیؼ.‬
                                                                ‫‪dest dest + Source‬‬
                                                                  ‫‪add sum , A80H‬‬
                                                                    ‫‪add ax , sum‬‬
‫53‬
                                                                           ‫]‪add cx , list[SI‬‬
          ‫غلٔ امت:اّل صتوَ ثبیؼ اف ًْٛ حجبت ّیب صبفَٚ ثبىؼ‬
                                          ‫ب‬                          ‫‪add‬‬     ‫‪80 , ax‬‬     ‫‪x‬‬

                        ‫‪Adc dest , Source‬‬                   ‫2-‪ :a‬ػمتْؿالٞول ‪Adc‬‬
    ‫ایي ػمتْؿالٞول هزوْٛ ٝولًْؼ ػّم ّ ثیت ‪ CF‬ؿا ثَ ٝولًْؼ اّل اّبفَ هی ًوبیؼ‬
                                                         ‫‪dest----dest----+ scurce +CF‬‬
‫افایي ػمتْؿالٞول ٌُگبهی امتفبػٍ هی گـػػ کَ ثغْاُین ػاػٍ ُب یی ؿا کَ مبیق آًِب‬
  ‫ثیيتـ اف آى چیقی امت کَ پـػافًؼٍ ی 6808 لبػؿ ثَ اًزبم آًِب امت ؿا ثب ُن روٜ‬
                                                                             ‫ًوبیین.‬
            ‫ثَ ٌْٝاى هخبل ثـای صوٜ ػّ ػاػٍ ی 23 ثیتی ثَ ؿّه فیـ ٝول هی ًوبیین.‬

                                                                           ‫‪AX‬‬     ‫‪DX‬‬

                                ‫‪16bits‬‬       ‫‪16bits‬‬                                 ‫‪DX : AX‬‬
                                                                           ‫‪BX‬‬     ‫‪CX‬‬
                             ‫‪16bits‬‬      ‫‪16bits‬‬                                     ‫‪CX : BX‬‬

                                                                       ‫‪Add‬‬      ‫‪ax,bx‬‬
                                                                       ‫‪Adc‬‬      ‫‪ax,cx‬‬

                                        ‫*: ایي ػمتْؿالٞول ُوْاؿٍ پل اف ‪add‬هی آیؼ.‬
                                     ‫*: ّلتی ‪ٍCF‬فـ ثبىؼ ایي ػمتْؿ هٞبػل ‪add‬امت.‬
‫صبٍل روٜ 61 ثیت کن اؿفه هوکي امت یک ؿلن ًملی تْلیؼ ًوبیؼ. اگـ ثغْاُین ایي ؿلن‬
‫ًملی ؿا ػؿ روٜ 61 ثیت ثب اؿفه تبحیـ ػُین اف ػمتْؿالٞول ‪ adc‬امتفبػٍ هی ًوبیین.‬
                                          ‫3-‪ :a‬ػمتْؿالٞول ‪(Asci Adjust For Addition) AAA‬‬
      ‫ایي ػمتْؿالٞول هضتْای حجبت ‪ al‬ؿا کَ ًتیزَ ی روٜ ثـ ؿّی ػاػٍ ُبی ػٍ ػُی غیـ‬
  ‫َ‬‫فيـػٍ هی ثبىؼ اف صبلت ثبیٌـی ثَ صبلت ػٍ ػُی غیـ فيـػٍ تٌٚین هی ًوبیؼ. هٞوْال‬
  ‫ایي ػمتْؿالٞول ؿا پل اف ٝول ‪ّ add‬یب ‪ adc‬ثـ ؿّی ػاػٍ ُبی ػٍ ػُی غیـ فيـػٍ ىؼٍ‬
                                                                     ‫ثبىؼ اًزبم هی ػُین.‬
      ‫ایي ػمتْؿالٞول ثـای تٌٚین هضتْای حجبت ‪ al‬ثَ ىکل یک ػاػٍ ی ػٍ ػُی غیـ فيـػٍ‬
                                                          ‫کبؿُبی فیـ ؿا اًزبم هی ػُؼ.‬
 ‫----‪ (0-9) BCD‬ؿا ًوبیو‬    ‫4 ثیت کن اؿفه ‪ AL‬ؿا آفهبیو هی کٌؼ، اگـ ایي 4 ثیت یک ؿلن‬
   ‫ػُؼ ، ػؿ ایي ٍْؿت 4 ثیت ثب اؿفه ‪ُ flag ّ AL‬بی ‪ٍ CF ّ AF‬فـ هی گـػًؼ اگـ ایي 4‬
‫ثیت کن اؿفه یک همؼاؿ ثقؿگتـ اف 9 ؿا ًيبى ػُؼ ّیب چٌبًچَ ‪ AF‬یک ثبىؼ ػمتْؿالٞول‬
                                                      ‫‪ AAA‬هـاصل فیـ ؿا اًزبم هی ػُؼ.‬
                                                                                 ‫‪AL‬‬
                                                                                 ‫‪AL‬‬   ‫7=‬
                    ‫0000‬        ‫1110‬                                             ‫‪BL‬‬   ‫6=‬
                    ‫0000‬        ‫0110‬
                                            ‫1: 6 ّاصؼ ثَ هضتْای ‪ AL‬اّبفَ هی ًوبیؼ.‬
                          ‫‪add AL,BL‬‬   ‫2:یک ّاصؼ ثَ هضتْای حجبت ‪ AH‬اّبفَ هی ًوبیؼ.‬
                                                           ‫3: همؼاؿ ‪ CF ّ AF‬یک هی ىًْؼ.‬
         ‫0000‬          ‫1011‬                           ‫4 : 4 ثیت ثب اؿفه ‪ٍ AL‬فـ هی ىْػ.‬

           ‫1000‬          ‫1100‬


     ‫10000000‬     ‫11000000‬

                                      ‫‪(Decimal Adjust For Addition) DAA‬‬ ‫4-‪:a‬ػمتْؿالٞول‬
     ‫ایي ػمتْؿالٞول هضتْای حجبت ‪ al‬ؿا کَ ًتیزَ ی روٜ ثـ ؿّی ػاػٍ ُبی ػٍ ػُی فيـػٍ‬
         ‫ىؼٍ هی ثبىؼ اف صبلت ثبیٌـی ثَ صبلت ػٍ ػُی فيـػٍ ىؼٍ تٌٚین هی ًوبیؼ ثـای‬
                               ‫ایٌکبؿ ػمتْؿالٞول ‪ DAA‬کبؿُبی فیـ ؿا اًزبم هی ػُؼ.‬
      ‫1: اگـ 4 ثیت کن اؿفه اف حجبت ‪ AL‬یک همؼاؿ ثقؿگتـ اف 9 ؿا ًيبى ػُؼ ّیب ‪ AF‬یک‬
                                 ‫ثبىؼ 6 ّاصؼ ثَ ‪ AL‬اّبفَ کـػٍ ّ ‪ AF‬ؿا یک هی کٌؼ.‬
      ‫2: اگـ 4 ثیت ثب اؿفه ‪ AL‬صبّی یک همؼاؿ ثقؿکتـ اف 9 ثبىؼ ّیب 1=‪ CF‬ثبىؼ ، ایي‬
                              ‫ػمتْؿالٞول ‪ GOH‬ؿا ثَ ‪ AL‬افقّػٍ ّ ‪ CF‬ؿا یک هی کٌؼ.‬
                                                                                ‫62 =‪BL‬‬
‫63‬
                                                                                   ‫‪add‬‬   ‫‪AL,BL‬‬
                                          ‫‪AL‬‬           ‫0100‬        ‫0110‬                          ‫‪daa‬‬
                                          ‫‪BL‬‬           ‫0010‬        ‫1010‬

                                                ‫0110‬               ‫1101‬
                         ‫46+‬



                           ‫*: ػمتْؿالٞول ُبی ‪ُDAA ّ AAA‬ـ ػّ ٍفـ آػؿمَ ُنتٌؼ.‬
‫*: ربیگبٍ امتفبػٍ ی ‪ daa‬پل اف ػمتْؿالٞول ‪ add‬هی ثبىؼ اگـ ‪ add‬ثـای روٜ ػاػٍ ُبی‬
                                                            ‫ػٍ ػُی فيـػٍ ثبىؼ.‬

                              ‫‪Inc dest‬‬                    ‫5-‪ : a‬ػمتْؿالٞول ‪(Increament) Inc‬‬
                  ‫ایي ػمتْؿالٞول یک ّاصؼ ثَ ٝولًْؼ عْػ اّبفَ هی ًوبیؼ: 1+‪dest dest‬‬
   ‫ًکتَ ی1: ٝلی ؿغن ایٌکَ ‪ inc‬یک ًْٛ ػمتْؿالٞول روٜ هی ثبىؼ ّ هی تْاًؼ ؿلن ًملی‬
                                      ‫تْلیؼ ًوبیؼ ، ُیچ تبحیـی ثـ ؿّی ‪ً carry flag‬ؼاؿػ.‬
  ‫ًکتَ ی 2: اف ایي ػمتْؿالٞول هی تْاى ثـای افقایو حجبت ُبی اًؼیل )‪ (SI,DI‬امتفبػٍ‬
                                                                                     ‫ًوْػ.‬
 ‫ًکتَ ی 3: ایي ػمتْؿالٞول ثـ ؿّی ػاػٍ ُبی 61ثیتی مـیٞتـ اف ػاػٍ ُبی 8 ثیتی کبؿ‬
                                                                                   ‫هی کٌؼ.‬
                                 ‫‪Subtraction Instructions‬‬         ‫‪ :b‬ػمتْؿالٞولِبی تفـیك‬
         ‫ٝولکـػ ایي ؿػٍ اف ػمتْؿات ثـ ؿّی ثیت ُبی حجبت ‪ flag‬ثَ ٍْؿت فی هی ثبىؼ.‬

                           ‫‪OF‬‬      ‫‪DF‬‬      ‫‪IF‬‬      ‫‪TF‬‬         ‫‪SF‬‬       ‫‪ZF‬‬         ‫‪AF‬‬     ‫‪DF‬‬      ‫‪CF‬‬
                   ‫‪SUB‬‬      ‫*‬       ‫_‬       ‫_‬       ‫_‬          ‫*‬        ‫*‬          ‫*‬      ‫*‬       ‫*‬
                   ‫‪SBB‬‬      ‫*‬       ‫_‬       ‫_‬       ‫_‬          ‫*‬        ‫*‬          ‫*‬      ‫*‬       ‫*‬
                   ‫‪AAS‬‬      ‫?‬       ‫_‬       ‫_‬       ‫_‬          ‫?‬        ‫?‬          ‫*‬      ‫?‬       ‫*‬
                   ‫‪DAS‬‬      ‫*‬       ‫_‬       ‫_‬       ‫_‬          ‫*‬        ‫*‬          ‫*‬      ‫*‬       ‫*‬
                   ‫‪DEC‬‬      ‫*‬       ‫_‬       ‫_‬       ‫_‬          ‫*‬        ‫*‬          ‫*‬      ‫*‬       ‫_‬
                   ‫‪NEG‬‬      ‫*‬       ‫_‬       ‫_‬       ‫_‬          ‫*‬        ‫*‬          ‫*‬      ‫*‬       ‫*‬
                   ‫‪CMP‬‬      ‫*‬       ‫_‬       ‫_‬       ‫_‬          ‫*‬        ‫*‬          ‫*‬      ‫*‬       ‫*‬

                        ‫‪Sub dest,Source‬‬                      ‫1-‪ :b‬ػمتْؿالٞول ‪SuB‬‬
 ‫ایي ػمتْؿالٞول هضتْای یک ٝولًْؼ 8 یب 61 ثیتی ؿا اف یک ٝولًْؼ 8 یب 6 ثیتی ػیگـ‬
                     ‫کن کـػٍ ّ صبٍل ؿا ػؿ ٝولًْؼ ‪ٝ( dest‬ولًْؼ اّل) لـاؿ هی ػُؼ.‬
                                                                ‫‪dest----dest+-Source‬‬
  ‫*: ٌُگبم تفـیك پـػافًؼٍ ٝولًْؼ ‪ dest‬ؿا ثب هکول 2 ٝولًْؼ ‪ Source‬روٜ ًوْػٍ ّ ػؿ‬
                                                        ‫ٝولًْؼ ‪ dest‬لـاؿ هی ػُؼ.‬

                                                       ‫‪Sub‬‬        ‫051 =‪bx= -50 ---- ax‬‬
                                                              ‫001=‪ax,bx ---- ax‬‬
                                                                        ‫‪Sub aL,20H‬‬
                                                                    ‫]4 – ‪Sub ax, [SI‬‬
                                                                 ‫‪Sub List [Bx+si], ch‬‬
       ‫اف حجبت ‪ ax‬ثَ اًؼافٍ ی هضتْای صبفَٚ ی کَ آػؿك آى ػؿ 4-‪ si‬امت، کن هی ًوبیؼ.‬
     ‫*: ؿلن ًملی تْلیؼ ىؼٍ ػؿ صیي ٝولیبت تفـیك (هضتْای پـچن ‪ ، )c‬هٌٞبی ؿلن لـ ّی‬
                                                                        ‫ؿا هی ػُؼ.‬

                       ‫‪SBB dest,Source‬‬                      ‫2-‪ :b‬ػمتْؿالٞول ‪3BB‬‬
‫ایي ػمتْؿالٞول ٝالٍّ ثـ کن کـػى تٞؼاػ ‪ Source‬اف ‪ ،dest‬تٞؼاػ ‪( CF‬ػؿ حجبت پـچن) ؿا‬
   ‫ًیق اف ‪ dest‬کن هی ًوبیؼ، ثَ ٝجبؿت ػیگـ ایي ػمتْؿالٞول هزوْٛ ‪ CFّ Source‬ؿا اف‬
                                                                ‫‪ dest‬کن هی ًوبیؼ.‬
    ‫*: ‪ CF‬ػؿ تفـیك ُوبى ؿلن لـّی هی ثبىؼ کَ ٌُگبهی کَ هٞبػل تفـیك اف ---- کوتـ‬
                                                        ‫ثبىؼ، همؼاؿ یک هی گیـػ.‬
    ‫*: اف ایي ػمتْؿالٞول هی تْاًین ثـای ىجیَ مبفی تفـیمِبی 23 ثیتی ثَ ٍْؿت فیـ‬
                                                                 ‫امتفبػٍ ًوبیین.‬
                                                                        ‫‪Sub al,bl‬‬
‫73‬
                                                             ‫‪Sub‬‬   ‫‪ax,bx ---- Sub‬‬   ‫‪ah,bh‬‬

                               ‫‪(Ascii Adjust For Subtraction): AAS‬‬     ‫3-‪ :b‬ػمتْؿالٞول‬
 ‫ًنجت ایي ػمتْؿالٞول ثَ ٝول تفـیك ُوبًٌؼ ًنجت ػمتْؿالٞول ‪ AAA‬ثَ ٝول روٜ امت ،‬
  ‫یٌٞی ایي ػمتْؿالٞول هضتْای حجبت ‪ AL‬ؿا کَ ًتیزَ ی تفـیك ثـّی ػُؼُی غیـ فيـػٍ‬
                                                                 ‫امت، تٌٚین هی ًوبیؼ.‬
   ‫ایي ػمتْؿالٞول ثـای تٌٚین هضتْای حجبت ‪ al‬ثَ ىکل یک ػا ػٍ ی ػٍ ػُی غیـ فيـػٍ‬
                                                        ‫کبؿُبی فیـ ؿا اًزبم هی ػُؼ:‬
‫4 ثیت کن اؿفه ‪ al‬ؿا ثـؿمی هی ًوبیؼ، اگـ ایي چِبؿ ثیت یک ؿلن هٞتجـ)‪ (BCD‬ثْػ، ػؿ‬
 ‫ایي ٍْؿت 4 ثیت ثب اؿفه ‪ُ flag ّ al‬بی ‪ٍ CF ّ AF‬فـ هی گـػًؼ، ػؿ غیـ ایٌَْؿت ّ یب‬
                             ‫ػؿ ٍْؿتی کَ ‪ AF‬یک ثبىؼ هـاصل فیـ اًزبم هی گـػًؼ.‬
                                          ‫1: 6 ّاصؼ اف هضتْای حجبت ‪ al‬کن هی گـػػ.‬
                                      ‫2: یک ّاصؼ ثَ هضتْای حجبت ‪ al‬اّبفَ هی ىْػ.‬
                                                      ‫3: همؼاؿ ‪ CFّ AF‬یک هی گـػًؼ.‬
                                                    ‫4: 4ثیت ثب اؿفه ‪ٍ al‬فـ هی گـػػ.‬

                               ‫‪(Decimal Adjust FOR Subtraction) DAS‬‬ ‫4-‪:B‬ػمتْؿالٞول‬
 ‫ًنجت ایي ػمتْؿالٞول ًنجت ثَ تفـیك ُوبًٌؼ ًنجت ػمتْؿالٞول ‪ً DAA‬نجت ثَ ٝول روٜ‬
‫امت. یٌٞی ایي ػمتْؿالٞول ًتیزَ ی ٝول تفـیك ثـ ؿّی ػاػٍ ُبی فيـػٍ ىؼٍ ؿا کَ ػؿ‬
    ‫حجبت ‪ al‬لـاؿ گـفتَ امت، تٌٚین هی ًوبیؼ ّ ثـای ایٌکبؿ هـاصل فیـ ؿا اًزبم هی‬
                                                                              ‫ػُؼ.‬
‫1: اگـ 4 ثیت کن اؿفه حجبت ‪ al‬یک همؼاؿ ثقؿگتـ اف 9 ثْػ، ّیب ‪ af‬یک ثْػ، 6 ّاصؼ اف‬
                                                 ‫حجبت ‪ al‬کن کـػٍ ّ ‪ Af‬یک هی ًوبیؼ.‬
‫2: اگـ 4 ثیت ثب اؿفه حجبت ‪ al‬صبّی یک همؼاؿ ثقؿگتـ اف 1 ثْػ ّیب ‪ cf‬یک ثْػ، همؼاؿ‬
                                    ‫‪ 60H‬ؿا اف حجبت ‪ al‬کن کـػٍ ّ ‪ cf‬ؿا یک هی کٌؼ.‬
    ‫*: ػمتْؿالٞول ُبی ‪ُ DAS ّ AAS‬ـ ػّ ثؼّى ٝولًْؼ ثْػٍ ّ ٝولًْؼ آى ُب ثَ ْٕؿ‬
                                 ‫ّوٌی ‪ al‬هی ثبىؼ، ّثٞؼ اف تفـیك ثَ کبؿ هی ؿًّؼ.‬

                 ‫‪Dec dest‬‬                                        ‫‪ :b-s‬ػمتْؿالٞول ‪Dec‬‬
     ‫ایي ػمتْؿالٞول یک ّاصؼ اف ٝولًْؼ ‪ dest‬کن هی کٌؼ، ّ هٞبػل ػمتْؿ--‪ dest‬ػؿ فثبى ‪c‬‬
                                                                               ‫امت.‬
     ‫*: ایي ػمتْؿالٞول ُوبًٌؼ ػمتْؿالٞول ‪( inc‬ػؿ روٜ) ثـّی ‪ cf‬تبحیـی ًؼاىتَ ّ ثـّی‬
                                             ‫ػاػٍ ُبی 61 ثیتی مـیٞتـ ٝول هی ًوبیؼ.‬

               ‫‪neg dest‬‬                                    ‫5-‪ :b‬ػمتْؿالٞول ‪NEG‬‬
 ‫ٝولًْؼ ‪ dest‬ؿا لـیٌَ هی ًوبیؼ، ثَ ٝجبؿتی هکول ػّ ٝولًْؼ ‪ dest‬ؿا هضبمجَ ًوْػٍ ّ‬
                                                    ‫ػؿ ٝولًْؼ ‪ dest‬لـاؿ هی ػُؼ.‬
     ‫*: ػؿ ٍْؿتی کَ ثغْاُین کْچکتـیي ٝؼػ هٌفی ؿا ػؿ للت ٝؼػی لـیٌَ ًوبیین، ثب‬
                                                         ‫‪ overflow‬هْارَ هی ىْین.‬

                                   ‫6-‪ :b‬ػمتْؿالٞول ‪cmp Source1.Source2 (compare) CMP‬‬
       ‫ایي ػمتْؿالٞول ػّ ٝولًْؼ ؿا ثب امتفبػٍ اف ٝول تفـیك همبینَ ًوْػٍ ّ اف ؿّی‬
                 ‫ًتیزَ ی صبٍل ىؼٍ، ثیت ُبی حجبت پـچن )‪ (flag‬ؿا همؼاؿ ػُی هی ًوبیؼ.‬
                                               ‫, 0=‪ZF=0 , SF‬‬      ‫2 ‪Source 1> source‬‬
                                 ‫2 ‪Source 1= source‬‬   ‫, 0=‪ZF=1 , SF‬‬
                                  ‫2 ‪Source 1< source‬‬   ‫, 1=‪ZF=0 , SF‬‬

     ‫*: ػؿ اغلت هْالٜ ثٞؼ اف ػمتْؿالٞول ‪ CMP‬یک ػمتْؿالٞول ---- ىـٕی هْؿػ امتفبػٍ‬
                                                                     ‫لـاؿ هی گیـػ.‬
     ‫*هخبل: لَٖٞ ثـًبهَ ای ثٌْینیؼ کَ هزوْٛ اٝؼاػ 1 تب 5 ؿا هضبمجَ کـػٍ ّ ػؿ حجبث‬
                                                                      ‫‪ ax‬لـاؿ ػُؼ.‬
                                                                         ‫005,‪Mov cx‬‬
                                                                         ‫‪Sub ax,ax‬‬
                                                                          ‫‪add ax,cx‬‬
                                                                            ‫‪dec cx‬‬
                                                                           ‫0,‪cmp cx‬‬
                       ‫‪jne‬‬   ‫‪L‬‬                           ‫پـه ػؿ ٍْؿتی ًبهنبّی ثْػى‬
      ‫*:هخبل: لَٖٞ ثـًبهَ ای ثٌْینیؼ کَ ؿىتَ ی ‪ str‬ثَ ْٕل 001 ثبیت ؿا هٞکْك ًوبیؼ.‬
‫83‬
                                                          ‫‪Str db 100 dup(?) ; Sttring definition‬‬
                                   ‫1-,‪mov si‬‬             ‫)‪; initialize direct index (si) (first to end‬‬
                                  ‫001-,‪mov di‬‬         ‫)‪; initialize undirect index (di) (end to first‬‬
                                                                          ‫‪; increase si remain: inc 3i‬‬
                                                                     ‫‪dec di‬‬                 ‫----‪; decree‬‬
                                                                               ‫]‪mov al, str [si‬‬        ‫;‬
                                                                                ‫]‪xchag al, str [di‬‬       ‫;‬
                                                     ‫‪mov str [si],al‬‬         ‫]‪; exchange str[si],str[di‬‬
                                                          ‫‪cmp si,di‬‬                ‫‪; compare‬‬       ‫‪si &di‬‬
                                             ‫‪ji‬‬     ‫‪Remain‬‬           ‫‪; gump‬‬       ‫‪il 3i lower than DI‬‬

                                                             ‫‪ :c‬ػمتْؿالٞول ُبی ّـة‬
         ‫ٝولکـػ ایي ؿػٍ اف ػمتْؿالٞول ُب ثـ ؿّی حجبت پـچن )‪ (flag‬ثَ ٍْؿت فیـ امت.‬
                        ‫‪OF‬‬      ‫‪DF‬‬     ‫‪IF‬‬    ‫‪TF‬‬     ‫‪SF‬‬    ‫‪ZF‬‬     ‫‪AF‬‬     ‫‪PF‬‬    ‫‪CF‬‬
                 ‫‪Mul‬‬     ‫*‬       ‫_‬      ‫_‬     ‫_‬      ‫?‬     ‫?‬      ‫?‬      ‫?‬     ‫*‬
                 ‫‪iMui‬‬    ‫*‬       ‫_‬      ‫_‬     ‫_‬      ‫?‬     ‫?‬      ‫?‬      ‫?‬     ‫*‬
                 ‫‪AAM‬‬     ‫?‬       ‫_‬      ‫_‬     ‫_‬      ‫*‬     ‫*‬      ‫?‬      ‫*‬     ‫?‬

                          ‫‪mul Source‬‬                    ‫ػمتْؿالٞول ُبی ‪imulّ MUL‬‬
                                           ‫‪imul Source‬‬
  ‫ایي ػمتْؿالٞول ُب ٝولًْؼ 8 یب 61 ثیتی ‪ Source‬ؿا کَ اف ًْٛ حجبتی ّ یب صبفَٚ ای‬
 ‫هی ثبىؼ ػؿ حجبت ‪ al‬یب ‪ّ ax‬ـة ًوْػٍ ًّتیزَ ی ثَ ػمت آهؼٍ ؿا ػؿ حجبت ‪ ax‬یب ‪dx:ax‬‬
                                                                         ‫لـاؿ هی ػٌُؼ.‬
‫*: ‪ mul‬ثـای ّـة ػاػٍ ُبی ثؼّى ٝالهت ّ ‪ imul‬ثـای ّـة ػاػٍ ُبی ٝالهتؼاؿ امتفبػٍ هی‬
                                                                                     ‫گـػػ.‬
               ‫*: ٝولکـػ ایي ػّ ػمتْؿالٞول ؿا هی تْاى ثَ ىکل فیـ ُن ًوبیو ػاػ:‬
                                               ‫‪if Soure is a bayte ---- AX ---- AL * Source‬‬

                                              ‫61‪if Soure is a word(2 bytes)----DX:AX----AX*Source‬‬

 ‫*: ُـگبٍ ػّ ػاػٍ ؿا ػؿ ُن ّـة ًوبیین، ْٕل ػاػٍ ی صبٍل ثـاثـ ثب هزوْٛ ْٕل ػاػٍ‬
                                                                              ‫ُب امت.‬
 ‫*: ثـای ػمتْؿالٞول ُبی ّـة، ‪ً Source‬وی تْاًؼ یک همؼاؿ حبثت ثبىؼ. چْى مینتن ًوی‬
 ‫تْاًؼ تيغیٌ ػُؼ ثَ افای حبثت کؼام یک اف حجبت ُبی ‪ AL‬یب ‪ AX‬ؿا اًتغبة ًوبیؼ غلٔ‬
                                                                             ‫---- 05 ‪mul‬‬
‫]‪imul list [bx]---- mul byte ptr list[b] --AX--AL* list+[bx‬‬
                                                   ‫‪a byte‬‬
                    ‫]‪mul word ptr list[bx]-- DX:AX--AX* list+[bx‬‬
                                                         ‫‪a word‬‬
    ‫*:ػؿ ٍْؿتی کَ ٌُگبم ّـة آؿایَ ُب ثَ ْٕؿ ٍـیش اًؼافٍ ی ػاػٍ ؿا هيغٌ ًٌوبیین‬
      ‫اموجلـ ثَ ‪ attribute‬آؿایَ تْرَ هی ًوبیؼ، ػؿ ٍْؿتی کَ آؿایَ ثَ ٍْؿت ‪ Byte‬تٞـیف‬
  ‫ىْػ، یک ثبیت اف آؿایَ ؿا ػؿ ‪ّ al‬ـة ًوْػٍ ّ ػؿ ‪ AX‬لـاؿ هی ػُؼ ّ ػؿ غیـ ایٌَْؿت‬
                          ‫ػّ ثبیت اف آؿایَ ؿا ػؿ ‪ّ AX‬ـة ًوْػٍ ّ ػؿ ‪ DX:AX‬لـاؿ هی ػُؼ.‬
   ‫*: اگـ ػاػٍ هْؿػًٚـ ٝالهت ػاؿ ثْػٍ ّ هب اف ّـة ثؼّى ٝالهت امتفبػٍ ًوبیین، رْاة‬
                             ‫ثَ ػمت آهؼٍ غلٔ عْاُؼ ثْػ مَ هخبل فیـ تْرَ ًوبییؼ:------‬



                                   ‫3-‪ :C‬ػمتْؿالٞول ‪(Ascii Adjust for Multiplicatron) AAM‬‬
      ‫ایي ػمتْؿالٞول هضتْای حجبت ‪ AX‬ؿا کَ ًتیزَ ی ّـة ثـّی ػاػٍ ُبی ػٍ ػُی غیـ‬
                                    ‫فيـػٍ هی ثبىؼ تٌٚین هی ًوبیؼ، ثـای ایي کبؿ:‬
 ‫اایي ػمتْؿالٞول هضتْای حجبت ‪ ax‬ؿا ثـ ػٍ تمنین کـػٍ، عبؿد لنوت ؿا ػؿ حجبت ‪ّ ah‬‬
                              ‫ثبلیوبًؼٍ ؿا ػؿ حجبت کن اؿفه یٌٞی ‪ al‬لـاؿ هی ػُؼ.‬
                                                                  ‫36=‪al=7 , bl=9----mul bl----ax‬‬
                                                                 ‫36= 1111 1100 00000000 =‪ax‬‬
                                                                          ‫11000000 01100000‬
                                                       ‫6=‪ah‬‬                                  ‫3=‪al‬‬

‫93‬
                             ‫‪Division Instructions‬‬       ‫‪ :d‬ػمتْؿالٞول ُبی تمنین‬
           ‫ٝولکـػ ایي ؿػٍ اف ػمتْؿالٞولِب ثـّی ثیت ُبی حجبت پـچن ثَ ىکل فیـ امت.‬

                               ‫‪OF‬‬     ‫‪DF‬‬         ‫‪IF‬‬   ‫‪TF‬‬     ‫‪SF‬‬     ‫‪ZF‬‬      ‫‪AF‬‬      ‫‪PF‬‬     ‫‪CF‬‬
                      ‫‪div‬‬       ‫?‬      ‫_‬          ‫_‬    ‫_‬      ‫?‬      ‫?‬       ‫?‬       ‫?‬      ‫?‬
                     ‫‪Idiv‬‬       ‫?‬      ‫_‬          ‫_‬    ‫_‬      ‫?‬      ‫?‬       ‫?‬       ‫?‬      ‫?‬
                     ‫‪AAD‬‬        ‫?‬      ‫_‬          ‫_‬    ‫_‬      ‫*‬      ‫*‬       ‫?‬       ‫*‬      ‫?‬

 ‫2,1‪ :d‬ػمتْؿالٞول ُبی ‪ : IDiv ّ Dir‬ایي ػمتْؿالٞول هضتْای حجبت ‪ّ AX‬یب ‪ DX:AX‬ؿا ثـ‬
 ‫ٝولًْؼ 8 یب 61 ثیتی ‪Source‬تمنین ًوْػٍ ّ ًتیزَ ی تمنین ؿا کَ ىبهل یک عبؿد لنوت‬
            ‫ّ یک ثبلیوبًؼٍ امت ثَ تـتیت ػؿ حجبتِبی ‪ّ ah,al‬یب ‪ dx , ax‬لـاؿ هی ػُؼ.‬
                        ‫*: ٝولگـ ػّ ػمتْؿالٞول ؿا هی تْاى ثَ ىکل فیـ ًيبى ػاػ.‬

‫‪If Source is‬‬ ‫‪a byte ---- AL ---- AX div Source‬‬
                         ‫‪Ah ---- AX mod Source‬‬
‫‪If Sourc is a word----Ax ----DX: AX div Source‬‬
                     ‫‪DX ----DX: AX mod Source‬‬

     ‫*: ُوبًٌؼ ػمتْؿات ‪ div , imul ,mul‬ثـای تمنین ُبی ثؼّى ٝالهت ّ ‪ idir‬ثـای تمنین ُبی‬
                                                            ‫ٝالهتؼاؿ امتفبػٍ هی گـػػ.‬
                           ‫*: ػؿ تمنین ْٕل همنْم ُوْاؿٍ ػّ ثـاثـ همنْم ٝلیَ امت.‬
   ‫*: ػؿ ٍْؿتی کَ ثـای ػاػٍ ُبی ٝالهتؼاؿ اف ‪ dir‬امتفبػٍ ًوبیین، اموجلـ ُیچ ایـاػی‬
               ‫ًوی گیـػ، اهب رْاة ثَ ػمت آهؼٍ غلٔ امت، ثَ هخبل فیـ تْرَ ًوبییؼ:‬
                                                                                     ‫0052=‪AX‬‬
                                                   ‫5-=‪Bl‬‬             ‫152 0052 =‪dir bl ---- AL‬‬
                                                                     ‫)5-( 0052 =‪dir bl ---- AL‬‬
‫‪dir‬‬    ‫01‬      ‫*: ‪ً Source‬وی تْاًؼ یک همؼاؿ حبثت ثبىؼ، یٌٞی ٝجبؿت همبثل غلٔ امت.‬

 ‫*: ػؿ تمنین آؿایَ ُب ػؿ ٍْؿتی کَ ًْٛ ػاػٍ تْمٔ پیيًْؼ ُبی ‪ byte ptr‬یب ‪ word ptr‬ثَ‬
  ‫ْٕؿ ٍـیش هيغٌ ًگـػًؼ اموجلـ ثب تْرَ ثَ ‪ ًْٛ ّ ، attribute‬لینت ٝول هی ًوبیؼ.(هخل‬
                                                                                        ‫ّـة)‬
   ‫*: ػؿ ٍْؿتی کَ یکی اف 5 صبلت فیـ ٌُگبم تمنین ؿط ػُؼ ّیب ثـلـاؿ ثبىؼ، ّلفَ ی‬
                               ‫تمنین ثـ ٍفـ ارـا ىؼٍ ّ ارـای ثـًبهَ هتْلف هی گـػػ.‬
                                                                  ‫1: تمنین ٝلیَ ٍفـ ثبىؼ.‬
        ‫2: ػؿ تمنین ثؼّى ٝالهت ثبیتی، همنْم ثقؿگتـ اف 552 ثـاثـ همنْم ٝلیَ ثبىؼ.‬
   ‫3: ػؿ تمنین ثؼّى ٝالهت کلوَ ای )‪ ، (word‬همنْم ثقؿگتـ اف 53556 ثـاثـ همنْم ٝلیَ‬
                                                                                       ‫ثبمؼ.‬
                ‫4: ػؿ تمنین ٝالهتؼاؿ ثیتی ، عبؿد لنوت ػؿ ػاهٌَ ی 821.…821- ًجبىؼ.‬
  ‫76723 .… 86723 - ًجبىؼ.‬        ‫5: ػؿ تمنین ٝالهتؼاؿ کلوَ ای، عبؿد لنوت ػؿ ػاهٌَ ی‬
           ‫*: ثَ ْٕؿ کلی ُـگبٍ ٝوب تمنین اًزبم گـػػ ثَ گًَْ ای کَ عبؿد لنوت ّیب‬
                                    ‫ثبلیوبًؼٍ ػؿ ٙـف عْػ رب ًيْػ عٖبی ‪Division by Zero‬‬
                                                     ‫ؿط هی ػُؼ (توبم 5 هـصلَ ی ------)‬
                                   ‫‪(Ascii Adjust for Division) AAD‬‬          ‫3-‪ :d‬ػمتْؿالٞول‬
       ‫َ لجل اف یکی اف ػّ ػمتْؿ ‪ Dir‬یب ‪ IDir‬امتفبػٍ هی ىْػ:‬       ‫ایي ػمتْؿالٞول کَ هٞوْال‬
   ‫هضتْای حجبت ‪ AH‬ؿا ػؿ 01 ّـة کـػٍ ّ ثَ حجبت ‪ AL‬اّبفَ کـػٍ ّ ًتیزَ ؿا ػؿ حجبت‬
    ‫‪ AX‬لـاؿ هی ػُؼ تب ثتْاى همنْم ثَ ىکل ػٍ ػُی غیـ فيـػٍ ؿا ثَ ىکل ػّػّیی رِت‬
                                                                         ‫تمنین تٌٚین ًوْػ.‬
                                          ‫غیـ فيـػٍ ىؼٍ 36=‪:0000 0110 0000 0011 AX=Ah:AL‬‬
                                                          ‫ػّػّیی36 = ‪:0000 0000 0011 1111 AX‬‬

                        ‫‪:E‬ػمتْؿالٞول ُبی تْمَٞ ی ثیت ٝالهت ‪Sign Exterution Instructions‬‬
‫ُوبًْٖؿ کَ هی ػاًین ػؿ ٝولیبت ّـة ّ تمنین ًیبف امت ْٕل )‪ٝ (Size‬ولًْؼ ُبیوبى یکی‬
‫ثبىؼ، ػؿ ٍْؿتی کَ ثغْاُین ػمتْؿاتی اف لجیل ‪ّ AX / BX‬یب ‪ AL * BX‬ؿا اًزبم ػُین، ثب‬
 ‫هيکل ؿّثـّ هی ىْین ، ػؿ ایي هْالٜ ثبیؼ اف ػمتْؿات تْمَٞ ی ثیت ٝالهت ثَ ىـس فیـ‬
                                                                          ‫امتفبػٍ ًوْػ:‬
   ‫1-‪ : (convert Byte to Word):CBW :e‬ایي ػمتْؿالٞول ثیت ٝالهت حبثت ‪ al‬ؿا ؽؿ ْٕل حجبت‬
                                                                       ‫‪ ah‬گنتـه هی ػُؼ.‬

‫04‬
     ‫2-‪ : (convert word to double word):CWD :e‬ایي ػمتْؿالٞول ثیت ٝالهت حجبت ‪ ax‬ؿا ػؿ ْٕل‬
                                                               ‫حجبت ‪ dx‬گنتـه هی ػُؼ.‬
                               ‫*:ػمتْؿات ثبال ُـ ػّ ثؼّى ٝولًْؼ ّ ٍفـ آػؿمَ ُنتٌؼ.‬
                       ‫*:ػمتْؿات تْمَٞ ی ثیت، ُیذ تبحیـی ثـؿّی حجبت پـچن ًؼاؿًؼ.‬
                           ‫‪GBW‬‬     ‫‪ah‬‬       ‫‪al‬‬
                            ‫‪CWD‬‬     ‫‪dx‬‬      ‫‪ax‬‬

                             ‫ػمتْؿالٞولِبی کٌتـل فـآیٌؼ ارـا ‪Control Transfer Instructions‬‬
   ‫ایي ؿػٍ اف ػمتْؿالٞول ُب رِت اًتمبل کٌتـل ارـای ثـًبهَ اف یک ًکتَ ػؿ ثـًبهَ‬
         ‫ثَ ًکتَ ػیگـ هْؿػ امتفبػٍ لـاؿ هی گیـًؼ ّ ىبهل مَ فیـ ؿػٍ فیـ هی ثبىٌؼ.‬
                 ‫‪un Conditional‬‬
‫‪Control Transfer Conditional‬‬
                 ‫‪Iterration‬‬

                                           ‫‪unconditional control transfer‬‬   ‫‪ :A‬کٌتـل غیـ ىـٕی‬

  ‫ایي فیـ ؿػٍ اف ػمتْؿالٞولِب ثؼّى ثـؿمی ىـٓ ، ًمَٖ ی ارـا ؿا اف یک هضل ثَ هضل‬
                           ‫ػیگـ اًتمبل هی ػٌُؼ ُوبًٌؼ ‪ go to‬ػؿ فثبًِبی مٖش ثبال.‬
                  ‫-: ُیچ یک اف ایي ػمتْؿالٞول ُب ثـّی حجبت پـرن تبحیـی ًؼاؿًؼ.‬

                        ‫‪call proc_name‬‬                      ‫1-‪ :A‬ػمتْؿالٞول ‪CaLL‬‬
‫اف ایي ػمتْؿالٞول ثـای فـاعْاًی فیـ ثـًبهَ ُب )‪ (procedures‬امتفبػٍ هی گـػػ ّ ًبم‬
                                             ‫فیـ ثـًبهَ ثَ ٌْٝاى ٝولًْؼ هی ثبىؼ.‬
                    ‫*: ثب ُـ ثبؿ ارـای ایي ػمتْؿالٞول هـاصل فیـ اًزبم هی ىْػ:‬

   ‫1: هضتْای حجبت ‪( Ip‬ثـای فـاعْاًی ًقػیک ‪ّ )near‬یب ‪( CS:IP‬ثـای فـاعْاًی ػّؿ ‪)far‬‬
                                                       ‫ثَ ثبالی ‪ stack , push‬هی گـػػ.‬
  ‫2: هضتْای حجبت ‪ّ Ip‬یب ‪ ، CS:IP‬هنتمیوَ اف لبلت ػمتْؿالٞول ‪ call‬ثبؿگؾاؿی هی گـػػ.‬
                                             ‫ب‬
                        ‫3: ارـای فیـ ثـًبهَ اف اّلیي ػمتْؿالٞول آى آغبف هی گـػػ.‬
  ‫4: ثب ؿمیؼى ثَ ػمتْؿالٞول ‪ ret‬کَ آعـیي ػمتْؿالٞول یک فیـ ثـًبهَ هی ثبىؼ، 2 یب‬
    ‫4 ثبیت ‪ push‬ىؼٍ ثَ ‪ stack‬ػؿ هـصلَ ی1 ثَ حجبت یب حجبت ُبی هـثَْٕ ‪ pop‬هی گـػًؼ‬
                                                            ‫(ثبف گـػاًؼٍ هی ىًْؼ)‬
                     ‫ّ کٌتـل ثـًبهَ ثَ اّلیي ػمتْؿالٞول پل اف ‪ call‬هٌتمل هی گـػػ.‬
    ‫* هخبل: ُـ گبٍ آػؿك ىـّٛ یک لینت اف اٝؼاػ ٍضیش ػؿ حجبت ‪ ّ Bx‬تٞؼاػ ٌٝبٍـ آى‬
  ‫لینت ػؿ حجبت ‪ Cx‬ثبىؼ. فیـ ثـًبهَ ای ثٌْینیؼ کَ ثقؿگتـیي ْْٝ ایي لینت ؿا پیؼا‬
                                                     ‫ًوْػٍ ّ ػؿ حجبت ‪ ax‬لـاؿ ػُؼ:‬
                                                    ‫ٕـف امتفبػٍ ػؿ ثـًبهَ ی اٍلی:‬

          ‫*: ػؿ ثَ کبؿگیـی ػمتْؿالٞول ‪ call‬ثَ ربی ًبم ثـًبهَ هی تْاى آػؿك هکبًی کَ‬
                      ‫فیـثـًبهَ ػؿ آى لـاؿ گـفتَ ثَ کبؿ ثـػ (فـاعْاًی غیـ هنتمین)‬
                                                                 ‫]‪Call word ptr [bx‬‬
                                                                 ‫]‪Call dword ptr [bx‬‬

                              ‫‪jmp target‬‬                  ‫2-‪ :A‬ػمتْؿالٞول ‪(jump) : jmp‬‬
     ‫ایي ػمتْؿالٞول هْرت اًتمبل کٌتـلی ارـای ثـًبهَ اف هکبى ربؿی ثَ هکبًی کَ ًبم‬
                     ‫آى ثَ ٌْٝاى ثـچنت ّ ٝولًْؼ ایي ػمتْؿالٞول هی ثبىؼ، هی گـػػ.‬
                                                 ‫*: ‪ : B‬ػمتْؿالٞول ُبی کٌتـل ىـٕی:‬
       ‫ایي ػمتْؿالٞول ُب ىـایٔ هْؿػًٚـ عْػ ؿا اف حجبت پـچن )‪ (flag‬کٌتـل ًوْػٍ ّ ػؿ‬
        ‫ٍْؿت هضیب ثْػى ىـایٔ ثَ ػمتْؿالٞولی کَ ثـچنت آى ٝولًْؼ ایي ػمتْؿالٞول هی‬
                                                              ‫ثبىؼ. اًيٞبة هی ًوبیؼ.‬
                  ‫*: پـه ػؿ ػمتْؿالٞولِبی ىـٕی فمٔ ثَ ٍْؿت اًيٞبة کْتبٍ هی ثبىؼ.‬
      ‫*: ىکل کلی ایي ػمتْؿالٞول ُب ثَ یکی اف مَ ىکل همبثل هی ثبىؼ کَ ‪ُ x‬بی هٞتجـ‬
                                                             ‫ىبهل هْاؿػ فیـ هی ثبىؼ.‬
‫‪jx‬‬
‫‪jxx‬‬
‫‪jxxx‬‬



‫14‬
              x   Comment                                         x   Comment
              Z        Zero                                       L    Less

             C        Carry
                                                                  G    Greak
             E        Equel
                                                                  P    Partiy
             N         Not
                                                                  S    Sign
             A        Abore

             B        Bellow        ّ PO(parity add) ‫هٞتجـ ىبهل‬   O              ‫ ُبی‬xx :*
                                                                       Oflow
NE ‫هخل‬                           ‫ ُبی هزبف‬x ‫ ّ تـکیجی اف‬even)                      PE(parity
                                                                        .‫ ّ.... هی ثبىؼ‬Beّ



                                  (Cx Register Equal With Zoo)CXZ ‫ ُبی هٞتجـ ىبهل‬XXX :*
             .‫ ّ.... هی ثبىؼ‬NGE ‫ ّیب‬NIE ‫ ُبی هزبفی ثبىؼ ؿا‬x ‫ ُب ّیب‬xx ‫ّ تـکیجی اف‬
                   ....ّjA=jNBE ‫* ثـعی اف ایي ػمتْؿالٞول ُب هٞبػل ُن هی ثبىؼ هبًٌؼ‬

jA     jump if above              CF=0 & ZF=0 jNBE

jAE    jump if above or equal     CF=0 jNB

jB     jump if belaw              CF=1           jNAE

jBE    jump if belaw or equal     CF=1 or ZF=1 jNA

jNA     jump if not above         CF=1 or ZF=1 jBE
jNAE     jump if not above        CF=0 & ZF=1 jB
            nor equal

jNB     jump if not belaw          CF=0   jAE

jNBE    jump if not belaw          CF=0 & ZF=0 Ja
                   nor equal

jG     jump if Great OF=SF & ZF=0 jNLE

jGE    jump if Great or equal    OF=SF & ZF=0 jNL

jL     jump if less    SF--OF    jNGE

jLE      jump if less or equal SF--OF     or ZF=1 jNG

jNG      jump if not Great SF--OF or ZF=1 jLE

jNGE     jumpif not Great SF--OF jE
                  nor equal

jNL     jump if not less      SF=OF jGE

jNLE    jump if not less       SF=OF & ZF=0 jG
nor equal

jc     jump if     carry          CF=1           _
jNC    jump if not carry          CF=0           _
42
jE    jump if        equal        ZF=1           _
jNE    jump if not equal          ZF=0           _
jO    jump if     overflow       OF=1            _
jNO     jump if not overflow     OF=0            _
jP      jump if parity           PF=1            _
jNP    jump if not parity        PF=0            _
js   jump if sign                SF=1            _
jNS    jump if not sign          SF=0            _
jZ     jump if Zero               ZF=1            _
jNZ   jump if not Zero carry     ZF=0            _
jPE   jump if parity even        PF=1            _
jPO    jump if parity add        PF=0            _
jcXZ jump if CX Zero              Cx=0            _


 .‫ لـاؿ ػُؼ‬ax ‫*هخبل: تکَ ثـًبهَ ای ثٌْینیؼ کَ هزوْٛ اٝؼاػ یک تب 005 ؿا ػؿ حجبت‬
   mav cx,0                  mav cx,500
   sub ax,ax                 sub ax,ax
a1: inc cx           ---- a1: add ax, cx
   add     ax,cx             dec cx
   cmp cx,500                cmp cx, 0
   jNe     a1                 jNe a1
 َ‫ ػاؿین. تک‬byte ًْٛ ‫ ثَ ْٕل 05 ّ 05 ٝؼػ ٍضیش اف‬list ‫* هخبل: فـُ ًوبیؼ ػؿ آؿایَ ی‬
                              ‫ لـاؿ ػُؼ‬sum ‫ثـًبهَ ای ثٌْینیؼ کَ هٞبػل ٌٝبٍـ آؿایَ ؿا ػؿ‬
    List db 50 dup(?) List dw 50 dup(?)
    sum dw ?                sub ax,ax
    mav si,-1                mav si,-1
                L: add         si,2     c :inc si
    mav al , list[si]       add     ax list [si]
    clow                    cmp si,98
    add sum,ax               jNe    L
    cmp si,49                mav    sum , ax
    jNe    c

                              .‫هخبل: لَٖٞ ثـًبهَ ای ثٌْینیؼ کَ ٌٝبٍـ لینت ؿا هٞکْك ًوبیؼ‬
   list db 100 dup(?)           List dw 100 dup(?)
   mav        si, -1              mav si,-2
   mav        di ,100             mav di,200
L: inc si                   c: add si,2
   dec        di                 sub di,2
  mav        al, list[si]       mav ax,list[si]
  Xchg al, list[di]             xchg ax,list[di]
  mav list[si],al
  Cmp        si,di             mav list[si],ax
  jl       l                   Cmp si,di
                               jl  c


Space ّ َ‫هخبل: لَٖٞ ثـًبهَ ای ثٌْینیؼ کَ یک ؿىتَ ثَ ْٕل 001 ثبیت ؿاػؿ ًٚـ گـفت‬
                                                          .‫ُبی آى ؿا صؾف ًوبیؼ‬
Str1 db 1000 dup(?)        mav     al, str1[si]
Str2 db 1000 dup(?)        mav str2[di],al
      mav     si, -1      inc di
      mav     di ,0       jmp L1
L1: inc si
Cmp     si,1000      finish :
     jE   finish
     cmp str[si],' '
    jE    L1

43
                                                                         ‫توـیي:‬
                   ‫1 : ثـًبهَ ای ثٌْینیؼ کَ یک ‪ list‬ؿا ثَ ٍْؿت ٍْٞػی هـتت ًوبیؼ.‬
     ‫2 : ثـًبهَ ای ثٌْینیؼ کَ یک ؿىتَ ی ُقاؿ کبؿاکتـی ؿا ػؿ ًٚـ ثگیـػ ّ ثـای ُـ‬
               ‫کلوَ صـف اّل ؿا ثقؿگ ّ ثمیَ ی صـّف ؿا ثَ صـّف کْچک تجؼیل ًوبیؼ.‬
  ‫3 : : ثـًبهَ ای ثٌْینیؼ کَ یک ؿىتَ ی ُقاؿ کبؿاکتـی ؿا ػؿ ًٚـ ثگیـػ ّ ُـ کلوَ‬
                                                      ‫ؿا ػؿ ربی عْػ هٞکْك ًوبیؼ.‬




‫44‬
                  ‫‪Iteration‬‬                                                      ‫‪:C‬صلمَ ُبی تکـاؿ‬

                                ‫‪Loop short-Loop‬‬                                           ‫1-‪Loop:c‬‬

     ‫ایي ػمتْؿالٞول ػؿ ُـارـا هضتْای حجبت ‪ cx‬ؿا ثب ٍفـ همبینَ هی ًوبیؼ. اگـ هغبلف‬
         ‫ٍفـ ثْػ یک ّاصؼ اف هضتْای حجبت ‪ cx‬کن ًوْػٍ ّ ثَ ػمتْؿالٞولی کَ ثـ صنت آى‬
                                  ‫ٝولًْؼ ػمتْؿالٞول ‪ Loop‬هی ثبىؼ اًيٞبة هی ًوبیؼ.‬

                                                 ‫*:ثـچنت ُوْاؿٍ ثبیؼ ؿّ ثَ ثبال ثبىؼ.‬
             ‫* :‪ ّ Loop‬کلیَ ػمتْؿالٞول ُبی تکـاؿ ُیچ تبحیـی ثـ ؿّی حجبت پـچن ًؼاؿًؼ.‬

     ‫هخبل:تکَ ثـًبهَ ای ثٌْینیؼ کَ هزوْٛ اؿلبم 1 تب 005 ؿا هضبمجَ ًوْػٍ ّ ػؿ حجبت‬
                                                                     ‫‪ ax‬لـاؿ ػُؼ.‬
      ‫005,‪mav ax‬‬

     ‫----,‪mav ------ ,sub ax‬‬

‫‪Label 1:add‬‬       ‫‪ax,cx‬‬

     ‫1 ‪Loop label‬‬

                                                         ‫هخبل: صلمَ ی فیـ چٌؼ هـتجَ تکـاؿ هی ىْػ؟‬

                          ‫‪ )B‬ثی ًِبیت ثبؿ‬                   ‫‪ٍ )A‬فـ هـتجَ‬
                              ‫‪ 65535 )D‬ثبؿ‬                   ‫‪ 32768 )C‬ثبؿ‬

                                                                                       ‫‪mav‬‬    ‫1-,‪cx‬‬

                                                                                              ‫:‪L‬‬
                                                                                                 ‫:‬
                                                                                           ‫‪Loop L‬‬
                                                         ‫هخبل: صبٍل ارـای تکَ ثـ ًبهَ ی فیـ چینت؟‬
     ‫‪mav‬‬     ‫21,‪cx‬‬

‫--‬         ‫‪ax -- ax-12 L: sub‬‬     ‫‪ax,cx‬‬

‫21(-‪(----ax--ax‬هزوْٛ اٝؼاػ تب‬                ‫11-‪ax--ax‬‬            ‫‪Loop L‬‬
  ‫:‬
    ‫87-‪ax--ax‬‬   ‫1-‪ax--ax‬‬

                                                ‫ُبی ‪: Loope,Loopz‬‬                  ‫2-‪ :c‬ػمتْؿالٞول‬
‫ُب هضتْای حجبت ‪ cx‬ؿا ثب ٍفـ ّ ‪ ZF‬ؿا ثب یک همبینَ ًوْػٍ ّػؿ ٍْؿت‬                    ‫ایي ػمتْؿالٞول‬
        ‫‪ّ CX‬یک ثْػى ‪ ZF‬یک ّاصؼ اف هضتْای حجبت ‪ CX‬کن ًوْػٍ ّ ثَ‬                     ‫هغبلف ٍفـ ثْػى‬
         ‫ثـچنت آى ٝولًْؼ ‪ Loope‬یب ‪ Loopz‬هی ثبىؼ اًيٞبة هی ًوبیؼ.‬                   ‫ػمتْؿالٞولی کَ‬

   ‫هخبل: لَٖٞ ثـ ًبهَ ای ثٌْینیؼ کَ اف یک ؿىتَ ثَ ْٕل 002 ثبیت اّلیي هکبى هغبلف‬
                                                                 ‫‪ space‬ؿا ثیبثؼ.‬
‫‪Str db‬‬      ‫)?(‪200 dup‬‬
      ‫002,‪mav ax‬‬
      ‫1-,‪mav si‬‬
‫‪Can: ine‬‬    ‫‪si‬‬
      ‫' ',]‪cmp str[si‬‬
       ‫‪Loop Can‬‬
       ‫‪jcxz not-found‬‬
       ‫:‬
       ‫:‬
‫:‪not-found‬‬

                      ‫هخبل: تکَ ثـًبهَ ای ثٌْینیؼ کَ آعـیي هْلٞیت هغبلف ‪ space‬ؿا ثیبثؼ.‬
‫54‬
      mav       ax,200
      mav       si,200
can: dec         si
       cmp      str[si],' '
       Loope    can
      jcxz      not-found
      :
      :
not found:
                                            : Loopnzّ Loopne ‫: ػمتْؿالٞول ُبی‬c-3
     ‫ هنبّی ٍفـ ثبىؼ، یک ّاصؼ اف‬zf ّ‫ هغبلف ٍفـ‬cx َ‫ایي ػّ ػمتْؿالٞول تب ٌُگبهی ک‬
     ‫ ّیب‬Loopne ‫ کن کـػٍ ّ ثَ ػمتْؿالٞولی کَ ثـچنت آى ثَ ٌْٝاى ٝولًْؼ‬cx ‫ّهضتْای‬
                                                 .‫ آهؼٍ امت ،اًيٞبة هی کٌؼ‬Loopz

                             .‫ ؿا ثیبثؼ‬space ‫هخبل: لَٖٞ ثـًبهَ ای ثٌْینیؼ کَ اّلیي هْلٞیت‬
             mav         ax,200
             mav         si,-1
continue:   inc          si
             cmp         str[si],' '
             Loopne      continue
             jcxz        not-found
             :
             :
not-found:
    .‫هخبل: لَٖٞ ثـًبهَ ای ثٌْینیؼ کَ کلیَ ی ؿىتَ ی002 ثبیتی ؿا ثَ * تجؼیل ًوبیؼ‬
Str         db    200 dup(?)
           mav    ax,200
           mav    si,-1
continue: inc     si
           cmp    str[si],' '
           Loopne continue
           jcxz   not-found
           mav    str[si],'*'
           jmp    continue
not-found:

                                   Bit Manipulation Instructions :‫: ػمتْؿالٞول ُبی پـػافه ثیت ُب‬D

‫ایي ؿػٍ اف ػمتْؿالٞول ُب هی تْاًٌؼ ثَ ثیت ُب ػمتـمی ػاىتَ ثبىٌؼ ّ ثـ ؿّی آًِب‬
      .‫ هی ثبىٌؼ‬Ratateّ shiftّ Logical ‫تغییـاتی اٝوبل ًوبیٌؼ ّ ىبهل ػمتْؿالٞول ُبی‬
                        ‫ػمتْؿالٞول ُبی هٌٖمی‬                                 : D-1

                          O        D       I         T   S      Z      A      P         C
            AND           .        -       -         -   *      *      ?      *         .
             OR           .        -       -         -   *      *      ?      *         .
            XOR           .        -       -         -   *      *      ?      *         .
            NOT           -        -       -         -   -      -      -      *         .
            test          .        -       -         -   *      *      ?      *         -




            b        B        Not b            and       Test         or          Xor
            0        0         1               0          0           0           0


46
             ‫0‬      ‫1‬            ‫1‬                 ‫0‬       ‫0‬            ‫1‬           ‫1‬
             ‫1‬      ‫0‬            ‫0‬                 ‫0‬       ‫0‬            ‫1‬           ‫1‬

             ‫1‬      ‫1‬            ‫0‬                 ‫1‬       ‫1‬            ‫1‬           ‫0‬




                                                         ‫1-1-‪ :D‬ػمتْؿالٞول ‪And‬‬
                                                                ‫‪And dest,scurce‬‬
   ‫ایي ػمتْؿالٞول 2 ایـًؼ 8 یب 61 ثیتی ؿا کَ هی تْاًٌؼ حجبتی ، صبفَٚ ای ّ یب‬
‫تٞؼاػ حجبت ثبىٌؼ ؿا ثَ ٍْؿت ثیت ثَ ثیت ‪ And‬هٌٖمی کـػٍ ّ صبٍل ؿا ػؿ ٝولًْؼ اّل‬
                                                            ‫)‪ (dest‬لـاؿ هی ػُؼ.‬

                                                                    ‫‪ُ And‬ـ ثیت ثب 0 ، 0 هی گـػػ.‬
                                                                 ‫‪ُ And‬ـ ثیت ثب 1 ، عْػه هی گـػػ.‬
                                                                ‫‪ُ And‬ـ ثیت ثب عْػه عْػه هی گـػػ.‬

        ‫* اف مَ ػمتْؿالٞول 0,‪ , and al,0 , sub al,al , mav al‬کَ ُـ مَ ثـای ٍفـ کـػى حجبت ‪al‬‬
                           ‫امتفبػٍ هی گـػػ، ػمتْؿ0,‪ and al‬ثَ هـاتت مـیٞتـ هی ثبىؼ.‬

       ‫‪and‬‬       ‫‪al , 01010101b‬‬          ‫‪ and al , 55H‬یب‬   ‫‪al‬‬   ‫هخبل: ٍفـ ىؼى ثیت ُب ی فـػ حجبت‬

                            ‫‪or‬‬       ‫‪dest,source‬‬                              ‫2-1-‪ :D‬ػمتْؿالٞول ‪or‬‬

 ‫ایي ػمتْؿالٞول 2 ٝولًْؼ 8 یب 61 ثیتی حجبتی ، صبفَٚ ای ّیب حبثت ؿا ثَ ٍْؿت ثیت‬
                            ‫ثَ ثیت تـکیت عٖی کـػٍ ّ ػؿ ٝولًْؼ ‪ dest‬لـاؿ هی ػُؼ.‬

                                             ‫ًوی ػُؼ.‬  ‫‪ُ Or‬ـ ثیت ثب 0 ، تغییـی ػؿ آى ثیت اًزبم‬
                                                          ‫‪ُ Or‬ـ ثیت ثب 1، آى ثیت ؿا یک هی کٌؼ.‬
                                              ‫‪ُ Or‬ـ ثیت ثب عْػه ، تغییـی ػؿ آى اًزبم ًوی ػُؼ.‬

 ‫هخبل: فـُ ًوبییؼ یک پـػافًؼٍ ی 6808 اف ٕـیك پْؿت 002 ثَ یک ًیـّگبٍ صـاؿتی ٍّل‬
                                  ‫ىؼٍ امت ّ ػاػٍ ُبی 61 ثیتی ػؿیبفت هی ًوبیؼ :‬
  ‫لَٖٞ ثـًبهَ ای ثٌْینیؼ کَ ػاػٍ ُبی اؿمبلی ًیـّگبٍ ؿا ػؿیبفت ًوْػٍ ّ ػؿ ٍْؿت‬
     ‫ؿّىي ىؼى ػمتگبٍ پـػافه ّیژٍ ای اًزبم ىْػ (ثیت ىوبؿٍ ی 6 ػاػٍ ی ػؿیبفت ىؼٍ‬
                          ‫ًيبى ػٌُؼٍ ی ؿّىي 1 ّیب عبهْه ثْػى 0 ػمتگبٍ هی ثبىؼ)‬

‫‪PWR-CHK : In‬‬        ‫002 ‪ax,200 ; Got data from port‬‬
           ‫‪and‬‬       ‫‪ax,20H ; and ax , 00100000B‬‬
           ‫‪jz‬‬        ‫‪PWR-CHK‬‬
           ‫‪call‬‬      ‫‪PWR-ON‬‬

‫‪xor dest,source‬ایي ػمتْؿالٞول 2 ٝولًْؼ 8 ّیب‬           ‫‪XOR‬‬     ‫3-1-‪ :D‬ػمتْؿالٞول‬
 ‫61 ثیتی حجبتی، صبفَٚ ای ّیب حجبت ؿا ثَ ٍْؿت ثیت ثَ ثیت تـکیت اًضَبؿی ًوْػٍ ّ‬
    ‫صبٍل ؿا ػؿ ٝولًْؼ ‪ dest‬لـاؿ هی ػُؼ، (ٝولًْؼ ‪ً dest‬وی تْاًؼ همؼاؿ حبثت ثبىؼ)‬

                             ‫‪ُ Xor‬ـ ثیت ثب ٍفـ، تغییـی ػؿ آى ثیت ایزبػ ًوی ًوبیؼ.‬
                                       ‫‪ُ Xor‬ـ ثیت ثب یک، آى ثیت ؿا ًمیِ هی ًوبیؼ.‬
                                      ‫‪ُ Xor‬ـ ثیت ثب عْػه، آى ثیت ؿا ٍفـ هی ًوبیؼ.‬
     ‫*:یکی اف ؿاٍ ُبی ٍفـ کـػى یک حجبت امتفبػٍ اف ػمتْؿالٞول ‪ xor‬ثَ ٍْؿت همبثل هی‬
                                                ‫‪XOR reg,reg‬‬                  ‫ثبىؼ‬
                                                      ‫هخل ‪ XOR AL,AL‬یب ‪XOR EX,EX‬‬

                 ‫‪NOT dest‬‬                                                   ‫4-1-‪ :D‬ػمتْؿالٞول ‪NOT‬‬

‫74‬
 ‫ایي ػمتْؿالٞول یک ٝولًْؼ 8 ّیب 61 ثیتی حجبتی ّیب صبفَٚ ای ؿا ثیت ثَ ثیت ًمیِ‬
                                                                     ‫هی ًوبیؼ.‬
  ‫مؤال : ػؿ ٍْؿتی کَ فـُ ًوبیین ػمتْؿالٞول ‪ NOT‬ثـای پـػافًؼٍ ی 6808 تٞـیف ًيؼٍ‬
                                                 ‫ثبىؼ، آى ؿا ىجیَ مبفی ًوبییؼ:‬
                                                  ‫‪NOT dest‬‬    ‫‪=XOR‬‬   ‫‪dest,FFFFH‬‬

‫مؤال: ػمتْؿالٞول ‪ NEG‬ؿا ثب امتفبػٍ اف ػمتْؿات پـػافه ثیت ُب ىجیَ مبفی ًوبییؼ.‬
                                                                       ‫‪XOR a,b‬‬
                                                         ‫‪Xchg a,b ---- XOR b,a‬‬
                                                                       ‫‪XOR a,b‬‬

                             ‫2‪Test source1,source‬‬          ‫5-1-‪ :D‬ػمتْؿالٞول ‪Test‬‬
‫ایي ػمتْؿالٞول ػّ ٝولًْؼ ‪ source, dest‬ؿا کَ هی تْاًٌؼ اف ًْٛ حجبتی، صبفَٚ ای ّیب‬
         ‫حبثت ثبىٌؼ ؿا ثیت ثَ ثیت ‪ And‬هٌٖمی ًوْػٍ ّ‪ُ flag‬ب ؿا تغییـ هی ػُؼ. ایي‬
                            ‫ػمتْؿالٞول ُیچ تبحیـی ثـ ؿّی ٝولًْؼ ُبی عْػ ًؼاؿػ.‬
  ‫*ًنجت ایي ػمتْؿالٞول ثَ ػمتْؿالٞول ‪ and‬هخل ًنجت ػمتْؿالٞول ‪ cmp‬ثَ ػمتْؿالٞول‬
                                                                    ‫‪ sub‬هی ثبىؼ.‬

                                                               ‫2-‪ :D‬ػمتْؿالٞول ‪SHIFT‬‬

            ‫‪O‬‬       ‫‪D‬‬     ‫‪I‬‬     ‫‪T‬‬     ‫‪S‬‬      ‫‪Z‬‬     ‫‪A‬‬     ‫‪P‬‬      ‫‪C‬‬
  ‫‪SHL‬‬      ‫*?‬        ‫-‬    ‫-‬     ‫-‬     ‫*‬      ‫*‬     ‫?‬     ‫*‬      ‫*‬
  ‫‪SAL‬‬      ‫*?‬        ‫-‬    ‫-‬     ‫-‬     ‫*‬      ‫*‬     ‫?‬     ‫*‬      ‫*‬
  ‫‪SHR‬‬      ‫0?‬        ‫-‬    ‫-‬     ‫-‬     ‫0‬      ‫*‬     ‫?‬     ‫*‬      ‫*‬
  ‫‪SAR‬‬      ‫*?‬        ‫-‬    ‫-‬     ‫-‬     ‫*‬      ‫*‬     ‫?‬     ‫*‬      ‫*‬

 ‫*: ُـ ػمتْؿالٞول ‪ shift‬ثَ مَ ٍْؿت لبثل امتفبػٍ هی ثبىؼ، ثَ ٌْٝاى هخبل ػمتْؿ ‪SHL‬‬
                                     ‫ؿا هی تْاى ثَ ٍْؿت همبثل لبثل امتفبػٍ امت:‬
‫‪SHL‬‬    ‫1,‪dest‬‬     ‫‪;shift‬‬ ‫‪onlg‬‬     ‫‪a‬‬ ‫‪bit‬‬
‫‪SHL‬‬    ‫‪dest,cl‬‬    ‫‪;shift‬‬
‫‪SHL‬‬    ‫‪dest,count ;for‬‬   ‫& --‪80186t‬‬ ‫‪shift‬‬

                                  ‫‪shift Left‬‬              ‫‪: SHL‬‬      ‫1-2-‪ :D‬ػمتْؿالٞول‬
   ‫ایي ػمتْؿالٞول ثیت ُب ؿا اف موت ؿامت ثَ چپ ربثزب هی ًوب یؼ ، ػؿ صیي ربثزبیی‬
  ‫ربیگقیي ثیت ُبی لجلی هی ىْػ‬          ‫ثَ تٞؼاػ ثیت ُبی ربثزب ىؼٍ ٍفـ -0- اف موت ؿامت‬
                                             ‫ّ آعـیي ثیت عبؿد ىؼٍ ػؿ ‪ CF‬لـاؿ هی گیـػ.‬
                         ‫‪shift Arithmatic Left‬‬            ‫‪:SHL‬‬       ‫2-2-‪ :D‬ػمتْؿالٞول‬
 ‫ایي ػمتْؿالٞول ػلیمَ هبًٌؼ ػمتْؿ ‪ٝ SHL‬ول هی ًوبیؼ ّ ػاؿای یک ‪ op-code‬هی ثبىٌؼ.‬
                                                                 ‫ب‬
                                                          ‫ثب ایي تفبّت کَ اف ‪ SHL‬ثـای‬
                                        ‫*:‪ n‬ثیت ىیفت ثَ چپ، ػاػٍ ؿا --2 ثـاثـ هی کٌؼ.‬
                                                                              ‫*: هخبل:‬
‫‪mav‬‬    ‫23,‪bl‬‬           ‫‪mav‬‬     ‫5,‪cl‬‬
                  ‫----‬
‫‪imal‬‬   ‫‪bl‬‬              ‫‪mav‬‬     ‫‪al,cl‬‬

      ‫*: توـیي: هضتْای حجبت ‪ ax‬ؿا ثب امتفبػٍ اف ػمتْؿات ‪ُ، shift‬زؼٍ ثـاثـ ًوب یؼ:‬
‫‪mav‬‬     ‫‪bx,cx‬‬

‫‪sal‬‬     ‫1,‪bx‬‬

‫‪xor‬‬     ‫4,‪cl‬‬

‫‪sal‬‬     ‫‪ax,cl‬‬

‫‪add‬‬     ‫‪ax,bx‬‬


                ‫*:هضتْای حجبت ‪ ax‬ؿا ثب امتفبػٍ اف ػمتْؿات ‪ًْ ، shift‬فػٍ ثـاثـ ًوبیؼ.‬

‫84‬
‫‪mav‬‬     ‫‪bx,ax‬‬

‫‪sal‬‬      ‫4,‪ax‬‬

‫‪add‬‬      ‫‪ax,bx‬‬

‫‪sal‬‬       ‫1,‪bx‬‬

‫‪add‬‬      ‫‪ax,bx‬‬

                                          ‫‪shift Right‬‬  ‫‪:SHR‬‬   ‫3-2-‪ :D‬ػمتْؿالٞول‬
 ‫ایي ػمتْؿالٞول ثیت ُب ؿا اف موت چپ ثَ ؿامت ربثزب هی ًوبیؼ ، ػؿ صیي ربثزبیی ثَ‬
  ‫تٞؼاػ ثیت ُب ی ربثزب ىؼٍ ٍفـ 0 اف موت چپ ربیگقیي ثیت ُبی لجلی هی ىْػ ّ آعـیي‬
                                 ‫ثیت عبؿد ىؼٍ اف موت ؿامت ػؿ ‪ CF‬لـاؿ هی گیـػ .‬

                                       ‫‪shift Arithmatic Right‬‬ ‫4-2-‪ :D‬ػمتْؿالٞول ‪:SAR‬‬
  ‫ایي ػمتْؿالٞول ثیت ُب ؿا اف موت چپ ثَ ؿامت ربثزب هی ًوبیؼ، ػؿ صیي ربثزبیی ثَ‬
    ‫تٞؼاػ ثیت ُبی ربثزب ىؼٍ، یک کپی اف ثیت ٝالهت ربیگقیي ثیت ُبی لجلی هی گـػػ،‬
                            ‫آعـیي ثیت عبؿد ىؼٍ اف موت ؿامت ػؿ ‪ CF‬لـاؿ هی گیـػ.‬

 ‫*:ُـ ىیفت ثَ ؿامت، ػاػٍ ؿا ًَف هی کٌؼ ، ‪ n‬ثیت ىیفت ثَ ؿامت ػاػٍ ؿا --2ثـاثـ هی‬
                                                                           ‫کٌؼ.‬

‫‪ cver flow‬ؿط هی ػُؼ.‬     ‫*:ثـای ىیفت ُبی ؿیبّی ػؿ ٍْؿتی کَ ثیت عبؿد ىؼٍ یک ثبىؼ.‬




 ‫*:ثؼّى امتفبػٍ اف ػمتْؿالٞولِبی ّـة ّ تمنین ، تکَ ثـًبهَ ای ثٌْینیؼ کَ هضتْای‬
                                                       ‫حجبت ‪ ax‬ؿا-- ثـاثـ کٌؼ.‬
‫‪mav‬‬    ‫‪bx,ax‬‬

‫‪mav‬‬    ‫2,‪cl‬‬

‫‪sal‬‬    ‫‪bx,cl‬‬

‫‪add‬‬    ‫‪bx,ax‬‬

‫‪sal‬‬     ‫‪bx,cl‬‬

‫‪sub‬‬     ‫‪bx,ax‬‬

‫‪sar‬‬     ‫‪bx,cl‬‬

‫‪xchg‬‬    ‫‪ax,bx‬‬

‫682-‬                                                      ‫*:هخبل لجلی ثب ؿّه ػیگـ:‬


‫‪mav‬‬    ‫‪bx,ax‬‬

‫‪sal‬‬    ‫4,‪ax‬‬

‫‪add‬‬    ‫‪ax,bx‬‬

‫‪sal‬‬     ‫1,‪bx‬‬

‫‪add‬‬     ‫‪ax,bx‬‬

‫‪sar‬‬      ‫2,‪ax‬‬


‫94‬
                                                      ‫3-‪:D‬ػمتْؿالٞول ُبی ‪: Rotate‬‬
     ‫ػمتْؿالٞول ُب ی ‪ ، Rotate‬ثیت ُب ؿا ثَ ٍْؿت چـعيی ربثزب هی ًوبیؼ یٌٞی ثیتی کَ‬
                    ‫اف لبلت ػاػٍ عبؿد هی ىْػ اف مْی ػیگـ ّاؿػ لبلت ػاػٍ هی گـػػ.‬
                      ‫‪O‬‬     ‫‪D‬‬     ‫‪S‬‬     ‫‪T‬‬     ‫‪S‬‬     ‫‪Z‬‬     ‫‪A‬‬      ‫‪P‬‬     ‫‪C‬‬
             ‫‪ROL‬‬     ‫*?‬      ‫-‬    ‫-‬     ‫-‬     ‫-‬     ‫-‬     ‫-‬      ‫-‬     ‫*‬
             ‫‪ROR‬‬     ‫*?‬      ‫-‬    ‫-‬     ‫-‬     ‫-‬     ‫-‬     ‫-‬      ‫-‬     ‫*‬
             ‫‪RCL‬‬     ‫*?‬      ‫-‬    ‫-‬     ‫-‬     ‫-‬     ‫-‬     ‫-‬      ‫-‬     ‫*‬
             ‫‪RCR‬‬     ‫*?‬      ‫-‬    ‫-‬     ‫-‬     ‫-‬     ‫-‬     ‫-‬      ‫-‬     ‫*‬

       ‫ُوبًٌؼ ػمتْؿالٞول اف ؿػُی ‪ Rotate‬ثَ مَ ىکل لبثل امتفبػٍ هی ثبىٌؼ، ثَ ٌْٝاى‬
                       ‫هخبل ػمتْؿالٞول ‪ ROR‬ؿا هیتْاى ثَ مَ ىکل فیـ امتفبػٍ کـػ:‬
                                              ‫‪ROR‬‬    ‫1,‪dest‬‬     ‫‪; Rotate‬‬    ‫‪anly a bit‬‬
                                                            ‫‪ROR‬‬     ‫1‪dest,c‬‬     ‫‪; Rotate‬‬
                                            ‫‪ROR‬‬   ‫& ----68208 ; ‪dest,count‬‬        ‫‪Rotate‬‬

                                               ‫‪Rotate Left‬‬ ‫‪:ROL‬‬   ‫1-3-‪ :D‬ػمتْؿالٞول‬
      ‫ایي ػمتْؿالٞول ثیت ُب ؿا اف موت چپ ثَ ؿامت ثَ ٍْؿت چـعيی ربثزب ًوْػٍ ّآعـیي‬
     ‫‪CF‬‬    ‫7 6 5 4 3 2 1 0‬        ‫ثیت عبؿد ىؼٍ ػؿ ‪ CF‬لـاؿ هی گیـػ(ٝالٍّ ثـ ثیت 7 )‬

                                                                                   ‫----‬
                                                  ‫2-3-‪:D‬ػمتْؿالٞول ‪Rotate Right : ROR‬‬
     ‫ؿامت ثَ چپ‬     ‫‪CF‬‬                               ‫ایي ػمتْؿالٞول ثیت ُب ؿا اف موت‬
                                                                                ‫ثَ ٍْؿت‬
       ‫عبؿد ىؼٍ ػؿ ‪CF‬‬                                    ‫چـعيی ربثزب ًوْػٍ ّآعـیي ثیت‬
                                                                                   ‫لـاؿ‬
                                                                ‫هی گیـػ(ٝالٍّ ثـثیت 8 )‬
                                                                                   ‫----‬


                                         ‫3-3-‪:D‬ػمتْؿالٞول ‪( Rotate with carry Left) RCL‬‬
      ‫ایي ػمتْؿالٞول ُوبًٌؼ ‪ ROL‬امت ثب ایي تفبّت کَ ػؿ چـعو ‪ُ CF‬ن ػعیل امت یٌٞی‬
                  ‫ثیت عبؿد ىؼٍ ػؿ ‪ CF‬لـاؿ هی گیـػ ّ ثیت 7 هضتْای ‪ CF‬ؿا هی پؾیـػ.‬

                                                                                   ‫----‬
               ‫‪CF‬‬
                                    ‫4-3-‪:D‬ػمتْؿالٞول ‪(Rotate with array Right) RCR‬‬
‫ایي ػمتْؿ ُوبًٌؼ ‪ ROR‬امت ثب ایي تفبّت کَ ػؿ چـعو ‪ُ CF‬ن ػعیل هی ثبىؼ یٌٞی ثیت‬
                                        ‫عبؿد ىؼٍ ػؿ ‪ CF‬ثَ ثیت 0 هٌتمل هی ىْػ.‬


               ‫‪CF‬‬                                                                  ‫----‬

      ‫*:ایي ػمتْؿالٞول ػؿ ‪ Refresh‬کـػى ُب ّ ُوچٌیي مبعت ‪ُ Screen‬ب امتفبػٍ ػاؿًؼ.‬
                                                                           ‫هخبل:‬
‫01111101=‪AL‬‬      ‫0=‪CF‬‬
‫‪ROL‬‬   ‫1,‪AL‬‬        ‫10111110=‪AL‬‬    ‫1=‪CF‬‬
‫‪ROR‬‬    ‫3,‪AL‬‬       ‫1110101‪AL=L‬‬    ‫1=‪CF‬‬
‫‪RCL‬‬   ‫1,‪AL‬‬        ‫00111110=‪AL‬‬     ‫1=‪CF‬‬

              ‫‪Interrupt Instructions‬‬                     ‫‪:E‬ػمتْؿالٞول ُبی ّلفَ‬
  ‫ّلفَ ُب اف ثِتـیي فیـ کبؿثـػ تـیي ػمتْؿات اموجلی ُنتٌؼ کَ فهبى اموجلی ؿا ثب‬
                                              ‫فثبًِبی مٖش ثبال هتوبیق هی مبفػ .‬
  ‫ّلفَ ثَ اتفبلبتی گفتَ هی ىْػ کَ هْرت تٞلیك ثـًبهَ ی ربؿی هی ىًْؼ ّ کبهپیْتـ‬
     ‫ؿا هزجْؿ هی مبفًؼ کَ ثَ کبؿ ػیگـی ثپـػافػ. ٝولی کَ ثـای پبمغگْیی ثَ ّلفَ‬
                                     ‫اًزبم هی ىْػ ثَ ٝول مـّیل ّلفَ هْمْم امت.‬
 ‫یک تّْیش مبػٍ ػؿ هْؿػ ّلفَ ُب ، فًگ فػى تلفي یب ثَ ٍؼا ػؿآهؼى فًگ ػؿ هٌقل هی‬
 ‫ثبىؼ کَ هْرت هی گـػًؼ ىغٌ کبؿ اٍلی عْػ ؿا ؿُب ًوْػٍ ّکبؿ ػیگـی کَ ثبفکـػى ػؿ‬
                                        ‫ّیب ثـػاىتي گْىی تلفي امت، اًزبم ػُیؼ.‬

‫05‬
  ‫ّلفَ ُب هٞوْال ػّ ًْٛ هی ثبىٌؼ --آگبُبًَ : کَ ّلْٛ آى اف پیو هٞیي ّ هيغٌ امت.‬
       ‫ًبآگبُبًَ : کَ ثَ ٍْؿت اتفبلی ّ پیو ثیٌی ًيؼٍ اًؼ ّ هٞوْال ُوـاٍ ‪ alarm‬هی‬
                                                                          ‫ثبىٌؼ.‬

                       ‫‪O‬‬       ‫‪D‬‬         ‫‪I‬‬     ‫‪T‬‬       ‫‪S‬‬   ‫‪Z‬‬   ‫‪A‬‬     ‫‪P‬‬     ‫‪C‬‬
               ‫‪INT‬‬     ‫-‬       ‫-‬         ‫0‬     ‫0‬       ‫-‬   ‫-‬   ‫-‬     ‫-‬     ‫-‬
              ‫‪INTO‬‬     ‫-‬       ‫-‬         ‫0‬     ‫0‬       ‫-‬   ‫-‬   ‫-‬     ‫-‬     ‫-‬
              ‫‪IRET‬‬     ‫*‬       ‫*‬         ‫*‬     ‫*‬       ‫*‬   ‫*‬   ‫*‬     ‫*‬     ‫*‬

                                                                     ‫1-‪:E‬ػمتْؿالٞول ‪INT‬‬
  ‫ایي ػمتْؿالٞول یک ٝولًْؼ ػاؿػ کَ ایي ٝولًْؼ ٝؼػی ثیي 5.…552 هی ثبىؼ کَ 5 ٝؼػ‬
‫اّلی ػؿ ؿفؿّ مینتن ُنتٌؼ ( اٝوبلی هخل ‪ّ ، )….ALT+ ctrl+ Del , Devislan By Zero‬لفَ ُب‬
      ‫ثب ىوبؿٍ ُبیيبى فـاعْاًی هی گـػًؼ. ُـ ىوبؿٍ ىبهل یک ٝول ّیب چٌؼیي ٝول هی‬
                                                                                    ‫ثبىؼ.‬
‫‪ 1KB‬صبفَٚ (0000=‪ً Interrupt Veater ;(Segment=0000,offset‬بم ػاؿػ کَ ثَ 652 لنوت 4 ثبیتی‬
   ‫تمنین ىؼٍ امت ّ ُـ لنوت 4 ثبیتی آػؿك مـّیل ؿّتیي هـثْٓ ثَ آى ّلفَ ؿا ػؿ عْػ‬
                                                                         ‫ًگِؼاؿی هی کٌؼ.‬
                              ‫ٌُگبم ارـای ػمتْؿ ‪ 8086 int‬هـاصل فیـ ؿا اًزبم هی ػُؼ.‬
                                     ‫1: هضتْای ‪ Flag Register‬ؿا ثَ ‪ push ، stack‬هی ًوبیؼ.‬
                                                   ‫2: ثیت ُبی ‪ IF، TF‬ؿا ٍفـ هی ًوبیؼ.‬
                                                ‫3: حجبت ‪ CS‬ؿا ثَ ‪ push ،stack‬هی ًوبیؼ.‬
              ‫4: آػؿك ّلفَ ی هْؿػ ًٚـ ؿا ثب ّـة ٝولًْؼ ػؿ ٝؼػ 4 هضبمجَ هی ًوبیؼ.‬
         ‫5: ػّهیي کبؿ اف آػؿك هضبمجَ ىؼٍ ػؿ هـصلَ ی 4 ثَ حجبت ‪ Load ، CS‬هی ىْػ.‬
                                             ‫6: هضتْای حجبت ‪ ID‬ثَ ‪ push، stack‬هی گـػػ.‬
        ‫7: اّلیي کلوَ اف آػؿك هضبمجَ ىؼٍ ػؿ هـصلَ ی 4 ثَ حجبت ‪ Load ، ID‬هی گـػػ.‬
  ‫مؤال: چـا ‪ٍ IF‬فـ گؾاىتَ هی ىْػ ؟ چْى ّلفَ ُب یک ٝول اّؿژاًنی هی ثبىٌؼ ّ عیلی‬
    ‫مـیٜ ثبیؼ ثَ آًِب رْاة ػاػٍ ىْػ ّ ‪ً IF‬يبى ػٌُؼٍ ی اّلْیت ّلفَ امت یٌٞی اگـ1‬
     ‫ثبىؼ هی تْاًؼ ثمیَ ػمتْؿات ؿا اًزبم ػُؼ ّ ػؿ غیـ ایٌَْؿت فمٔ ّلفَ ارـا هی‬
                                                                                     ‫ىْػ.‬
    ‫مؤال: چـا ‪ TF‬ؿا ٍفـ هی گؾاؿین؟ اگـ ‪ TF‬یک ثبىؼ، پـػافًؼٍ ػؿ صبلت ‪DebugّTrace‬‬
          ‫کبؿ هی کٌؼ ّ ػمتْؿات ثَ ٍْؿت گننتَ ّ لبثل ؿػ گیـی ارـا هی ىْػ. ٍبصجبى‬
   ‫تکٌْلْژی تّْیش هی ػٌُؼ ثـای صف٘ امـاؿ کبؿی عْػ، ّلفَ ُب ؿا ثَ ٍْؿت پیْمتَ ّ‬
                                                                        ‫مـیٜ اًزبم ػٌُؼ.‬
                                                                   ‫2-‪ :E‬ػمتْؿالٞول ‪IRET‬‬
     ‫ایي ػمتْؿالٞول پبیبى ػٌُؼٍ ی یک ‪ّ( Interrupt‬لفَ) امت ّ همبػیـ ؿا مـ ربی اٍلی‬
                                                                 ‫عْػىبى ثبف هی گـػاًؼ.‬
                                                                  ‫3-‪ :E‬ػمتْؿالٞول ‪INTO‬‬
‫ایي ػمتْؿالٞول کَ هغفف )‪ ) Interrupt if over flow‬امت یک ػمتْؿ ثؼّى ٝولًْؼ امت ّ ّٙیفَ‬
   ‫ی آى چبپ پیغبم ‪ ّ Over Flow‬هتْلف کـػى ثـًبهَ ػؿ ٍْؿت ثـّف مـؿیق .‪ Over Flow‬امت‬
                           ‫اگـ ‪ٍ OF‬فـ ثبىؼ ّلفَ ثمیَ ی ػمتْؿات ؿا ارـا هی ًوبیؼ.‬
 ‫*هخبل: ثـًبهَ ای ثٌْینیؼ کَ یک ؿىتَ ؿا اف ّؿّػی ػؿیبفت ًوْػٍ ّ هٞکْك آى ؿا ػؿ‬
                                                                        ‫عـّری چبپ ًوبیؼ.‬

‫‪Str‬‬    ‫‪DB‬‬      ‫31,01,)?(‪80 dup‬‬
       ‫‪Mav‬‬     ‫20 , ‪AH‬‬      ‫----‬   ‫‪mav‬‬       ‫‪AH,0ZCH‬‬
       ‫‪int‬‬     ‫‪21 H‬‬                ‫‪int‬‬       ‫‪21H‬‬
‫‪Main : Proc‬‬   ‫‪for‬‬
       ‫‪mav‬‬     ‫08,‪cr‬‬
       ‫‪mav‬‬     ‫08,‪si‬‬
‫‪L‬‬    ‫‪: mav‬‬    ‫20,‪ch‬‬
       ‫‪dec‬‬     ‫‪si‬‬
       ‫‪int‬‬    ‫‪21H‬‬
       ‫‪mav‬‬     ‫‪str[si],al‬‬
       ‫‪Loop‬‬   ‫‪L‬‬
       ‫‪mav‬‬    ‫‪AH,09H‬‬
       ‫‪Lea‬‬    ‫‪dv,str‬‬
       ‫‪Int‬‬    ‫‪21H‬‬


‫15‬
  ‫هخبل:ثـًبهَ ای ثٌْینیؼ کَ یک کلیؼ ؿا اف ٍفضَ کلیؼ ػؿیبفت ًوْػٍ اگـ صـّف ثقؿگ‬
        ‫ثبىؼ پیغبم هـثْٓ ثَ آى ، اگـ صـّف کْچک ثبىؼ پیغبم هـثْٓ ثَ آى ّ ػؿ غیـ‬
                                             ‫ایٌَْؿت پیغبم هٌبمت ؿا چبپ ًوبیؼ.‬

 ‫‪.Stack‬‬      ‫‪DB‬‬      ‫‪80H‬‬   ‫)?(‪dup‬‬
 ‫‪.Data‬‬
  ‫‪letterkey‬‬  ‫‪DB‬‬      ‫'‪'you Pressed a Lower key' ,'s‬‬
  ‫‪Upperkey DB‬‬        ‫'‪'you Pressed an upper key ','s‬‬
  ‫‪Other key DB‬‬     ‫'‪'you Pressed an onother key' ,'s‬‬

        ‫---- ‪mav ax,@data‬‬            ‫‪mav dx,upperkey‬‬
        ‫‪mav ds,ax‬‬                    ‫‪int‬‬ ‫‪21H‬‬
        ‫1,‪mav al‬‬                    ‫‪jmp‬‬  ‫‪finish‬‬
‫‪int‬‬    ‫‪21H‬‬           ‫: ‪L‬‬     ‫90,‪mav al‬‬
        ‫'‪cmp al,'a‬‬                  ‫‪Lea‬‬   ‫‪dx,ctkerkey‬‬
  ‫‪int‬‬    ‫‪21H‬‬            ‫‪jb‬‬       ‫1‪L‬‬
        ‫'‪cmp al,'z‬‬         ‫‪finish : mav ax,4CH‬‬
        ‫‪ja‬‬   ‫1‪L‬‬                     ‫‪int‬‬  ‫‪21H‬‬
        ‫90,‪mav ah‬‬
        ‫‪Lea‬‬   ‫‪dx,latterkey‬‬
        ‫‪int‬‬  ‫‪21H‬‬
        ‫‪jmp‬‬  ‫‪finish‬‬
   ‫‪L1: cmp‬‬   ‫'‪al,'A‬‬
        ‫‪jb‬‬   ‫2‪L‬‬
        ‫'‪cmp al,'z‬‬
        ‫‪ja‬‬   ‫2‪L‬‬

 ‫‪String Pracessing Instructions‬ایي ؿػٍ اف ػمتْؿالٞول‬   ‫‪:F‬ػمتْؿالٞول ُبی پـػافه ؿىتَ‬
                                ‫ُب اف مَ رِت ثب ػمتْؿالٞول ُبی لجلی تفبّت ػاؿًؼ.‬
                  ‫1: ُـ ػّ ٝولًْؼ ایي ػمتْؿالٞول ُب ثبیؼ اف ًْٛ صبفَٚ ای ثبىٌؼ.‬
   ‫2: اًؼافٍ ی ػاػٍ ُب هی تْاًؼ تب ‪ 64KB‬ثبىؼ ّ هبًٌؼ ػمتْؿالٞول ُبی لجلی هضؼّػ‬
                                                               ‫ثَ 8 یب 61 ثیت ًینت.‬
          ‫3:ایي ػمتْؿالٞول ُب عْػ هی تْاًٌؼ ثـعی ػمتْؿالٞول ُب ؿا ثَْؿت پیيًْؼی‬
                                                                             ‫ثپؾیـًؼ.‬
‫ػؿ پـػافه ؿىتَ ُب، ؿىتَ ی هجؼاء ُوْاؿٍ ػف ‪ DS‬فـُ هی ىْػ ّ ؿىتَ ی همَؼ ػؿ ‪، ES‬‬
      ‫هٌْٚؿ اف ؿىتَ ی هجؼاء ، ؿىتَ ی امت کَ إالٝبتی ؿا اف آى هی عْاُین ّ ؿىتَ ی‬
                               ‫همَؼ ، ؿىتَ ی امت کَ تغییـاتی ػؿ آى اًزبم هی ىْػ.‬
                           ‫*: ًکبت فیـ ٌُگبم امتفبػٍ اف ػمتْؿات ثبیؼ ؿٝبیت ىًْؼ:‬
                                             ‫1:ْٕل ؿىتَ ؿا ػؿ حجبت ‪ CX‬لـاؿ هی ػُین.‬
                         ‫2:ؿىتَ ی هجؼاء ػؿ‪ ّ DS‬ؿىتَ ی همَؼ ػؿ ‪ ES‬تٞـیف هی گـػػ.‬
   ‫3:‪ offset‬آػؿك ؿىتَ ی هجؼاء ؿا ػؿ حجبت ‪ offset ّ SI‬ؿىتَ ی همَؼ ؿا ػؿ حجبت ‪ DI‬لـاؿ‬
                                                                             ‫هی ػُین.‬
     ‫4:رِت پـػافه ؿىتَ ؿا ثب امتفب ػٍ اف ػمتْؿالٞول ُبی ‪ STDّCLD‬هٞیي هی ًوبین.‬
    ‫ػمتْؿالٞول ‪ cld‬ثـای پـػافه ؿىتَ اف اثتؼا ثَ اًتِب ( 0=‪ ّ ) DF‬ػمتْؿ ‪ STD‬ثـای‬
                         ‫پـػافه ؿىتَ اف اًتِب ثَ اثتؼا (1=‪ )DF‬امتفبػٍ هی گـػػ.‬
  ‫5:ثب ُـ ثبؿ ارـای یکی اف ایي ػمتْؿالٞول ُب یک یب ػّ ّاصؼ ثَ حجبت ُبی ‪ SI‬یب ‪DI‬‬
                                                        ‫اّبفَ ّ یب اف آى کن هی ىْػ.‬
   ‫*:ایي ؿػٍ اف ػمتْؿالٞول ُب ثَ فیـ ؿػٍ ُبی (‪Scan ّ Compareّ Move ّ Repeat Perfix‬‬
                                     ‫ّ‪ ) Output ّ Input ّ Store ّ Load‬تمنین هی گـػًؼ.‬

          ‫‪Repeat Perfis‬‬                                         ‫1-‪:F‬پیيًْؼ ُبی تکـاؿ‬
     ‫ایي ؿػٍ اف ػمتْؿالٞول ُب ثَ ٌْٝاى یک پیيًْؼ ثـای تکـاؿ مبیـ ػمتْؿالٞول ُبی‬
              ‫پـػافه ؿىتَ ثَ تٞؼاػ ‪ ّ CX‬یب ىـایٔ هْؿػًٚـ، ثَ کبؿ گـفتَ هی ىًْؼ.‬
                        ‫)‪Rep (String Instruction‬‬                ‫1-1-‪:F‬ػمتْؿالٞول ‪Rep‬‬
            ‫ایي ػمتْؿالٞول ػؿ ُـ ارـا ّ ػؿ ٍْؿت هغبلف ٍفـ ثْػى هضتْای حجبت ‪، CX‬‬
      ‫ػمتْؿالٞول پـػافه ؿىتَ ؿا کَ ثَ ٌْٝاى ٝولًْؼ لجْل هی کٌؼ ، ارـا کـػٍ ّ یک‬
                                                 ‫ّاصؼ اف هضتْای حجبت ‪ CX‬کن هی ًوبیؼ.‬
                                             ‫‪Repz / Repe‬‬             ‫2-1-‪:F‬ػمتْؿالٞول‬

‫25‬
  ‫ایي ػمتْؿالٞول ، ػمتْؿالٞول همبثل عْػ ؿا کَ ثَ ٌْٝاى ٝولًْؼ لجْل هی کٌؼ ، تب‬
   ‫ٌُگبم ثـلـاؿ ثْػى ىـایٔ )0_ _‪ (ZF=1 , CX‬ارـا کـػٍ ّ ػؿ ُـ ارـا یک ّاصؼ اف حجبت‬
                                                                 ‫‪ CX‬کن هی ًوب یؼ.‬
                                         ‫‪Repnz / Repne‬‬            ‫3-1-‪:F‬ػمتْؿالٞول‬

    ‫ػؿ ٍْؿت ثـلـاؿ ی‬          ‫ایي ػمتْؿالٞول ، ىـایٔ )0_ _‪ (ZF=0 , CX‬ؿا ثـؿمی کـػٍ ّ‬
‫ُـ ػّ ىـٓ یک ّاصؼ اف حجبت ‪ CX‬کن کـػٍ ّ ػمتْؿالٞول همبثل عْػ ؿا ارـا هی ًوبیؼ.‬
                                          ‫ب‬
  ‫*:ُیچ کؼام اف ػمتْؿالٞول ُبی ایي فیـ ؿػٍ تَحیـی ثـ ؿّی حجبت پـچن )‪ً (flag‬ؼاؿًؼ.‬
                                                              ‫2-‪:F‬ػمتْؿالٞول ُبی ‪move‬‬
      ‫ایي ػمتْؿالٞول هْرت کپی کـػى یک ػاػٍ ی 8 یب 61 ثیتی اف فْبی ‪ DS‬کَ آػؿك آى‬
 ‫)‪ (offset‬ػؿ ‪ SI‬هی ثبىؼ. ثَ ًبصیَ ای اف فْبی ‪ ES‬کَ ‪ offset‬آى ػؿ حجبت ‪ DI‬هی ثبىؼ، هی‬
                      ‫ىْػ ّ یک یب ػّ ّاصؼ اف حجبت ‪ DI ّ SI‬کن یب ثَ آى اّبفَ هی ىْػ.‬
                                  ‫*:ایي ػمتْؿالٞول ثَ مَ ىکل همبثل لبثل امتفبػٍ امت:‬
 ‫‪Source Stringّ1: movs dest string‬‬
‫‪2: movsb‬‬
‫‪3: movsw‬‬
    ‫*:هخبل:فـُ ًوبییؼ ‪ Sourceّ dest‬ػّ هکبى اف صبفَٚ ثَ اًؼافٍ ی 00002 ثبیت ثبىٌؼ.‬
           ‫لَٖٞ ثـًبهَ ای ثٌْینیؼ کَ ًبصیَ ی ‪ Source‬ؿا ثَ ًبصیَ ی ‪ dest‬کپی ًوب یؼ:‬
‫)?(‪Source db 20000 Dup‬‬        ‫‪;Definded in‬‬   ‫‪DS‬‬
‫‪des‬‬       ‫)?(‪db 20000 Dup‬‬      ‫‪;Definded in‬‬  ‫‪ES‬‬
‫‪Lea‬‬      ‫‪si,source‬‬
‫‪Lea‬‬      ‫‪di, es:dest‬‬
‫‪mav‬‬      ‫00002 ,‪ax‬‬
‫‪CLD‬‬
‫‪Rep‬‬      ‫‪movs dest,source‬‬

     ‫*:ػمتْؿالٞول ُبی فیـ ؿػٍ ی ‪ Move‬تٌِب یب پیيًْؼ تکـاؿ ‪ mov‬لبثل امتفبػٍ اًؼ.‬
                                               ‫*:ٝولکـػ لَٖٞ ثـًبهَ ی فیـ چینت؟‬



‫‪ES:DS‬‬
    ‫1‪Pat‬‬     ‫‪DB‬‬    ‫'‪'PROG‬‬
    ‫2‪Pat‬‬     ‫‪DB‬‬    ‫'‪'RAM‬‬
    ‫3‪Pat‬‬     ‫‪DB‬‬     ‫12‬    ‫)?(‪DUP‬‬


            ‫‪mav‬‬       ‫‪ax,ds‬‬
‫‪cs,ax‬‬              ‫‪mav‬‬
              ‫‪mav‬‬    ‫12,‪cb‬‬
              ‫‪Lea‬‬    ‫1‪si,Pat‬‬
              ‫‪Lea‬‬    ‫3‪di,pat‬‬
                 ‫‪CLD‬‬
              ‫‪Rep‬‬    ‫‪movsb‬‬
    ‫*:چْى ػاػٍ ُبیی کَ ثَ ٍْؿت پيت مـ ُن تٞـیف هی ىًْؼ ثَ ُوبى ٍْؿت ػؿ صبفَٚ ربی‬
               ‫هی گیـًؼ.ثـًبهَ مَ ثبؿٝجبؿت ‪ PROGRAM‬ؿا ػؿ ؿىتَ ی 3‪ Pat‬هی ًْینیؼ.‬
     ‫*:چْى ػؿ مٖـ اّل تٞـیف ًوْػٍ این ‪ ES:DS‬ػؿ عْٖٓ ثٞؼی ًیبفی ثَ ؽکـ ًبم مگوٌت‬
                           ‫)‪ (ES‬لجل اف هتغییـُبی تٞـیف ىؼٍ ػؿ آى ًؼاؿین )3‪. (Lea di, Pat‬‬
                                                        ‫3-‪:F‬ػمتْؿالٞول ُبی ‪Compare String‬‬
     ‫ایي ؿػٍ اف ػمتْؿالٞول ُب یک ػاػٍ ی ثبیتی )8 ثیت) یب کلوَ ای (61 ثیت) اف فْبی‬
 ‫‪ DS‬ؿا کَ ثغو ‪ offset‬آى ػؿ حجبت ‪ SI‬هی ثبىؼ ثب ػاػٍ ای اف ًبصیَ ی ‪ ES‬کَ ثغو ‪offset‬‬
     ‫آى ػؿ حجبت ‪ DI‬هی ثبىؼ، اف ٕـیك تفبّل همبینَ ًوْػٍ ًّتیزَ ؿا ػؿ ثیت ُبی حجبت‬
    ‫پـچن )‪ (flag‬هٌٞکل هی ًوبیؼ ، ُوچٌیي ثَ افای ُـ ارـا یک یب ػّ ّاصؼ ثَ حجبت ‪ّ SI‬‬
            ‫‪ DI‬اّبفَ یب اف آى کن هی کٌؼ. ایي ػمتْؿ ثَ ٍْؿت لبثل امتفب ػٍ هی ثبىؼ.‬
                                                              ‫; ‪Cmps dest string,source string‬‬
                                                                                     ‫‪Cmpsb‬‬
                                                                                     ‫‪Cmpsw‬‬


‫35‬
                                                                                        ‫ب‬
                               ‫* تَحیـ ایي ػمتْؿات ثـ ؿّی ‪ flag Register‬ثَ ٍْؿت فیـ هی ثبىؼ.‬


                                ‫‪O‬‬         ‫‪D‬‬         ‫‪I‬‬        ‫‪T‬‬    ‫‪S‬‬          ‫‪Z‬‬      ‫‪A‬‬       ‫‪P‬‬   ‫‪C‬‬

                   ‫‪CMPS‬‬         ‫*‬         ‫-‬         ‫-‬         ‫-‬   ‫*‬          ‫*‬       ‫*‬      ‫*‬   ‫*‬

                 ‫‪CMPSB‬‬           ‫*‬        ‫-‬         ‫-‬         ‫-‬    ‫*‬         ‫*‬       ‫*‬      ‫*‬   ‫*‬

                 ‫‪CMPSW‬‬           ‫*‬        ‫-‬         ‫-‬         ‫-‬    ‫*‬         ‫*‬       ‫*‬      ‫*‬   ‫*‬


       ‫*:هخبل:ثب تْرَ ثَ تٞـیف ؿىتَ ُبی 1‪ ، Str2 ّ Str‬لَٖٞ ثـًبهَ ای ثٌْینیؼ کَ:‬
  ‫‪ )c‬اّلیي هکبى تٖبثك ؿا ثَ ػمت آّؿػ:‬       ‫‪ ) a‬اّلیي هکبى ٝؼم تٖبثك ؿا ثیبثیؼ:‬
    ‫‪ )d‬آعـیي هکبى تٖبثك ؿا ثَ ػمت آّؿػ:‬     ‫‪ ) b‬آعـیي هکبى ٝؼم تٖبثك ؿا ثیبثیؼ:‬
      ‫‪ )e‬توبم هکبى ُبی ٝؼم تٖبثك ؿا اف ؿىتَ ی هجؼاء ثَ ؿىتَ ی همَؼ کپی ًوب یؼ:‬
‫0001 ‪Str1 DB‬‬     ‫)?(‪dap‬‬
‫0001 ‪Str2 DB‬‬     ‫)?(‪dap‬‬

‫)‪A‬‬  ‫0001,‪mav cx‬‬                      ‫)‪B‬‬       ‫‪mav‬‬       ‫0001,‪cx‬‬
    ‫‪CLD‬‬                                       ‫‪STD‬‬
‫‪Lea‬‬   ‫999+1‪si,str‬‬                                                         ‫‪Lea‬‬    ‫1‪si,str‬‬
‫‪Lea‬‬   ‫999+2‪di,str‬‬                                                      ‫‪2Lea‬‬   ‫‪di,str‬‬
    ‫‪Repe cmpsb‬‬                                  ‫‪Repe cmpsb‬‬
    ‫‪jcxz‬‬     ‫‪not-found‬‬                        ‫‪jcxz‬‬  ‫‪not-found‬‬




‫)‪C‬‬     ‫0001,‪mav cx‬‬                   ‫)‪D‬‬   ‫‪mav‬‬           ‫0001,‪cx‬‬
       ‫‪CLD‬‬                                ‫‪STD‬‬
‫‪Lea‬‬      ‫999+1‪si,str‬‬                                                  ‫‪Lea‬‬    ‫1‪si,str‬‬
‫‪Lea‬‬      ‫999+2‪Di,str‬‬                                              ‫‪2Lea‬‬    ‫‪Di,str‬‬
       ‫‪Repne cmpsb‬‬                          ‫‪Repne cmpsb‬‬
       ‫‪jcxz‬‬     ‫‪not-found‬‬                 ‫‪jcxz‬‬   ‫‪not-found‬‬




‫)‪E‬‬     ‫‪mav‬‬      ‫0001,‪cx‬‬          ‫------‬   ‫‪mav sb‬‬
       ‫‪CLD‬‬                                ‫‪jmp‬‬    ‫‪Rem‬‬
                 ‫----:‪finish‬‬                                               ‫‪Lea‬‬    ‫1‪si,str‬‬
‫‪Lea‬‬     ‫2‪Di,str‬‬
‫:‪rem‬‬   ‫‪Repne cmpsb‬‬
       ‫‪jcxz‬‬     ‫‪finish‬‬
       ‫‪Dec‬‬      ‫‪si‬‬
       ‫‪Dec‬‬      ‫‪Di‬‬
                                                    ‫4-‪:F‬ػمتْؿالٞول ُبی ‪Scan String‬‬
   ‫ایي ؿػٍ اف ػمتْؿالٞول ُب هضتْای حجبت ‪ AX‬یب ‪ AL‬ؿا ثَ تـتیت ثب ػاػٍ ای ثَ‬
  ‫ْٕل 61 یب 8 ثیت افصبفَٚ ی ‪ ES‬کَ آػؿك ‪ offset‬آى ػؿ حجبت ‪ DI‬هی ثبىؼ همبینَ ًوْػٍ‬
 ‫ّ ثـ ؿّی ثیت ُبی حجبت پـچن )‪ )flag‬احـ هی گؾاؿًؼ ، ایي ػمتْؿالٞول ػؿ ُـ ثبؿ ارـا‬
    ‫یک یب ػّ ّاصؼ اف حجبت ‪ DI‬کن یب ثَ آى اّبفَ هی ًوبیؼ ، ایي ػمتْؿ ًیق ُوبًٌؼ‬
                         ‫مبیـ ػمتْؿات پـػافه ؿىتَ ثَ مَ ٍْؿت لبثل امتفبػٍ امت.‬
                                                                    ‫‪Scas dest String‬‬
                                                                              ‫‪Scasb‬‬
‫45‬
                                                                                 Scasw
                                                                                  ‫ب‬
                                .‫ ثَ ٍْؿت فیـ امت‬flag ‫* تَحیـایي ػمتْؿات ثـؿّی ثیت ُبی‬


                 O      D            I     T         S   Z      A        P       C

      SCAS       *       -           -     -         *   *      *        *       *

     SCASB        *      -           -     -         *    *      *       *       *

     SCASW        *      -           -     -         *    *      *       *       *


           ّ َ‫* هخبل:لَٖٞ ثـًبهَ ای ثٌْینیؼ کَ یک ؿىتَ ی 008 ثبیتی ؿا ػؿًٚـ گـفت‬




                          Str   DB 800 dup(?)            .‫ؿا ثیبثؼ‬     Space   ‫هغبلف‬   ‫هکبى‬    ‫اّلیي‬    )A
                                 A) mav cx,800           .‫ػمت آّؿػ‬     َ‫ؿا ث‬   Space   ‫هکبى‬    ‫اّلیي‬    )B
                  CLD                                    .‫ػمت آّؿػ‬     َ‫ؿا ث‬   Space   ‫هکبى‬    ‫آعـیي‬    )C
* ‫ ؿا ثب‬Space ‫) هکبى ُبی‬Lea E              di,es:str     .‫ؿا ثیبثؼ‬     Space   ‫هغبلف‬   ‫هکبى‬    ‫آعـیي‬    )D
                                                          mav al,' '                          .‫ًوبیؼ‬    ‫پـ‬
 Repe scas str
jcxz not-found

B) mav cx,800                   C) mav cx,800
CLD                                                            STD
Lea di,es:str +799      Lea di,es:str
mav     al,' '                                                  mav al,' '
    Repne scas str              jcxz     not-found                               Repne    scas    str
jcxz not-found


D) mav cx,800                   E)
STD
        Lea di,es:str + 799
    mav al,' '
           Repe scas str
    jcxz not-found

   ‫* هخبل :لَٖٞ ثـًبهَ ای ثٌْینیؼ کَ ػؿ یک لینت 008 ثبیتی اف اٝؼاػ ٍضیش ثَ ربی‬
                                                     .‫ٝؼػ 0 ، 1- ؿا ربیگقیي ًوبیؼ‬
List DW 800 dup(?)         mav word ptr es:[di-2],-1
mav cx,800                         jmp R
      cld              finish: = ----
         lea di,es:str
      mav ax,0
 R: repe scasw
      jcxz finish

                                                    Load string ‫:ػمتْؿالٞول ُبی‬F-5
  ‫ آى ػؿ‬offset َ‫ ک‬DS ‫ایي ؿػٍ اف ػمتْؿالٞول ُب یک ػاػٍ ی 8 یب 61 ثیتی ؿا اف فْبی‬
 ّ‫ ًوْػٍ (ثبؿ گؾاؿی هی ًوبیؼ) ّ یک یب ػ‬Lood ، ax ‫ یب‬al ‫ هی ثبىؼ ثَ حجبت‬SI ‫حجبت‬
      ‫ اّبفَ یب اف آى کن هی کٌؼ ّ ایي ػمتْؿالٞول ًیقُوبًٌؼ مبیـ‬SI ‫ّاصؼ ثَ حجبت‬
                           .‫ػمتْؿات پـػافه ؿىتَ ثَ مَ ٍْؿت لبثل امتفبػٍ هی ثبىؼ‬
                                                                 Lods  Source String
                                                                              Lodsb
                                                                           Lodsw

55
                                         ‫ب‬
                             .‫*:ایي ػمتْؿالٞول ُب ثـؿّی حجبت پـچن تَحیـی ًؼاؿًؼ‬
‫ ثب ایي ؿػٍ اف ػمتْؿالٞول ُب کبؿثـػی‬Repne ّ Repe ‫*:ثَ کبؿگیـی ػمتْؿات پیو ًّؼی‬
                                                                         .‫ًؼاؿػ‬
   .‫ هٌتمل ًوبیؼ‬al َ‫ ؿا ث‬space ‫* هخبل:تکَ ثـًبهَ ای ثٌْینیؼ کَ اّلیي هکبى هغبلف‬

     Dup(?) 1000Str db
        Lea si,str
        mav cx,1000                           cld

           mav al,20H;---- 20H = ----
         rep   scasb
       jcxz finish
        dec si ; ------
                     mav al,[si-1]
         Loadsb ;

                                                         Storc String ‫:ػمتْؿالٞول ُبی‬F-6
    offset ‫ کَ ثغو‬es ‫ ؿا ثَ ًبصیَ ای اف فْبی‬al ‫ یب‬ax ‫ایي ػمتْؿالٞول ُب هضتْای حجبت‬
   ‫ اّبفَ یب اف‬di ‫ هی ثبىؼ اًتمبل ػاػٍ ّ یک یب ػّ ّاصؼ ثَ حجبت‬di ‫آػؿك آى ػؿ حجبت‬
                     .‫آى کن هی کٌؼ. ایي ػمتْؿالٞول ًیق ثَ مَ ٍْؿت لبثل امتفبػٍ امت‬
                                                                           Stas dest string
                                                                                     Stasb
                                                                                    Stasw
            .‫ ؿا ثب کبؿاکتـ --پـ ًوبیؼ‬data segment ‫*هخبل:لَٖٞ ثـًبهَ ای ثٌْینیؼ کَ کل‬
push ds
pap     es
mav cx,FFFFH
mav al,20H ; ---- characters asci -- code is 20H
xor     si,si
rep     stasb

    ‫*هخبل: ثـًبهَ ای ثٌْینیؼ کَ یک ؿىتَ ثَ ْٕل صؼاکخـ 08 ثبیت ؿا اف ّؿّػی ػؿیبفت‬
    .‫کـػٍ مپل ًبم صـّف کْچک آى ؿا ثَ صـّف ثقؿگ تجؼیل ًوْػٍ ّ ػؿ عـّری چبپ ًوبیؼ‬
madel small
data
      str DB 80 dup(?)
stack 100H
code

      mav ax,@ data
        mav ds,ax
        mav es,ax
        mav cx,80
LBL1 : mav ah,1              ;
        int    21H           ; To read a character from keyboord
        mav str[si],al       ; copy the enterd character to al
        inc    si
        cmp     al,13        ; compare enterd key with (Enter--)
        Loopne LBL1
        mav     cx,si
        Lea      si,str
        mav      di,si
        dd
LBL3 : Loadsb
         cmp      al, 'a'
         jb       LBL2
         cmp      al, 'z'
         ja       LBL2
           sub       al,32   ; convert a Lawer case character to upper case
LBL2 : stasb
56
          ‫‪Loop‬‬   ‫3‪LBL‬‬
          ‫‪Lea‬‬    ‫1‪dx,str‬‬
          ‫‪mav‬‬    ‫9,‪al‬‬
          ‫‪int‬‬   ‫‪21H‬‬         ‫‪; show the array (string) in maniter‬‬
          ‫‪mav‬‬   ‫‪ah,4CH‬‬
          ‫‪int‬‬  ‫‪21H‬‬          ‫‪; End ok program‬‬
          ‫‪end‬‬
‫*هخبل:لَٖٞ ثـًبهَ ای ثٌْینیؼ کَ ٍفضَ ًوبیو ؿا ثب 0 پـ ًوبیؼ.‬
‫‪push ds‬‬
‫‪mav‬‬    ‫‪ax,OB800H‬‬       ‫‪; Address of moniter‬‬
‫‪mav‬‬    ‫‪ds,ax‬‬
‫‪mav‬‬    ‫0002,‪cx‬‬          ‫‪; 25 row x80 columns arailable‬‬
‫‪mav‬‬    ‫0,‪di‬‬
‫‪cld‬‬
‫‪mav‬‬    ‫0,‪al‬‬
‫‪mav‬‬    ‫‪stasb‬‬
‫‪pop‬‬    ‫‪ds‬‬
                                                                 ‫7-‪:F‬ػمتْؿالٞول ُبی ‪Input String‬‬
‫ایي ؿػٍ افػمتْؿالٞول ُب کَ ثغًَْ مینتن ُبی ثبالتـ اف 68208 هی ثبىؼ. یک ػاػٍ ی 8‬
   ‫یب 61 ثیتی ؿا اف ػمتگبٍ ربًجی کَ ىوبؿٍ ی ‪ port‬یب ػاػٍ ی آى ػؿ حجبت ‪ DX‬هی ثبىؼ‬
    ‫ػؿیبفت ًوْػٍ ّآى ؿا ػؿ هکبًی اف صبفَٚ ی ‪ es‬کَ ثغو ‪ offset‬آػؿك آى ػؿ حجبت ‪ di‬هی‬
  ‫ثبىؼ اًتمبل ػاػٍ ّ یک یب ػّ ّاصؼ ثَ حجبت ‪ di‬اّبفَ هی ًوبیؼ ّ ثَ مَ ٍْؿت همبثل‬
                                                                               ‫لبثل امتفبػٍ امت.‬
                                                                                ‫‪ins‬‬  ‫‪dest string , dx‬‬
                                                                                                 ‫‪insb‬‬
                                                                                                ‫‪insw‬‬

  ‫*ػمتْؿات ‪ّ ّ in‬لفَ ُبیی کَ ػاػٍ ُب ؿا ػؿیبفت هی ًوبیؼ اف ٕـیك پـػافًؼٍ ّ حجبت‬
           ‫اًتمبل پیؼا هی کـػًؼ. اهب ػؿایي ؿّه هنتمل اف حجبت ُب ٝول هی ًوبیین.‬
 ‫*هخبل:لَٖ ثـًبهَ ای ثٌْینیؼ کَ یک ؿىتَ ی 08 ثبیتی ؿا اف یک ػمتگبٍ ربًجی ثبآػؿك‬
                                   ‫‪ 100H‬ػؿیبفت ًوْػٍ ّ ػؿ هتغییـ ‪ str‬لـاؿ ثؼُؼ.‬

‫‪Str‬‬   ‫)?(‪db 80 dup‬‬
      ‫‪mav dx,100H‬‬                    ‫08,‪mav cx‬‬

      ‫‪cld‬‬
               ‫‪lea‬‬   ‫‪di,str‬‬
       ‫‪rep‬‬      ‫‪ins str,dx‬‬
                                                         ‫8-‪: F‬ػمتْؿات ‪Output String‬‬
  ‫ایي ػمتْؿالٞول ُب یک ػاػٍ ی8 یب 61 ثیتی اف ًبصیَ ی ‪ ds‬فا کَ ػؿ ثغو ‪ offset‬آػؿك‬
      ‫آى ػؿحجبت ‪ SI‬هی ثبىؼ ، ثَ یک ػمتگبٍ ربًجی کَ آػؿك یب ‪ port‬آى ػؿ حجبت ‪ DX‬هی‬
                          ‫ثبىؼ هٌتمل هی کٌؼ ّ ثَ مَ ٍْؿت همبثل لبثل امتفبػٍ اًؼ.‬
‫‪Outs‬‬   ‫‪dx,Source string‬‬
 ‫‪Outsb‬‬
‫‪Outsw‬‬

‫*هخبل:لَٖ ثـًبهَ ای ثٌْینیؼ کَ ؿىتَ ی ‪ str‬ثَ ْٕل 08 ثبیت ؿا ثَ ػمتگبٍ عـّری ثب‬
   ‫‪mav dx,378H‬‬                                   ‫ىوبؿٍ ی آػؿك ‪ 378H‬هٌتمل ًوبیؼ.‬

‫08,‪mav cx‬‬
‫‪lea‬‬  ‫‪si,str‬‬                                  ‫‪cld‬‬

‫‪rep‬‬    ‫‪outsb‬‬

 ‫1-‪:Processor Control Instructions G‬ػمتْؿالٞول‬  ‫‪ :G‬ػمتْؿالٞول ُبی کٌتـل پـػافًؼٍ‬
                                       ‫‪flag operation Instructions‬‬            ‫ُبی ‪flag‬‬
  ‫ایي فیـ ؿػٍ اف ػمتْؿالٞول ُب تْاًبیی تغییـ ػاػى ثیت ُبی حجبت پـچن ؿا ػاؿا هی‬
                                                                                ‫ثبىٌؼ.‬
                                                                   ‫‪G-1-1 :CLC‬‬     ‫0=‪CF‬‬
‫75‬
‫‪G-1-2 :STC‬‬       ‫1=‪CF‬‬
‫‪G-1-3 :SMC‬‬       ‫1-‪CF—CF‬‬
‫‪G-1-4 :CLD‬‬       ‫0=‪DF‬‬
‫‪G-1-5 :STD‬‬       ‫1=‪DF‬‬
‫‪G-1-6 :CLI‬‬       ‫0=‪IF‬‬
‫‪G-1-7 :SLI‬‬        ‫1=‪IF‬‬

                                         ‫2-‪:G‬ػمتْؿالٞول ُبی ُوبٌُگ کٌٌؼٍ ی عبؿری‬
                                                      ‫‪External Synchrnization Instructions‬‬
       ‫پـػافًؼٍ ی ----6808 ثَ گًَْ ای ٕـاصی ىؼٍ امت کَ تْاًبیی پيتیجبًی اف چٌؼیي‬
           ‫پـػافًؼٍ ؿا ػاؿػ ػمتْؿالٞول ُبی ایي ؿػٍ ثـای کٌتـل ّ مبهبى ػُی ثَ ایي‬
                                                      ‫پـػافًؼٍ ُب ثَ کبؿ هی ؿًّؼ.‬
                                                         ‫1-2-‪:G‬ػمتْؿالٞول ‪(halt) : HLT‬‬
‫فهبًی کَ ایي ػمتْؿالٞول ثـای یک پـػافًؼٍ ثَ کبؿ هی ؿّػ پـػافًؼٍ ػؿ صبلت ثیکبؿ‬
‫)‪ (Idle‬لـاؿ گـفتَ ّ اف ارـای ُـ ػمتْؿالٞول مـثبف هی فًؼ تب ٌُگبهی کَ هزؼػَ ‪Reset‬‬
       ‫ا‬
                                                                                    ‫ىْػ.‬
                                                            ‫2-2-‪:G‬ػمتْؿالٞول ‪: WAIT‬‬
  ‫ایي ػمتْؿالٞول ًیق ُوبًٌؼ ػمتْؿالٞول ‪ HLT‬پـػافًؼٍ ؿا ػؿ صبلت ‪ Idle‬لـاؿ هی ػُؼ‬
‫ثب ایي تفبّت کَ پـػافًؼٍ ثَ افای ُـ 5 ثبلل گؾؿگبٍ ػاػٍ ؿا ثـؿمی هی ًوبیؼ ّ ػؿ‬
‫ٍْؿتی کَ ػمتْؿی هـتجٔ ثَ ایي پـػافًؼٍ ػؿ گؾؿکبٍ هْرْػ ثبىؼ هزؼػَ ثَ صبلت ٝبػی‬
                ‫ا‬
                                                                     ‫عْػ ثبف هی گـػػ.‬
                                                               ‫3-2-‪: G‬ػمتْؿالٞول ‪ESC‬‬
  ‫ایي ػمتْؿالٞول پـػافًؼٍ ؿا اف ػّؿ ارـا عبؿد هی ًوبیؼ ثؼیي هٌٞی کَ ػمتْؿالٞول‬
        ‫ػؿیبفت ىؼٍ ثَ گؾؿگبٍ ػاػٍ ثبف گـػاًؼٍ هی ىْػ تب ػیگـ پـػافًؼٍ ُب یب کوک‬
    ‫پـػافًؼٍ ُب آى ؿا ارـا ًوکبیٌؼ ػمتْؿالٞول ثبفگـػاًؼٍ ىؼٍ تب ٌُگبهی کَ ارـا‬
‫ًيؼٍ امت ثَ پـػافًؼٍ ی هقثْؿ ثبفگـػاًؼٍ ًغْاُؼ ىؼ ُوچٌیي ًٚبؿت پـػافًؼٍ پل اف‬
                        ‫ثبفپل فػى یک ػمتْؿالٞول ًنجت ثَ آى گؾؿگبٍ اف ثیي هی ؿّػ.‬
                                                                            ‫4-2-‪:----:G‬‬
         ‫ایي ػمتْؿالٞول هْرت هی ىْػ گؾؿگبٍ تب پبیبى ارـای یک ػمتْؿالٞول ثَ ٍْؿت‬
‫اًضَبؿی رِت امتفبػٍ ی پـػافًؼٍ ی هْؿػًٚـ لفل ---- ىْػ ایي ػمتْؿالٞول ُب هٞوْال‬
‫َ‬
                                                ‫ثَ ٍْؿت پیيًْؼی امتفبػٍ هی گـػػ.‬
                                                   ‫)‪(No Operation‬‬     ‫3-‪: G‬ػمتْؿالٞول‬
  ‫ایي ػمتْؿالٞول ػؿ صمیمت ُیچ ٝولی اًزبم ًوی ػُؼ ّ تٌِب ثـای پـ کـػى صبفَٚ امت‬
            ‫یٌٞی کبؿ ایي ػمتْؿالٞول افقّػى یک ّاصؼ ثَ ‪ٌُ IP‬گبم ارـای ثـًبهَ امت.‬
    ‫ٌُگبهی کَ ثَ ‪ Source‬یک ثـًبهَ ػمتـمی ًؼاؿین ّ هی عْاُین یک ػمتْؿالٞول ؿا اف‬
   ‫فبیل ‪ exe‬صؾف ًوبیین چْى آػؿك ػُی ػؿ فبیلِبی ‪ exe‬ثَ ٍْؿت ًنجی اًزبم هی ىْػ ثب‬
  ‫صؾف یک ػمتْؿالٞول کل ثـًبهَ ثَ ُن هی عْؿػ ػؿ ایي هْالٜ هی تْاى اف ػمتْؿالٞول‬
                     ‫‪ Nop‬ثـای پـ کـػى فْبی عبلی ػمتْؿالٞول صؾف ىؼٍ امتفبػٍ ًوْػ.‬
     ‫‪Macro‬‬                                                                      ‫هبکـُّب‬
   ‫یکی اف هفبُیوی کَ ػؿ ثـًبهَ ًْینی ػؿ فثبى اموجلی ؿا مبػٍ تـ هی کٌٌؼ. هفِْهی‬
   ‫ثَ ًبم هبکـُّب امت، هبکـُّب ىجیَ ثَ فیـ ثـًبهَ ُب ُنتٌؼ ثب ایي تفبّت کَ ًوی‬
  ‫تْاى ثَ فیـ ثـًبهَ ُب ػؿ اموجلی پبؿاهتـ ---- کـػ لیکي هبکـُّب تْاًبیی ػؿیبفت‬
      ‫ّ تغییـ پبؿاهتـ ُب ؿا ػاؿًؼ تفبّت ػیگـ هبکـُّب ّ فیـ ثـًبهَ ُب ػؿ ًضٍْ ی‬
      ‫کبهپبیل ّ تـروَ امت. فیـثـًبهَ ُب ّ ثـًبهَ ثَ ٍْؿت هزقا اف ُن کبهپبیل هی‬
   ‫گـػًؼ اهب ٌُگبم تـروَ ّلتی کَ کبهپبیلـ (هتـرن) ثَ هبکـّ (فـاعْاًی یک هبکـّ)‬
         ‫هی ؿمؼ ثؼًَ ی هبکـّ ؿاػؿ ثـًبهَ کپی کـػٍ ّ پبؿاهتـُبی ّالٞی ؿا ربیگقیي‬
                ‫پبؿاهتـ ُبی هزبفی هی ًوبیؼ ّ ثَ ُوـاٍ عْػ ثـًبهَ تـروَ هی ًوبیؼ.‬

                                                                   ‫ًضٍْ تٞـیف یک هبکـّ‬
‫‪macro-name‬‬   ‫‪Macro‬‬    ‫‪(Virtaal‬‬   ‫‪Parameters‬‬   ‫)‪list‬‬
             ‫:‬
             ‫:‬
             ‫‪Macro-body‬‬
             ‫:‬
             ‫:‬
             ‫‪Endm‬‬

‫‪Virtaal Parameters‬‬  ‫*:ػؿ لنوت ‪ً ، macro-name‬بهی ثـای هبکـّ اًتغبة ًوْػٍ ّ ػؿ لنوت‬
   ‫‪ ، list‬لینت پبؿا هتـُبی هزبفی ّ ٍْٞػی ؿا هی ًْینین . ػؿ لنوت ‪ ، Macro-body‬ثؼًَ‬
‫85‬
  ‫ی هبکـّ ّ ػمتْؿالٞول ُبیی ؿا کَ هی عْاُین هبکـّ اًزبم ػُؼ ؽکـ هی کٌین . ىجَ‬
                        ‫ػمتْؿالٞول ‪ً ، endm‬يبى ػٌُؼٍ ی پبیبى تٞـیف هبکـّ امت.‬
                                                         ‫ًضٍْ ی فـاعْاًی هبکـّ‬
‫ثـای فـاعْاًی یک هبکـّ پل اف ؽکـ ًبم آى پبؿاهتـُبی ّالٞی ؿا ؽکـ کـػٍ ّ ثـًبهَ‬
       ‫ی فـاعْاًٌؼٍ ، پبؿاهتـُبی ّالٞی ؿا ثب پبؿاهتـُبی هزبفی ربیگقیي ًوْػٍ ّ‬
                                         ‫ػمتْؿالٞول ُبی هبکـّ ؿا اًزبم هی ػُؼ.‬
    ‫*:ًکتَ ی لبثل تْرَ ٌُگبم امتفبػٍ اف هبکـُّب ایي امت کَ چْى ػمتْؿالٞول ُبی‬
   ‫هْرْػ ػؿ ثؼًَ ی هبکـّ هوکي امت هضتْای حجبت ُب ؿا تغییـ ػاػٍ ّاف ثیي ثجـًؼ،‬
 ‫ثِتـامت ػؿاثتؼای هبکـّ حجبتِبی امتفبػٍ ىؼٍ ؿا ‪ً push‬وْػٍ ّ ػؿ پبیبى ثبامتفبػٍ‬
                                ‫افػمتْؿ ‪ pop‬تَبّیـ لجلی ؿاثَ آًِب ثبفگـػاًین .‬

      ‫*هخبل: هب کـّیی ثٌْینیؼ کَ هزوْٛ ػّ هکبى اف صبفَٚ ؿا ػؿهکبى مْم لـاؿػُؼ.‬
‫‪Sum macro a,b,c‬‬
    ‫‪Push a‬‬
    ‫‪mav‬‬    ‫‪ax,a‬‬
    ‫‪add‬‬    ‫‪ax,b‬‬
    ‫‪mav‬‬    ‫‪c,ax‬‬
    ‫‪popa‬‬
    ‫‪Endm‬‬

     ‫*:هضل تٞـیف هبکـُّب ثِتـ امت ػؿ آغبف یب پبیبى یک فبیل ّ یب ػؿ یک فبیل هزقا‬
                                                                          ‫ثبىؼ.‬
      ‫*:هبکـُّب هی تْاًٌؼ ثَ ٍْؿت تْػؿتْ تٞـیف ّ یب امتفبػٍ گـػًؼ. *:هبکـُّب هی‬
                                          ‫تْاًٌؼ ثَ ٍْؿت ثبفگيتی ُن تٞـیف ىًْؼ.‬
                    ‫*:ُـ هبکـّ هی تْاًؼ هبکـّ ُبی ُن مٖش عْػ ؿا فـاعْاًی ًوبیؼ.‬

                                            ‫ىجَ ػمتْؿالٞول ُبی هـتجٔ ثب هبکـُّب‬
                                                       ‫1: ىجَ ػمتْؿالٞول ‪: SALL‬‬
   ‫ایي ىجَ ػمتْؿالٞول اف تْمَٞ ی ثؼًَ ی هبکـّ ػؿ فبیل ‪ Listing‬رلْگیـی هی ًوبیؼ.‬
‫ثؼًَ ی تبثٜ هی تْاًؼ هفیؼ ثبىؼ ّ‬     ‫ایي ىجَ ػمتْؿالٞول ٌُگبم امتفبػٍ ی هکـؿ ػؿ‬
                                         ‫اف افقایو صزن ‪ Listing‬عْػػاؿی هی ًوبیؼ.‬

                                                         ‫2: ىجَ ػمتْؿالٞول ‪: LALL‬‬
             ‫ایي ىجَ ػمتْؿالٞول هْرت تْمَٞ ی ثؼًَ ی هبکـّ ػؿ فبیل‪ Listing‬هی ىْػ.‬
         ‫*:ػؿ ٍْؿتی کَ ثغْاُین ‪ُ commant‬ب ّ تّْیضبت ًْىتَ ىؼٍ ػؿ ثـًبهَ ػؿ فبیل‬
                ‫‪ًْListing‬ایو ػاػٍ ًيْػ،ثبیؼ اف 2);( یٌٞی ثَ ٍْؿت );;( امتفبػٍ ًوْػ.‬
                                                       ‫3: ىجَ ػمتْؿالٞول ‪: LOOAL‬‬
   ‫ایي ىجَ ػمتْؿالٞول ثـچنت ُب ّ ىٌبمَ ُبی ػاعل یک هبکـّ ؿا ثَ ٌُگبم ثنٔ هبکـّ‬
                                            ‫ثَ ٍْؿت هٌضَـ ثَ فـػ ایزبػ هی ًوبیؼ.‬
  ‫ثَ ٌْٝاى هخبل فـُ ًوبیؼ یک ثـچنت ثَ ًبم ‪ R‬ػؿ ثؼًَ ی هبکـّی ‪ M‬تٞـیف ىؼٍ امت.‬
     ‫ٌُگبهی کَ ثیو اف یک ثبؿ اف هبکـّی ‪ M‬ػؿ ثـًبهَ ی فـاعْاًٌؼٍ امتفبػٍ ًوبین،‬
  ‫ٌُگبم تـروَ ثؼًَ ی هبکـّ ‪ M‬گنتـه یبفتَ ّ ثَ تٞؼاػ فـاعْاًی هبکـّ ثـچنت ‪ R‬ػؿ‬
    ‫ثؼًَ ی ثـًبهَ ی فـاعْاًٌؼٍ ایزبػ عْاُؼ گـػیؼ ّ کبهپبیلـ لبػؿ ثَ تيغیٌ ػؿمت‬
 ‫ثـچنت ُب ًغْاُؼ ثْػ (چْى ٌُگبم اًيٞبة ثَ ثـچنت ‪ً R‬وی تْاًؼ تيغیٌ ػُؼ ثبیؼ ثَ‬
 ‫کؼام ‪ R‬اًيٞبة کٌؼ) ّ عٖبی ‪ Duplhcated Lable‬ؿط هی ػُؼ،ُویي ّّٜ ثـای اًْاٛ هتغییـ‬
     ‫ُب ُن ٍبػق هی ثبىؼ. ثـای صل ایي هيکل ثبیؼ اف ىجَ ػمتْؿالٞول ‪ Local‬امتفب ػٍ‬
   ‫ًوْػ کَ ایي ىجَ ػمتْؿالٞول ثـ چنت ُب ؿا ثَ ٍْؿت ----0000?? گنتـه هی ػُؼ کَ ثَ‬
    ‫ربی ?? ػّ کبؿاکتـ ػّؿ اف ؽُي ّ ثَ ربی 0000 یک ٝؼػ ثَ ٌْٝاى ىوبؿًؼٍ لـاؿ هی‬
    ‫ػُؼ. ثؼیي تـتیت توبهی ثـرنت ُب ّ هتغییـُب ثَ ٍْؿت ‪ ّ --unque‬هٌضَـ ثَ فـػ ػؿ‬
                                ‫ثـًبهَ ی فـاعْاًٌؼٍ هْؿػ امتفب ػٍ لـاؿ هی گیـًؼ.‬

                                                   ‫4: ىجَ ػمتْؿالٞول الضبق & :‬
      ‫ایي ػمتْؿالٞول ، پبؿاهتـ هبکـّ ؿا ثَ ػمتْؿالٞول هبکـّ الضبق هی ًوبیؼ ّهی‬
               ‫تْاًین پبؿاهتـ پبك ػاػٍ ىؼٍ ؿا ٌُگبم ارـا ثَ هبکـّ هٌتمل ًوبین.‬
‫‪Mave MACRO TAG,COUNT‬‬
      ‫‪mav‬‬      ‫‪cx,count‬‬              ‫05,‪mav cx‬‬
                        ‫----=05,‪---- Mave B‬‬
  ‫‪rep‬‬      ‫‪mrs & tag‬‬             ‫‪rep mavsb‬‬

‫95‬
        ‫‪endM‬‬
                                                       ‫5: ىجَ ػمتْؿالٞول ‪: Exitm‬‬
  ‫ایي ىجَ ػمتْؿالٞول اف تـروَ ىؼى ثمیَ ػمتْؿات تب ؿمیؼى ثَ اّلیي ‪ endm‬عْػػاؿی‬
                                                                       ‫هی ًوبیؼ .‬
                                                       ‫6: ىجَ ػمتْؿالٞول ‪: Purge‬‬
   ‫ایي ىجَ ػمتْؿالٞول هبکـُّبیی ؿا کَ رلْی آى آهؼٍ امت اف گـػًَّ ی ---- تـروَ‬
‫ىؼى ّ کبهپبیل عبؿد هی ًوبیؼ. هوکي امت کتبثغبًَ ای اف هبکـُّب ایزبػ کـػٍ ثبىین‬
 ‫ّ آى ؿا تْمٔ ىجَ ػمتْؿالٞول ‪ include‬ثَ ثـًبهَ الضبق ًوْػُبین اهب تٞؼاػ ی هبکـّ‬
  ‫ثالامتفبػٍ ػؿ کتبثغبًَ ی هبکـّ ُب هْرْػ امت ، ثب آّؿػى ًبم ایي هبکـُّب همبثل‬
                                            ‫‪ Purge‬هی تْاى آًِب ؿا ًبػیؼٍ گـفت.‬
                                                     ‫7: ىجَ ػمتْؿالٞول ‪: include‬‬
 ‫ثب امتفبػٍ اف ایي ػمتْؿالٞول هی تْاًین کتبثغبًَ ُبی هْرْػ ؿا ثَ ثـًبهَ الضبق‬
             ‫ًوبین ّ اف ثـًبهَ ُبی هْرْػ ػؿ کتبثغبًَ ػؿ ثـًبهَ امتفبػٍ ًوبین.‬

                                                   ‫ىجَ ػمتْؿالٞول ُبی تکـاؿ کٌٌؼٍ:‬

                           ‫‪Rept expression‬‬                ‫1: ىجَ ػمتْؿالٞول ‪: Rept‬‬

 ‫ایي ىجَ ػمتْؿالٞول ،رِت تکـاؿ ثلْکی اف ػمتْؿات اموجلی تب اّلیي ‪ endm‬ثَ تٞؼاػ‬
                                                             ‫‪ expression‬هی ىْػ.‬
‫5 ‪Rept‬‬      ‫1 ‪DB‬‬
‫‪N=Nel‬‬       ‫2 ‪DB‬‬
       ‫----‬ ‫3 ‪DB‬‬
‫‪DBN‬‬         ‫4 ‪DB‬‬
‫‪Endm‬‬         ‫5 ‪DB‬‬

                                                       ‫2: ىجَ ػمتْؿالٞول‪: IRP‬‬
‫ایي ىجَ ػمتْؿالٞول مجت تکـاؿ ثلْکی اف ػمتْؿات تب اّلیي ‪ endm‬ثـ امبك لبلت فیـ‬
                                                                      ‫هی ىْػ.‬


 ‫‪IRP‬‬           ‫> ‪dummy----;< arguments List‬‬
‫‪IRP‬‬                                 ‫>8-,5,2,1<,‪N‬‬
‫‪DB N‬‬        ‫8-,5,2,1 ‪------ DB‬‬
‫‪ENDM‬‬
                                                        ‫3: ىجَ ػمتْؿالٞول‪: IRPC‬‬
‫ایي ىجَ ػمتْؿالٞول مجت تکـاؿ ثلْکی اف اصکبم تب اّلیي ‪ endm‬ثـ امبك لبلت فیـ هی‬
                                                                              ‫ىْػ.‬
                                                          ‫‪IRPC‬‬       ‫‪dummy,String‬‬
                              ‫‪IRPC‬‬       ‫'‪ch,' Assemble‬‬
                                                  ‫‪DB ch‬‬    ‫‪------ DB A,s,s,e,m,b,l,e‬‬
                                                                              ‫‪endm‬‬

                           ‫‪IF‬‬   ‫‪XXX‬‬                      ‫ىجَ ػمتْؿالٞول ُبی ىـٕی:‬
       ‫‪Instruction Blook‬‬
‫‪ELSE‬‬
     ‫‪Instruction Blook‬‬
‫‪ENDIF‬‬

               ‫‪IF expression‬‬                                      ‫1:ىجَ ٝول ‪:IF‬‬
  ‫ػؿ ٍْؿتی کَ ٝجبؿت ؿا غیـ ٍفـ اؿفیبثی کٌؼ ثلْک ىـٕی ّ ػؿ غیـ ایٌَْؿت اگـ ‪else‬‬
                                   ‫ػاىتَ ثبىؼ. ثلْک غیـ ىـٕی ؿا ارـا هی ًوبیؼ.‬
                   ‫‪IFE expression‬‬                               ‫2:ىجَ ٝول ‪:IFE‬‬
‫ػؿ ٍْؿت ٍفـ ثْػى ٝجبؿت،ثلْک ىـٕی ّ ػؿغیـ ایٌَْؿت اگـ ‪ else‬ػاىتَ ثبىؼ. ثلْک غیـ‬
                                                        ‫ىـٕی ؿا ارـا هی ًوبیؼ.‬
                 ‫‪ifdef symbal‬‬                                  ‫3:ىجَ ٝول ‪:IFdef‬‬
   ‫ػؿ ٍْؿت تٞـیف ىؼى ًوبػ، ثلْک ىـٕی ّ ػؿغیـ ایٌَْؿت اگـ ‪ else‬ػاىتَ ثبىؼ. ثلْک‬
                                                    ‫غیـ ىـٕی ؿا ارـا هی ًوبیؼ.‬

‫06‬
                     Ifndef symbal                             :IFndef ‫4:ىجَ ٝول‬
   ‫ ػاىتَ ثبىؼ. ثلْک‬else ‫ػؿ ٍْؿت تٞـیف ًيؼى ًوبػ، ثلْک ىـٕی ّ ػؿغیـ ایٌَْؿت اگـ‬
                                                     .‫غیـ ىـٕی ؿا ارـا هی ًوبیؼ‬
‫اگـ آؿگْهبى‬Ifb >‫< آؿگْهبى‬                                         :IFb ‫5:ىجَ ٝول‬
   ‫هْؿػًٚـ ثب ربی عبلی پبك ىؼٍ ثبىؼ یب ثَ ٝجبؿت ػیگـ پبك ًيؼٍ ثبىؼ، اصکبم ػاعل‬
                                                       .‫ثلْک ىـٕی پـػافه هی ىْػ‬
         Ifnb >‫< آؿگْهبى‬                                         :IFnb ‫6:ىجَ ٝول‬
  ‫اگـ آؿگْهبى هْؿػًٚـ پبك ىؼٍ ثبىؼ یب ثَ ٝجبؿت ػیگـربی عبلی ًجبىؼ ، اصکبم ػاعل‬
                                                       .‫ثلْک ىـٕی پـػافه هی ىْػ‬
                    Ifidn >1‫< آؿگْهبى2 < < آؿگْهبى‬              :IFIDN ‫7:ىجَ ٝول‬
 .‫ػؿ ٍْؿت هنبّی ثْػى ػّ آؿگْهبى ؿىتَ ای 1,2 اصکبم ػاعل ثلْک ىـٕی پـػافه هی ىْػ‬
                  Ifdif >1‫< آؿگْهبى2 < < آؿگْهبى‬                :IFDIF ‫8:ىجَ ٝول‬
     ‫ػؿ ٍْؿت ًبهنبّی ثْػى ػّ آؿگْهبى ؿىتَ ای 1,2 اصکبم ػاعل ثلْک ىـٕی پـػافه هی‬
                                                                            .‫ىْػ‬

                                         .‫12 ثٌْینیؼ‬H ‫*هخبل:هبکـّیی ثـای ّلفَ ی‬
Dos21    macro   dos-func,dx-address
        mav      ah, dos-func
        ifnb     < dx-address >
        lea      dx,dx-address
        int      21H
        endm

   .‫*هخبل:ثب امتفبػٍ اف هبکـّّ تفـیك ُبی هتْالی ، ٝول تمنین ؿا ىجیَ مبفی ًوبیؼ‬
Devide macro          devided,devision,quatinet
        Local         comp ,out
        Count = 0
       Ifndef        devided
        Count = count+1
        endif
        ifndef        devision
        Count = count+1
        endif
        ifndef        quotient
        Count = count+1
        endif
        if     count
                exitm
        endif
        pusha          ; only fer 80286---- processors
       mav           ax, devided
       mav           bx, devision
        xor         cx,cx
Comp: comp           ax,bx
       jB            out
       sub           ax,bx
        inc          cx
       jmp           comp
       mav           quotient,cx
        pop a        ;only fer     80286---- processors
       endm

  .‫ اًزبم ػُؼ‬Word ‫ ّ یب‬Byte ‫*هخبل:هبکـّیی ثٌْینیؼ کَ ٝول اًتمبل ؿىتَ ؿا ثَ ٍْؿت‬
mavif   macro tag          ifidn <tag><w>
 rep   mavsw ---     ifidn  <tag><B>
        rep    mavsb       else
        exitm                 rep    mavsb
        endif              endif

61
                                  ‫‪endm‬‬




                                    ‫*هخبل: یک هبکـّثـای چبپ یک ؿىتَ حبثت ٕـاصی ًوبیؼ.‬
‫‪Write‬‬    ‫‪macro‬‬     ‫‪str‬‬
          ‫‪local‬‬    ‫‪msg,around‬‬
          ‫‪push‬‬
         ‫‪mav‬‬       ‫‪ah, 09H‬‬
          ‫‪Lea‬‬      ‫‪dx,msg‬‬
          ‫‪int‬‬      ‫‪21H‬‬
         ‫‪jmp‬‬       ‫‪short around‬‬
‫‪MSG‬‬      ‫‪DB‬‬        ‫'‪str ,-,'s‬‬
‫‪around : popa‬‬
         ‫‪endm‬‬

                                         ‫*هخبل:هبکـّیی ثٌْینیؼ کَ یک پیبم ؿا چبپ ًوبیؼ.‬
‫‪Print‬‬   ‫‪macro‬‬     ‫‪msg‬‬
        ‫‪IRPC‬‬      ‫‪chr,msg‬‬
        ‫‪mav‬‬       ‫‪dl,chr‬‬
        ‫‪mav‬‬       ‫20,‪ah‬‬
        ‫‪int‬‬       ‫‪21H‬‬
        ‫‪endm‬‬

                                           ‫اؿتجبٓ فثبى اموجلی ثب فثبًِبی مٖش ثبال‬
 ‫ػؿ ایي ثغو ًضٍْ ی اػغبم ّ اؿتجبٓ اموجلی ػؿ یک فثبى مٖش ثبال هبًٌؼ ‪ pascal‬ؿا یبػ‬
                                                                      ‫عْاُیؼ گـفت‬
     ‫ثـای اػغبم فثبى اموجلی ثب فثبى پبمکبل اف ػمتْؿ ‪ asm‬ثَ ٍْؿت فیـ امتفبػٍ هی‬
                                                                          ‫ًوبیین.‬

‫‪asm‬‬
 ‫:‬
 ‫:‬
   ‫‪asm – program – Lody‬‬
 ‫‪end‬‬

  ‫*:تّْیضبت (‪ )comments‬اف فثبى مٖش ثبال پیـّی هی کٌٌؼ ،ثَ ٌْٝاى هخبل ػؿ ‪ CHّ C‬اف‬
               ‫ػمتْؿات " ّیب /* */ امتفبػٍ هی ىْػ ّلی ػؿ پبمکبل اف }{ امتفبػٍ هی گـػػ.‬
            ‫ََ تٞـیف هتغییـ ّ‬ ‫*:ثـای ًْىتي ثـًبهَ ی اموجلی ػؿ یک فثبى مٖش ثبال، هٞوْال‬
    ‫ّؿّػی/عـّری ُب ؿا ثَ فثبى مٖش ثبال ّمبیـ ػمتْؿات هِن ثَ فثبى اموجلی ًْىتَ هی‬
                                                                                    ‫ىْػ.‬
‫‪Var‬‬
    ‫‪a,b: integer‬‬
 ‫;)‪read (a,b‬‬
           ‫‪asm‬‬
              ‫‪mav ax,a‬‬
              ‫‪xchg ax,b‬‬
              ‫‪mav a,ax‬‬
         ‫;‪end‬‬
‫هکبى ُبی پـه ًیبف ثَ ثـچنت ػاؿًؼ ،ایي ثـچنت ُب هی تْاًٌؼ ثَ ٍْؿت ‪ّ Local‬یب ‪lobal‬‬
                                                                 ‫هی ثبىؼ (هلی ّ مـامـی)‬
                                                          ‫چْى ثَ ‪ً jump ، goto‬یبف ػاؿین.‬
‫*:اگـ ثـای ًْىتي ثـًبهَ ُبیوبى اف فثبًِبی مٖش ثبال امتفبػٍ ًوبیین اف ثـچنت ُبی،‬
           ‫‪ global‬هبًٌؼ ‪ ، stup ّ start‬امتفبػٍ هی ًوبیین، هتغییـُبی ‪ُ local‬ن کَ اف تـتیت‬
‫َ ػؿ ثالک ُبی اموجلی ّهْؿػامتفبػٍ لـاؿ هی‬      ‫کبؿاکتـ @ ّ یک ٝؼػ تيکیل هی ىْػ، هٞوْال‬
                                                                                   ‫گیـػ.‬
‫‪asm‬‬
‫‪@1 : mc cx‬‬

‫26‬
          ‫‪jz @2 ;" ---- local Label‬‬
          ‫‪Loop @1 ;" ---- local Label‬‬
‫2@‬      ‫‪: JE‬‬    ‫‪stop ;"---global Label‬‬

              ‫*:هی تْاًین ػؿ ثالک ُبی هغتلف اف ثـچنت ُبی هلی ُوٌبم اامتفبػٍ ًوبیین.‬
            ‫*:هی تْاًین اف پبمکبل ثَ اموجلی ّ اف اموجلی ثَ پبمکبل پـه ػاىتَ ثبىین.‬
‫‪seg‬‬     ‫‪cs‬‬
‫‪seg‬‬     ‫‪DS‬‬
‫‪seg‬‬     ‫‪SS‬‬
‫‪seg‬‬     ‫‪es‬‬
‫‪goto‬‬    ‫‪start‬‬
         ‫:‬
         ‫:‬
     ‫‪stop : end‬‬
                                                            ‫امتفبػٍ اف ًکبت کلیؼی:‬
             ‫ًبم حجبتِب ؿفؿّ ُنتٌؼ ّ ًوی تْاى اف آًِب ثَ ٌْٝاى هتغییـ امتفبػٍ کـػ.‬
‫‪Var‬‬
‫‪Ch:char‬‬
‫‪asm‬‬
‫ؿا ًؼاؿػ )‬      ‫: ----'‪ mav ch,'a‬غلٔ) لبثلیت ىٌبمبیی حجبت یب هتغییـ ثْػى‬
             ‫‪ ch‬ؿا ثٌْٞاى هتغییـ هی ىٌبمؼ ّ کبؿاکتـ هْؿػًٚـ ؿا ثَ آى هٌتمل هی کٌؼ‬
                                                                    ‫'‪mav &ch,'a‬‬    ‫----‬
                                                         ‫ثَ ػّ ثـًبهَ فیـ تْرَ ًوبییؼ‬
‫‪Count‬‬                      ‫‪Var‬‬
       ‫;01=‪x‬‬                   ‫‪x,y,z: integer‬‬
       ‫;02=‪y‬‬                ‫;)‪read (x,y‬‬
‫‪var‬‬                           ‫:‬
    ‫;‪z :integer‬‬               ‫‪asm‬‬
         ‫غلٔ امت‬   ‫:‬                         ‫; ‪mav z,x+y‬‬
     ‫:‬                    ‫‪--- mav ax,x‬‬
‫ؿّه ػؿمت‬             ‫;‪asm z,x+y‬ػؿمت ‪add ax,y‬‬
                             ‫‪mav z,ax‬‬

   ‫چْى ػؿ تکَ ثـًبهَ ی موت چپ ‪ yّ x‬ؿا ثَ ٍْؿت حبثت ػؿًٚـ گـفتین اىکبلی ػؿارـای‬
        ‫ثـًبهَ پؼیؼ ًوی آیؼ اهب چْى ػؿ تکَ ثـًبهَ ی موت ؿامت ‪ y ّ x‬ؿا ثَ ٌْٝاى‬
 ‫هتغییـػؿًٚـ گـفتین ّ آًِب ؿا اف ّؿّػی عْاًؼٍ این . ارـای ثـًبهَ ثب هيکل هْارَ‬
                                                                      ‫هی گـػػ.‬
   ‫ایي ػمتْؿالٞول ثَ آػؿك ‪( 4 ، y‬ثبیت) ّاصؼ افقّػٍ ّ ٝولیبت ؿا ثـؿّی آػؿك رؼیؼ‬
                                                            ‫)4+‪ (y‬اًزبم هی ػُؼ.‬
‫‪asm‬‬
   ‫4+‪add ax,y‬‬

                                                         ‫ثَ تبثٜ همبثل تْرَ فـهبییؼ‬
‫; ‪function sum (x,y :integer):integer‬‬
       ‫‪Begin‬‬
            ‫; ‪Sum := x+y‬‬
‫;‪end‬‬
‫; ‪function sum (x,y :integer):integer‬‬
       ‫‪Begin‬‬
             ‫‪asm‬‬
                 ‫‪mav ax,x‬‬
                 ‫‪add ax,y‬‬
                 ‫‪mav @result,ax‬‬
            ‫;‪end‬‬
       ‫;‪end‬‬




‫36‬
   ‫@ ّرْػ ػاؿػ کَ رْاة ًِبیی ؿا ػؿآى لـاؿ‬result ‫ هتغییـی ثَ ًبم‬c, pascal ‫ػؿفثبًِبی‬
                                                                          .‫هی ػُین‬
function sum (x,y :integer):integer ;Assembler;
asm
   push ds
      Lds si,x
      mav ax,[si]

    Lds si,y
    mav ax,[si]
    mav @result,ax
    pop ds
 end;

    ‫ تٞـیف ًوبیین ثـًبهَ ی لجلی ثَ ىکل فیـ عْاُؼ‬Var ًْٛ ‫صبل اگـ هتغییـُب ؿا ا ف‬
                                                                                      .‫ثْػ‬
function sum ( var x,y :integer):integer ;Assembler;
  Begin
  asm
   push ds
      Les si,x
                                      ‫آػؿك ُب ثَ ٍْؿت 4 ثبیتی ُنتٌؼ‬ mav ax, es:[si] ;

‫2ثبیت ثغو مگوٌت‬        Les si,y       ;
‫2ثبیت ثغو‬       add    ax,es:[si] ;          offset
      mav @result,ax
      pop ds
   end;
 end;



   ‫هخبل:فیـ ثـًبهَ ای ثَ ٍْؿت تبثٜ ثٌْینیؼ کَ یک ؿىتَ ؿا ػؿیبفت کـػٍ ّصـّف کْچک‬
                                                .‫آى ؿا ثَ صـّف ثقؿگ تجؼیل ًوبیؼ‬
function uppercase ( str:string ):string ;
  Begin
  asm
Lea si,str
     Les di,@result
     CLD
     Segss Lodsb


   stosb
   xor     al,ah
   xchg ax,cx
   jcxz    @3
@1 : segss Lodsb
   Cmp       al,'a'
     jb      @2
     cmp     al,'z'
      ja     @2
      sub     al,20H
@2 : stasb
       Loop @i
@3 : end;
end.

     ‫ ثـًبهَ ؿا ػّثبؿٍ ًْینی‬function ‫ ثَ پبیبى ٝجبؿت‬Assembler ‫صبل ثب ّاؿػ کـػى ٝجبؿت‬
                                                                            .‫هی کٌین‬
64
function uppercase ( str:string ):string ;Assembler
  asm
        push ds
       CLD
       Lds si,str
       Lds di,@result
       Lodsb
                                               ‫مؤال:ػمتْؿالٞول فیـ چَ ٝولی ؿا اًزبم هی ػُؼ؟‬
asm
      Lea bx,A
      mav cx,50
@2 mav [bx],cx
     add bx,2
     Loop @2
end:
) 1 ‫اٝؼاػ ثَ ٍْؿت ًقّلی ػؿ آؿایَ لـاؿ هی گیـًؼ(اف 05 تب‬
     stosb
      xor al,ah
      xchg ax,cx
       jcxz @3
@1 : Lodsb
      Cmp al,'a'
       jb        @2
     cmp       al,'z'
      ja       @2
      sub       al,20H
@2 : pop ds
       Loop @i
@3 :
end;

َ‫چگًْگی تٞـیف آؿای‬
Var
A:Array [10050] of Integer;
  mav A[0]: 4      ;‫غلٔ امت‬
       Lea bx,A
  mav word ptr[Bx],0---       َ‫ٕـف امتفبػٍ ی ػؿمت اف آؿای‬




65
66

								
To top