You are on page 1of 104

ASSEMBLY FOR ALL

BY

A.Z
WWW.ITQOU.PS
‫انًعبنح‬

‫اٌّؼبٌظ ػجبسح ػٓ اٌمٍت إٌبثغ ٌٍؾبع‪ٛ‬ة ف‪٠ ٛٙ‬م‪ َٛ‬ثزٕف‪١‬ز اال‪ٚ‬اِش ‪ٚ‬اٌجشاِظ اٌّىز‪ٛ‬ثخ‬
‫ثٍغخ اٌّبوٕخ فمؾ‪ٕ٘ .‬بٌه ػذح ششوبد رٕزظ ِؼبٌغبد ِٕ‪ٙ‬ب ششوخ أزً اٌز‪ ٟ‬أزغذ‬
‫ِؼبٌغبد ‪ٚ 8086‬غ‪١‬ش٘ب‪ .‬ف‪٘ ٟ‬زٖ اٌذس‪ٚ‬ط ع‪ٛ‬ف ‪٠‬زُ اٌزؼبًِ ِغ اٌّؼبٌظ ‪.8086‬‬

‫انذاكزة‬

‫رغزخذَ اٌزاوشح ٌزخض‪ ٓ٠‬اٌج‪١‬بٔبد ث‪ٙ‬ب ‪ٚ .‬رمغُ اٌزاوشح اٌ‪ ٝ‬ػذح الغبَ اّ٘‪ٙ‬ب راوشح اٌمشاءح‬
‫فمؾ (‪ )ROM‬ثؾ‪١‬ش ‪ّ٠‬ىٓ اٌمشاءح ِٕ‪ٙ‬ب ‪ٚ‬ال ‪ّ٠‬ىٓ اٌىزبثخ ػٍ‪ٙ١‬ب ‪ٚ‬ػٕذ أمطبع اٌز‪١‬بس‬
‫اٌى‪ٙ‬شثبئ‪ ٟ‬رجم‪ ٝ‬اٌج‪١‬بٔبد ِخضٔخ ف‪ٙ١‬ب‪.‬‬
‫ِالؽظخ‪ٕ٘ :‬بٌه أ‪ٛ‬اع ِٓ ٘زٖ اٌزاوشح اٌز‪ ٟ‬رغّؼ ثبٌىزبثخ ػٍ‪ٙ١‬ب ثّغبػذح اع‪ٙ‬ضح خبطخ‬
‫‪ِٕٙٚ‬ب ِٓ ‪٠‬غّؼ ثبٌىزبثخ ػٍ‪ٙ١‬ب ثّغبػذح ثشاِظ خبطخ‪.‬‬

‫راوشح اٌ‪ٛ‬ط‪ٛ‬ي اٌؼش‪ٛ‬ائ‪ ٟ٘ :(RAM) ٟ‬راوشح ٌٍزخض‪ ٓ٠‬اٌّإلذ ‪ٚ‬ػٕذ أمطبع اٌز‪١‬بس‬
‫اٌى‪ٙ‬شثبئ‪ ٟ‬ػٕ‪ٙ‬ب رّؾ‪ ٝ‬اٌج‪١‬بٔبد اٌّ‪ٛ‬ع‪ٛ‬دح ف‪ٙ١‬ب‪.‬‬

‫رزى‪ ْٛ‬اٌزاوشح ِٓ خال‪٠‬ب‪ٌ .‬ىً خٍ‪١‬خ ػٕ‪ٛ‬اْ (‪ٚ ) address‬فؾ‪ٚ ٜٛ‬وً خٍ‪١‬خ رزى‪8 ِٓ ْٛ‬‬
‫ثزبد أ‪ ٞ‬ثط‪ٛ‬ي ثب‪٠‬ذ ‪ٚ‬اؽذ ‪ّ٠ٚ‬ىٓ رخض‪ ٓ٠‬سِضا ‪ٚ‬اؽذا فمؾ ف‪ ٟ‬وً خٍ‪١‬خ‪ .‬ػٕ‪ٛ‬اْ اٌخٍ‪١‬خ‬
‫اال‪ ٌٝٚ‬ف‪ ٟ‬اٌزاوشح ٘‪ ٛ‬طفش (‪)0‬‬

‫وحذاث انذاكزة‬

‫‪ -1‬انبج (‪ ٟ٘ٚ : )bit‬اطغش ‪ٚ‬ؽذح رخض‪ ٓ٠‬ثؾ‪١‬ش رغّؼ ثزخض‪ 1 ٓ٠‬أ‪(1 , 0) 0 ٚ‬‬

‫‪ -2‬انُُبم (‪ 4 ٟ٘ٚ :)nibble‬ثزبد‬

‫‪ -3‬ببَج (‪ ٛ٘ٚ :)byte‬ػجبسح ػٓ ‪ 8‬ثزبد ‪ّ٠ٚ‬ىٓ رخض‪ ٓ٠‬سِضا ‪ٚ‬اؽذا فمؾ ‪ .‬اٌشِ‪ٛ‬ص ٘‪ٟ‬‬
‫وً ِب ‪ّ٠‬ىٓ وزبثزٗ ػٍ‪ٌٛ ٝ‬ؽخ اٌّفبر‪١‬ؼ ‪ٚ‬سؤ‪٠‬زٗ ػٍ‪ ٝ‬اٌشبشخ‪ٌٚ .‬ىً سِض ‪ٛ٠‬عذ ل‪ّ١‬خ ػذد‪٠‬خ‬
‫رمبثٍٗ ‪ٚ‬ارا اسدٔب ِؼشفخ ل‪ّ١‬خ سِض ِؼ‪ٕٔ ٓ١‬ظ‪ٙ‬ش ف‪ ٟ‬عذ‪ٚ‬ي ‪ ASCII‬ف‪٠ ٛٙ‬ؾز‪ ٞٛ‬ػٍ‪ٝ‬‬
‫اٌشِ‪ٛ‬ص ‪ٚ‬اٌم‪ ُ١‬اٌؼذد‪٠‬خ اٌّمبثٍخ ٌىً سِض‬

‫‪ -4‬كهًت (‪ ٟ٘ٚ : )word‬ػجبسح ػٓ ‪ 16‬ثزب (‪)16 bits‬‬


‫‪-5‬انكهًت انًشدوخت (‪ ٟ٘ٚ : )Double word‬ػجبسح ػٓ ‪ 32‬ثزب (‪)32 bits‬‬

‫‪-6‬كُهى ببَج (‪ ٟ٘ٚ :)kilo byte‬ػجبسح ػٓ ‪ 1024‬ثب‪٠‬ذ (‪)1024 byte‬‬

‫‪-7‬يُدب ببَج (‪ ٟ٘ٚ :)mega byte‬ػجبسح ػٓ ‪ 1024‬و‪ ٍٛ١‬ثب‪٠‬ذ‬


‫‪ٕ٘ٚ‬بٌه ‪ٚ‬ؽذاد اخش‪ٌٚ ٜ‬ىٓ ال ٔش‪٠‬ذ اْ ٔزطشق اٌ‪ٙ١‬ب الٔ‪ٙ‬ب ٌ‪١‬غذ ِ‪ّٙ‬خ ف‪ ٟ‬رذس‪٠‬ظ ٘زا‬
‫اٌّ‪ٛ‬ػ‪ٛ‬ع‬

‫انُبقم ‪bus‬‬

‫انُبقم‪ ٛ٘ :‬ػجبسح ػٓ ِغّ‪ٛ‬ػخ ِٓ االعالن اٌز‪ ٟ‬رم‪ َٛ‬ثٕمً ث‪١‬بٔبد ث‪ ٓ١‬اٌّؼبٌظ ‪ٚ‬اٌزاوشح‬
‫‪ٚٚ‬ؽذاد االدخبي ‪ٚ‬االخشاط‬

‫وحذاث االدخبل ‪:‬ثّغبػذر‪ٙ‬ب ‪ّ٠‬ىٓ ادخبي اٌج‪١‬بٔبد ٌٍّؼبٌظ ِضً ٌ‪ٛ‬ؽخ اٌّفبر‪١‬ؼ اٌفبسح‬
‫‪ٚ‬غ‪١‬ش٘ب‬

‫وحذاث االخزاج‪ :‬ثؼذ ِؼبٌغخ اٌج‪١‬بٔبد ف‪ ٟ‬اٌّؼبٌظ ‪٠‬م‪ َٛ‬اٌّؼبٌظ ثبخشاط إٌزبئظ ػٍ‪ٝ‬‬
‫‪ٚ‬ؽذاد االخشاط ‪ِٕٙٚ‬ب اٌشبشخ ‪ٚ‬اٌطبثؼخ ‪ٚ‬غ‪١‬ش٘ب‬

‫‪َ -1‬بقم انعُبوٍَ )‪ :(Address bus‬ثّغبػذر‪ٙ‬ب ‪٠‬خزبس اٌّؼبٌظ خٍ‪١‬خ اٌزاوشح ا‪ٚ ٚ‬ؽذح‬
‫االدخبي ا‪ٚ ٚ‬ؽذح االخشاط اٌّطٍ‪ٛ‬ثخ ‪.‬‬

‫‪َ -2‬بقم انبُبَبث (‪ :)Data bus‬ثّغبػذر‪ٙ‬ب ‪٠‬زُ اسعبي ا‪ ٚ‬اعزمجبي اٌج‪١‬بٔبد‬

‫‪ -3‬خطىط انسُطزة (‪ :)control lines‬رغزخذَ ٌزٕظ‪ ُ١‬اٌؼٍّ‪١‬بد ف‪ ٟ‬اٌؾبع‪ٛ‬ة ِضً‬


‫اخز‪١‬بس ػٍّ‪١‬خ اٌمشاءح ا‪ ٚ‬اخز‪١‬بس ػٍّ‪١‬خ اٌىزبثخ ‪ٚ‬غ‪١‬ش٘ب‬

‫يكىَبث انًعبنح‬

‫‪-1‬وحذة انحسبة وانًُطق (‪ ٟ٘ٚ : Arithmetic –loic unit )ALU‬اؽذ‪ٜ‬‬


‫ِى‪ٔٛ‬بد اٌّؼبٌظ ‪ ٟ٘ٚ‬رم‪ َٛ‬ثغّ‪١‬غ اٌؼٍّ‪١‬بد اٌؾغبث‪١‬خ (عّغ ‪ ،‬ؽشػ‪ ،‬ػشة‪ ،‬لغّخ)‬
‫‪ٚ‬عّ‪١‬غ اٌؼٍّ‪١‬بد إٌّطم‪١‬خ ِضً ا‪ٚ ، ٚ‬ا‪٠‬ؼب ‪ٚ‬غ‪١‬ش٘ب (‪ٚ )OR , AND‬اٌؼٍّ‪١‬بد اٌخبطخ‬
‫ثبٌزؼبًِ ِغ اٌجزبد‬

‫‪-2‬يسدم انزاَبث (‪ِ ِٓ ٛ٘ :)flags register‬ى‪ٔٛ‬بد اٌّؼبٌظ ‪٠ٚ‬ؾز‪ ٞٛ‬ػٍ‪ 16 ٝ‬ثزب‬


‫‪ٚ‬وً ثذ ‪٠‬ؾز‪ ٞٛ‬ػٍ‪ ٝ‬اٌم‪ّ١‬خ ‪ 0‬ا‪٘ٚ 1 ٚ‬زٖ اٌم‪ّ١‬خ رؼط‪ِ ٟ‬ؼٍ‪ِٛ‬خ اػبف‪١‬خ ػٓ اٌؼٍّ‪١‬خ‬
‫االخ‪١‬شح اٌز‪ ٟ‬لبَ ث‪ٙ‬ب اٌّؼبٌظ‬

‫‪-3‬انًسدالث (‪ٚ :)registers‬ظ‪١‬فخ اٌّغغالد اٌؾفع اٌّإلذ ٌٍج‪١‬بٔبد ٌىً ِغغً اعُ‬
‫‪ٚٚ‬ظ‪١‬فخ خبطخ ثٗ‬

‫يالحظت ‪ٕ٘ :‬بٌه ِى‪ٔٛ‬بد اخش‪ٌٍّ ٜ‬ؼبٌظ ِضً (‪، )command decoder‬‬
‫)‪(instruction queue) , (address buffer‬‬

‫نغبث انبزيدت‬

‫‪ّ٠‬ىٓ رمغ‪ٌ ُ١‬غبد اٌجشِغخ اٌ‪ ٝ‬ػذح الغبَ ِٕ‪ٙ‬ب‬

‫‪ -‬نغت انًبكُت )‪ ٟ٘ٚ :(machine language‬اٌٍغخ اٌ‪ٛ‬ؽ‪١‬ذح اٌز‪٠ ٟ‬ف‪ّٙ‬ب اٌّؼبٌظ ‪ٟ٘ٚ‬‬
‫رزى‪ (0 , 1) ِٓ ْٛ‬رّزبص ٘زٖ اٌٍغخ ثبٌغشػخ ‪ٌٚ‬ىٕ‪ٙ‬ب طؼجخ ٌٍجشِغخ‬

‫‪ -‬نغت انخدًُع (‪ ٟ٘ٚ :)assembly language‬ػجبسح ػٓ اخزظبساد خبطخ‬


‫‪٠‬غزؼٍّ‪ٙ‬ب اٌّجشِظ ٌجشِغخ اٌّؼبٌغبد رّزبص ثبٌغشػخ ‪ٚ‬ا‪٠‬ؼب الً طؼ‪ٛ‬ثخ ِٓ ٌغخ اٌّبوٕخ‪.‬‬
‫ػٍ‪ ٝ‬اٌّجشِظ اْ ‪٠‬ؼشف الغبَ ‪ٚ‬اعّبء ِى‪ٔٛ‬بد اٌّؼبٌظ‪ٌ .‬ىً ػبئٍخ ِٓ اٌّؼبٌغبد ٌ‪ٙ‬ب‬
‫اخزظبساد خبطخ ث‪ٙ‬ب‪.‬‬

‫‪ -‬نغبث عهُب (‪ ٟ٘ٚ :)high level language‬رزى‪ ِٓ ْٛ‬وٍّبد لش‪٠‬جخ ػٍ‪ٌ ٝ‬غخ‬
‫االٔغبْ رّزبص ثغ‪ٌٛٙ‬خ اٌجشِغخ ‪ٌٚ‬ىٕ‪ٙ‬ب ثط‪١‬ئخ ثبٌٕغجخ ٌٍغخ اٌّبوٕخ ‪ٚ‬اٌزغّ‪١‬غ‪ِ .‬ضً اٌٍغبد‬
‫‪C , C++ , visual basic‬‬

‫يالحظت‪ :‬ػٕذ وزبثخ ثشٔبِظ ثٍغخ اٌزغّ‪١‬غ ا‪ ٚ‬ثٍغخ ػٍ‪١‬ب ٔؾزبط اٌ‪ِ ٝ‬زشعُ )‪(compiler‬‬
‫‪٠‬م‪ َٛ‬ثزشعّخ اٌجشٔبِظ اٌ‪ٌ ٝ‬غخ اٌّبوٕخ ؽز‪٠ ٝ‬ف‪ّٙٙ‬ب اٌّؼبٌظ‬
‫نغت اسًبهٍ ‪ ،‬اسًبهز و اسًبهٍ‬

‫نغت اسًبهٍ )‪ٌ ٟ٘ : (assembly language‬غخ اٌزغّ‪١‬غ‬

‫‪ -‬اسًبهز (‪ ٛ٘ :)assembler‬اٌّزشعُ )‪ ٛ٘ٚ (compiler‬ػجبسح ػٓ ثشٔبِظ ‪٠‬م‪َٛ‬‬


‫ثزؾ‪ ً٠ٛ‬اٌجشاِظ اٌز‪ ٟ‬رىزت ثٍغخ اٌزغّ‪١‬غ اٌ‪ٌ ٝ‬غخ اٌّبوٕخ‬

‫‪ -‬اسًبهٍ (‪ ٟ٘ٚ :)assembly‬ػٍّ‪١‬خ رؾ‪ ً٠ٛ‬ثشٔبِظ ِىز‪ٛ‬ة ثٍغخ اٌزغّ‪١‬غ ثّغبػذح‬


‫االعّجٍش اٌ‪ٌ ٝ‬غخ اٌّبوٕخ‬

‫انًىاسٍَ‬

‫ف‪ٌ ٟ‬غخ اٌزغّ‪١‬غ ٔزؼبًِ ِغ ‪ِٛ 3‬اص‪ٓ٠‬‬

‫‪-1‬انًُشاٌ انثُبئٍ‪٠ :‬زى‪ ِٓ ْٛ‬اٌشِ‪ٛ‬ص ‪ 0 , 1‬فمؾ ‪ٕ٘ ِٓٚ‬ب االعُ صٕبئ‪ ٟ‬ثمذس ػذد اٌشِ‪ٛ‬ص‬
‫اٌز‪٠ ٟ‬ؾك اعزؼّبٌ‪ٙ‬ب‬

‫ايثهت‪:‬‬
‫‪11011100‬‬ ‫‪,‬‬ ‫‪10001000‬‬

‫ٌىً ثذ ر‪ٛ‬عذ ل‪ّ١‬خ ِضً اٌّ‪١‬ضاْ اٌؼشش‪ ٞ‬خبٔخ االؽبد خبٔخ اٌؼششاد خبٔخ اٌّئبد‬
‫‪ٚ‬غ‪١‬ش٘ب ٕ٘ب اٌم‪ ُ١‬وّب ‪:ٍٟ٠‬‬
‫اال‪ ٌٝٚ‬اٌضبٔ‪١‬خ اٌضبٌضخ اٌشاثؼخ اٌخبِغخ اٌغبدعخ اٌغبثؼخ اٌضبِٕخ‬ ‫اٌجذ‬
‫‪128‬‬ ‫‪64‬‬ ‫‪32‬‬ ‫‪16‬‬ ‫‪8‬‬ ‫‪4‬‬ ‫‪2‬‬ ‫اٌم‪ّ١‬خ ‪1‬‬

‫ٔش‪ ٜ‬اْ ل‪ّ١‬خ اٌجذ ف‪ ٟ‬اٌّ‪١‬ضاْ اٌؼشش‪ ٞ‬رغب‪ٌٍ 2 ٞٚ‬م‪ٛ‬ح (ِىبْ اٌجذ ٔبلض ‪(1‬‬
‫اٌجذ اٌّ‪ٛ‬ع‪ٛ‬دح ف‪ ٟ‬ع‪ٙ‬خ اٌ‪ ٟ٘ ٓ١ّ١‬اٌجذ راد اٌم‪ّ١‬خ اٌظغش‪ٚ ٜ‬اٌجذ اٌّ‪ٛ‬ع‪ٛ‬دح ف‪ ٟ‬الظ‪ٝ‬‬
‫اٌ‪١‬غبس رذػ‪ ٝ‬اٌجذ راد اٌم‪ّ١‬خ اٌىجش‪ٜ‬‬

‫‪-2‬انًُشاٌ انعشزٌ ‪٠ :‬زى‪ ِٓ ْٛ‬اٌشِ‪ٛ‬ص ‪ 0,1,2,3,4,5,6,7,8,9‬ارا ٕ٘ب ٔش‪ ٜ‬اْ ػذد‬


‫اٌشِ‪ٛ‬ص ٘‪ٕ٘ ِٓٚ 10 ٛ‬ب االعُ‬

‫ايثهت‪123 ,234, 567 :‬‬


‫‪ -3‬يُشاٌ انسبدص عشز (‪٠ :)hexa‬زى‪ ِٓ ْٛ‬اٌشِ‪ٛ‬ص‬
‫‪0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F‬‬

‫ايثهت‪:‬‬
‫‪1A2 , 111, DE1‬‬

‫ل‪ ُ١‬خبٔبد اٌؼذد‬


‫اٌضبٌضخ‬ ‫اٌضبٔ‪١‬خ‬ ‫اال‪ٌٝٚ‬‬ ‫اٌخبٔخ‬
‫‪256‬‬ ‫‪16‬‬ ‫‪1‬‬ ‫اٌم‪ّ١‬خ‬

‫انقبَىٌ انعبو‪:‬‬

‫ل‪ّ١‬خ اٌخبٔخ ف‪ ٟ‬اٌّ‪١‬ضاْ اٌؼشش‪ٌٍ 16=ٞ‬م‪ٛ‬ح (ِىبْ اٌخبٔخ ٔبلض ‪)1‬‬


‫اِضٍخ‬
‫اٌّ‪١‬ضاْ اٌؼشش‪ٞ‬‬ ‫اٌّ‪١‬ضاْ اٌضٕبئ‪ٟ‬‬
‫‪136‬‬ ‫‪10001000‬‬
‫‪5‬‬ ‫‪101‬‬

‫عذ‪ٚ‬ي ‪٠‬شثؾ ث‪ ٓ١‬اٌّ‪ٛ‬اص‪ٓ٠‬‬


‫اٌغبدط ػشش‬ ‫اٌضٕبئ‪ٟ‬‬ ‫اٌؼشش‪ٞ‬‬
‫‪0‬‬ ‫‪0000‬‬ ‫‪0‬‬
‫‪1‬‬ ‫‪0001‬‬ ‫‪1‬‬
‫‪2‬‬ ‫‪0010‬‬ ‫‪2‬‬
‫‪3‬‬ ‫‪0011‬‬ ‫‪3‬‬
‫‪4‬‬ ‫‪0100‬‬ ‫‪4‬‬
‫‪5‬‬ ‫‪0101‬‬ ‫‪5‬‬
‫‪6‬‬ ‫‪0110‬‬ ‫‪6‬‬
‫‪7‬‬ ‫‪0111‬‬ ‫‪7‬‬
‫‪8‬‬ ‫‪1000‬‬ ‫‪8‬‬
‫‪9‬‬ ‫‪1001‬‬ ‫‪9‬‬
‫‪A‬‬ ‫‪1010‬‬ ‫‪10‬‬
‫‪B‬‬ ‫‪1011‬‬ ‫‪11‬‬
‫‪C‬‬ ‫‪1100‬‬ ‫‪12‬‬
‫‪D‬‬ ‫‪1101‬‬ ‫‪13‬‬
‫‪E‬‬ ‫‪1110‬‬ ‫‪14‬‬
‫‪F‬‬ ‫‪1111‬‬ ‫‪15‬‬

‫اسئهت اكًم اندذول انخبنٍ‪:‬‬


‫اٌّ‪١‬ضاْ اٌؼشش‪ٞ‬‬ ‫اٌّ‪١‬ضاْ اٌضٕبئ‪ٟ‬‬
‫‪10010‬‬
‫‪122‬‬

‫اكًم اندذول انخبنٍ‪:‬‬


‫اٌّ‪١‬ضاْ اٌغبدط ػشش‬ ‫اٌّ‪١‬ضاْ اٌؼشش‪ٞ‬‬
‫‪17‬‬
‫‪12F‬‬

‫كخببت االعذاد فٍ نغت انخدًُع‬

‫‪-1‬انثُبئٍ‪ :‬اٌؼذد اٌّغغً ف‪ ٟ‬اٌّ‪١‬ضاْ اٌضٕبئ‪٠ ٟ‬ىزت ػٓ ‪ ٕٗ١ّ٠‬اٌشِض ‪B‬‬


‫اِضٍخ ‪10111B , 110B‬‬

‫‪-2‬انسبدص عشز‪ :‬اٌؼذد اٌّغغً ف‪ ٟ‬اٌّ‪١‬ضاْ اٌغبدط ػشش ‪٠‬ىزت ػٓ ‪ ٕٗ١ّ٠‬اٌشِض ‪H‬‬
‫اِضٍخ‪11H , 12AH , 10H :‬‬

‫‪-3‬انعشزٌ‪٠ :‬ىزت ػٓ ‪ ٕٗ١ّ٠‬اٌشِض ‪ D‬ا‪٠ ٚ‬زشن ثذ‪ ْٚ‬اػبفبد‬


‫اِضٍخ‪11D , 102 , 100 , 100D :‬‬

‫يالحظت‪ :‬ارا وبٔذ ٕ٘بٌه ؽبعخ ٌششػ ؽشق اٌزؾ‪ ً٠ٛ‬ث‪ ٓ١‬اٌّ‪ٛ‬اص‪ ٓ٠‬فبٔب ػٍ‪ ٝ‬اعزؼذاد‬
‫ٌششؽ‪ٙ‬ب‬
‫اٌ‪ ٝ‬اٌٍمبء ف‪ ٟ‬اٌذسط اٌمبدَ‬
‫اٌذسط اٌمبدَ ثبعُ اٌّؼبٌظ ‪8086‬‬
‫انًعبنح ‪8886‬‬

‫‪ٌٙ -‬زا اٌّؼبٌظ ‪ٔ 16‬بلً ث‪١‬بٔبد (‪ )data bus‬ثؾ‪١‬ش ‪٠‬غّؼ ثمشاءح‪/‬وزبثخ وٍّخ وبٍِخ ‪16‬‬
‫ثذ ‪ٚ‬ا‪٠‬ؼب ‪ّ٠‬ىٓ لشاءح ‪/‬وزبثخ ٔظف وٍّخ ‪ 8‬ثذ‬

‫‪ٌٙ -‬زا اٌّؼبٌظ ‪ٔ 20‬بلً ػٕب‪ (address bus) ٓ٠ٚ‬ثؾ‪١‬ش ‪٠‬غّؼ ثبٌز‪ٛ‬عٗ ي‪١ِ 1 -‬غب‬
‫ػٕب‪ٚ .ٓ٠ٚ‬ثّب اْ ٌىً خٍ‪١‬خ ػٕ‪ٛ‬اْ خبص ارا ‪ّ٠‬ىٓ اٌز‪ٛ‬عٗ اٌ‪١ِ 1 ٝ‬غب خال‪٠‬ب راوشح‬

‫‪ٛ٠ -‬عذ ف‪٘ ٟ‬زا اٌّؼبٌظ ‪ِ 14‬غغال‪ .‬وً ِغغً ثط‪ٛ‬ي ‪ 16‬ثذ‪.‬‬

‫انًسدالث‬

‫رمغُ اٌّغغالد اٌ‪ِ ٝ‬غّ‪ٛ‬ػبد ؽغت اٌ‪ٛ‬ظبئف‬

‫انًدًىعت االونً‪ :‬اٌّغغالد اٌؼبِخ ‪ٚ‬رغخذَ ٘زٖ اٌّغغالد ف‪ ٟ‬اٌؼٍّ‪١‬بد اٌؾغبث‪١‬خ‬


‫‪ٚ‬إٌّطم‪١‬خ ‪ٚ‬اٌزخض‪ ٓ٠‬اٌّإلذ ٌٍج‪١‬بٔبد‪ .‬رزى‪٘ ْٛ‬زٖ اٌّغّ‪ٛ‬ػخ ِٓ ‪ِ 4‬غغالد‪ .‬ؽ‪ٛ‬ي وً‬
‫ِغغً ‪ 16‬ثذ‪.‬‬

‫‪ّ٠‬ىٓ رمغ‪ ُ١‬وً ِغغً ِٕ‪ٙ‬ب اٌ‪ ٝ‬لغّ‪ ٓ١‬ثؾ‪١‬ش ‪٠‬ى‪ ْٛ‬وً عضء ثط‪ٛ‬ي ‪ 8‬ثذ‪ّ٠ .‬ىٓ اٌز‪ٛ‬عٗ‬
‫اٌ‪ ٝ‬اٌّغغً ثبوٍّٗ ا‪ ٚ‬اٌ‪ ٝ‬عضء ِٓ اٌّغغً‪.‬‬

‫ف‪ ٟ‬ؽ بٌخ اٌز‪ٛ‬عٗ اٌ‪ ٝ‬اٌّغغً ثأوٍّٗ فبْ اٌّغغً ثبوٍّٗ ‪٠‬زأصش ‪ٚ‬ارا ر‪ٛ‬ع‪ٕٙ‬ب اٌ‪ ٝ‬عضء ‪ٚ‬اؽذ‬
‫ِٕٗ ف‪ ٛٙ‬اٌز‪٠ ٞ‬زبصش ‪ٌٚ‬ىٓ اٌغضء االخش ال ‪٠‬زأصش‪.‬‬

‫اٌّغغً اال‪ٚ‬ي ‪٠‬ذػ‪٠ٚ ACCUMULATOR ٝ‬شِض ٌٗ ف‪٠ . AX ٟ‬مغُ ٘زا‬


‫اٌّغغً اٌ‪ ٝ‬لغّ‪ .AL ٚ AH ٓ١‬وً لغُ ثط‪ٛ‬ي ‪ 8‬ثذ‬
‫‪AH‬‬ ‫‪AL‬‬

‫يثبل ‪ٔ :‬فشع اْ ‪AX=2030H‬‬


‫ارا ‪AL=30H ٚ AH=20H‬‬
‫ٌ‪ ٛ‬ػ‪ٛ‬ػٕب ‪ 50H‬ف‪ ٟ‬اٌّغغً ‪ٔ AL‬ؾظً ػٍ‪ AX=2050H ٝ‬أ‪ ٞ‬اْ اٌزأص‪١‬ش فمؾ ػٍ‪ٝ‬‬
‫‪AL‬‬
‫‪ٌٚ‬ىٓ ٌ‪ ٛ‬ػ‪ٛ‬ػٕب ‪ 402H‬ف‪AX ٟ‬‬
‫ٔؾظً ػٍ‪AH=04H ٚ AL=02H ٝ‬‬
‫ٕ٘ب ٔش‪ ٜ‬اْ اٌزأص‪١‬ش وبْ ػٍ‪ ٝ‬اٌغضئ‪ ٓ١‬الٕٔب ر‪ٛ‬ع‪ٕٙ‬ب اٌ‪AX ٝ‬‬
‫هذِ يسدال ث انًدًىعت االونً‪:‬‬

‫‪Accumulator:AX‬‬
‫‪Base:BX‬‬
‫‪Count :CX‬‬
‫‪Data : DX‬‬

‫‪٠ٚ‬مغُ وً ِغغً اٌ‪ ٝ‬عضئ‪ ٓ١‬وبٌزبٌ‪:ٟ‬‬

‫‪AX‬‬ ‫‪AH‬‬ ‫‪AL‬‬


‫‪BX‬‬ ‫‪BH‬‬ ‫‪BL‬‬
‫‪CX‬‬ ‫‪CH‬‬ ‫‪CL‬‬
‫‪DX‬‬ ‫‪DH‬‬ ‫‪DL‬‬

‫انًدًىعت انثبَُت‪:‬‬
‫٘‪ِ ٟ‬غّ‪ٛ‬ػخ رزى‪ ِٓ ْٛ‬خّغخ ِغغالد ‪ٚ‬ؽ‪ٛ‬ي وً ِغغً ‪ 16‬ثذ ‪ .‬ال ‪ّ٠‬ىٓ رمغ‪ُ١‬‬
‫اٌّغغالد اٌ‪ ٝ‬اعضاء ثً ٔزؼبًِ ِغ اٌّغغً ثبوٍّٗ ‪ٚ‬اٌغجت اْ ٘زٖ اٌّغغالد رؾز‪ٞٛ‬‬
‫ػٍ‪ ٝ‬ػٕب‪ٚ ٓ٠ٚ‬ؽ‪ٛ‬ي وً ػٕ‪ٛ‬اْ ‪ 16‬ثذ‬

‫‪SP‬‬
‫‪Bp‬‬
‫‪SI‬‬
‫‪DI‬‬
‫‪IP‬‬

‫‪٠ Stack pointer :Sp‬إشش ػٍ‪ ٝ‬اخش ِؼط‪ ٝ‬رُ ادخبٌٗ اٌ‪ ٝ‬اي ‪ٛ٘ stack . stack‬‬
‫ػجبسح ػٓ ِٕطمخ ف‪ ٟ‬راوشح اٌمشاءح ‪ٚ‬اٌىزبثخ ‪ RAM‬رغزخذَ ٌٍزخض‪ ٓ٠‬اٌّإلذ ع‪ٛ‬ف‬
‫ٔزطشق ٌ‪ٙ‬ب ف‪ ٟ‬دس‪ٚ‬ط لبدِخ‪.‬‬

‫‪٠ Base pointer :BP‬غزخذَ ٌٍزأش‪١‬ش ػٍ‪ِ ٝ‬ؼط‪ ٝ‬ف‪ ٟ‬داخً اي ‪stack‬‬
‫‪٠ Source index:SI‬ؾز‪ ٞٛ‬ػٍ‪ ٝ‬ػٕ‪ٛ‬اْ ِؼط‪ ٝ‬ف‪ِ ٟ‬مطغ اٌج‪١‬بٔبد‬

‫‪٠ Destination Index :DI‬ؾز‪ ٞٛ‬ػٍ‪ ٝ‬ػٕ‪ٛ‬اْ ِؼ‪ ٓ١‬ف‪ِ ٟ‬مطغ اٌج‪١‬بٔبد‬

‫‪٠ Instruction Pointer :IP‬ؾز‪ ٞٛ‬ػٍ‪ ٝ‬ػٕ‪ٛ‬اْ االِش اٌزبٌ‪ ٟ‬اٌز‪٠ ٞ‬غت اْ ‪ٕ٠‬فزٖ‬
‫اٌّؼبٌظ ثؼذ أ‪ٙ‬بء االِش اٌؾبٌ‪ ٟ‬أ‪ ٞ‬االِش اٌز‪ٕ٠ ٞ‬فزٖ ؽبٌ‪١‬ب‬

‫**ِالؽظبد‪:‬‬

‫‪ -‬ال ‪ّ٠‬ىٓ رمغ‪ ُ١‬أ‪٘ ِٓ ٞ‬زٖ اٌّغغالد‬

‫‪-‬اٌّمطغ ٘‪ ٛ‬ػجبسح ػٓ ِىبْ ف‪ ٟ‬اٌزاوشح ؽ‪ ٌٗٛ‬االوجش ٘‪ 64 ٛ‬و‪ٍٛ١‬ثب‪٠‬ذ‪ّ٠ .‬ىٓ اْ ‪٠‬ؾز‪ٞٛ‬‬


‫اٌجشٔبِظ ػٍ‪ِ 4 ٝ‬مبؽغ ‪ّ٠ٚ‬ىٓ الً ؽغت اٌؾبعخ‪ .‬اٌّمبؽغ ٘‪ ٟ‬وّب ‪:ٍٟ٠‬‬

‫‪ِ -1‬مطغ اي ‪stack segment‬‬

‫‪ِ -2‬مطغ اٌج‪١‬بٔبد ‪٠ Data segment‬ؾز‪ ٞٛ‬ػٍ‪ ٝ‬اٌّزغ‪١‬شاد ‪ٚ‬اٌض‪ٛ‬اثذ‬

‫‪ِ -3‬مطغ اٌج‪١‬بٔبد االػبف‪١‬خ ‪٠ extra segment‬غزخذَ ٌزخض‪ ٓ٠‬اٌج‪١‬بٔبد االػبف‪١‬خ ف‪ٟ‬‬
‫ؽبٌخ ارا ٌُ ‪٠‬ىٓ ٕ٘بٌه ِىبٔب ف‪ِ ٟ‬مطغ اٌج‪١‬بٔبد ‪ّ٠ٚ‬ىٓ ا‪٠‬ؼب اعزخذاِٗ ؽز‪ ٌٛٚ ٝ‬وبْ‬
‫ٕ٘بٌه اِبوٓ فبسغخ ف‪ِ ٟ‬مطغ اٌج‪١‬بٔبد‪ .‬ع‪ٛ‬ف ٔش‪ ٜ‬رٌه ف‪ ٟ‬اٌذس‪ٚ‬ط اٌّمجٍخ‬

‫‪ِ -4‬مطغ اال‪ٚ‬اِش ‪٠ code segment‬ؾز‪ ٞٛ‬ػٍ‪ ٝ‬ا‪ٚ‬اِش اٌجشٔبِظ‬

‫انًدًىعت انثبنثت‪:‬‬
‫ِغّ‪ٛ‬ػخ ِغغالد اٌّمبؽغ ‪ ٟ٘ٚ‬رؾز‪ ٞٛ‬ػٍ‪ ٝ‬ػٕب‪ ٓ٠ٚ‬ثذا‪٠‬خ اٌّمبؽغ ‪ٚ‬ؽ‪ٛ‬ي وً ِغغً‬
‫‪ 16‬ثذ ‪ٚ‬ال ‪ّ٠‬ىٓ رمغ‪ ّٗ١‬أ‪٠ ٞ‬غت اٌزؼبًِ ِؼٗ ثبوٍّٗ‪ِ 4 ٟ٘ٚ.‬غغالد (‪)registers‬‬
‫‪CS‬‬
‫‪DS‬‬
‫‪SS‬‬
‫‪ES‬‬

‫‪extra segment :ES‬‬ ‫‪data segment :DS‬‬ ‫‪code segment :CS‬‬


‫‪stack segment:SS‬‬
‫انًدًىعت االخُزة‪:‬‬
‫رؾز‪ ٞٛ‬ػٍ‪ِ ٝ‬غغً ‪ٚ‬اؽذ ‪ِ ٛ٘ٚ‬غغً اٌشا‪٠‬بد ‪ ٛ٘ٚ . flags registers‬ثط‪ٛ‬ي ‪ 16‬ثذ‬
‫‪ّ٠‬ىٓ اٌز‪ٛ‬عٗ ٌىً ثذ ػٍ‪ ٝ‬ؽذح ‪ .‬وً ثذ رؼط‪ِ ٟ‬ؼٍ‪ِٛ‬خ ِؼ‪ٕ١‬خ ػٓ اخش ػٍّ‪١‬خ لبِذ ث‪ٙ‬ب‬
‫‪ٚ‬ؽذح اٌؾغبة ‪ٚ‬إٌّطك ف‪ ٟ‬اٌّؼبٌظ ‪.‬‬

‫ػٍ‪ ٝ‬وً ِجشِظ اْ ‪٠‬ف‪٘ ُٙ‬زا اٌّغغً ثشىً ع‪١‬ذ ؽز‪٠ ٝ‬غزط‪١‬غ اْ ‪٠‬جشِظ ثشىً ع‪١‬ذ‪ .‬رمغُ‬
‫اٌشا‪٠‬بد اٌ‪ ٝ‬صالصخ الغبَ‪:‬‬

‫‪ -‬راَبث غُز يسخعًهت‪ :‬أ‪ ٞ‬أ‪ٙ‬ب ال رف‪١‬ذ ف‪ ٟ‬اٌؾىُ ػٍ‪ ٝ‬اخش ػٍّ‪١‬خ ‪ِٛ ٟ٘ٚ‬ع‪ٛ‬دح فمؾ ف‪ٟ‬‬
‫ؽبٌخ رط‪٠ٛ‬ش اٌّؼبٌظ سثّب ‪٠‬ؾزبع‪ ْٛ‬اٌ‪ ٝ‬سا‪٠‬بد اػبف‪١‬خ ف‪ّ١‬ىٓ اعزغالي ٘زٖ اٌشا‪٠‬بد‪ .‬ف‪ٟ‬‬
‫اٌ‪ٛ‬لذ اٌؾبٌ‪ٔ ٟ‬ؾٓ ٌغٕب ثؾبعخ اٌ‪ٙ١‬ب‬

‫‪ -‬راَبث انىضع‪ ٟ٘ٚ :‬اٌشا‪٠‬بد اٌز‪ ٟ‬رزأصش ‪ٚ‬رزغ‪١‬ش ؽغت ‪ٚ‬ػغ اٌؼٍّ‪١‬بد اٌز‪ ٟ‬رم‪ َٛ‬ث‪ٙ‬ب‬
‫‪ٚ‬ؽذح اٌؾغبة ‪ٚ‬إٌّطك ف‪ ٟ‬اٌّؼبٌظ‬

‫‪ -‬راَبث انسُطزة‪ ٟ٘ٚ :‬سا‪٠‬بد اٌّجشِظ ‪٠‬زؾىُ ث‪ٛ‬ػؼ‪ٙ‬ب فبرا ‪ٚ‬ػغ ثذاخٍ‪ٙ‬ب اٌم‪ّ١‬خ ‪ 1‬رجم‪ٝ‬‬
‫٘زٖ اٌم‪ّ١‬خ ؽز‪٠ ٝ‬غ‪١‬ش٘ب اٌّجشِظ ف‪ ٟ‬اٌجشٔبِظ ػٓ ؽش‪٠‬ك ا‪ٚ‬اِش ثشِغخ خبطخ ث‪ٙ‬ب‬

‫ِغغً اٌشا‪٠‬بد ف‪ ٟ‬اٌّؼبٌظ ‪٠ 8086‬ؾز‪ ٞٛ‬ػٍ‪ 7 ٝ‬سا‪٠‬بد غ‪١‬ش ِغزخذِخ ‪ 6‬سا‪٠‬بد ‪ٚ‬ػغ‬
‫‪ 3 ٚ‬سا‪٠‬بد ع‪١‬طشح‬
‫‪X X X X OF DF IF TF SF ZF X AF X PF X CF‬‬

‫وً سا‪٠‬خ رؾز‪ ٞٛ‬ػٍ‪ ٝ‬االشبسح ‪ X‬ف‪ ٟٙ‬غ‪١‬ش ِغزخذِخ‬

‫ِالؽظبد‬ ‫إٌ‪ٛ‬ع‬ ‫اٌشِض اعُ اٌشا‪٠‬خ‬


‫‪٠‬أخز ‪ 1‬ارا اػطذ اٌجذ االخ‪١‬شح ػٓ‬ ‫‪ٚ‬ػغ‬ ‫‪Carry flag CF‬‬
‫اٌ‪١‬غبس ‪ 1‬اٌ‪ ٝ‬اٌخبسط ا‪ ٚ‬اخزد ‪ِٓ 1‬‬
‫اٌخبسط ‪ٚ‬اال ‪٠‬أخز طفش‬
‫ارا وبْ ػذد اي ‪ 1‬ف‪ ٟ‬ا‪ٚ‬ي ‪ 8‬ثزبد ِٓ‬ ‫‪ٚ‬ػغ‬ ‫‪Parity flag‬‬ ‫‪PF‬‬
‫إٌز‪١‬غخ ص‪ٚ‬ع‪ ٟ‬رأخز ٘زٖ اٌشا‪٠‬خ ‪ٚ 1‬اال‬
‫رأخز طفش‬
‫ارا اػطذ اٌجذ اٌشاثؼخ اٌجذ اٌخبِغٗ ‪1‬‬ ‫‪ٚ‬ػغ‬ ‫‪Auxiliary flag‬‬ ‫‪AF‬‬
‫ا‪ ٚ‬اخزد اٌجذ اٌشاثؼخ ِٓ اٌجذ اٌخبِغخ‬
‫‪ 1‬رأخز ٘زٖ اٌشا‪٠‬خ ‪ٚ 1‬اال طفش‬
‫ارا وبٔذ إٌز‪١‬غخ طفش رأخز ٘زٖ اٌشا‪٠‬خ‬ ‫‪ٚ‬ػغ‬ ‫‪Zero flag‬‬ ‫‪ZF‬‬
‫‪ٚ 1‬اال رأخز طفش‬
‫ارا وبٔذ إٌز‪١‬غخ عبٌجخ رأخز ٘زٖ اٌشا‪٠‬خ‬ ‫‪ٚ‬ػغ‬ ‫‪Sign flag‬‬ ‫‪SF‬‬
‫اٌم‪ّ١‬خ‪ٚ 1‬اال رأخز اٌم‪ّ١‬خ طفش‬
‫ارا ‪ٚ‬ػغ اٌّجشِظ ث‪ٙ‬ب اٌم‪ّ١‬خ ‪٠ 1‬زُ رٕف‪١‬ز‬ ‫ع‪١‬طشح‬ ‫‪Trap flag‬‬ ‫‪TF‬‬
‫اِش ‪ٚ‬اؽذ فمؾ ِٓ اال‪ٚ‬اِش ‪ٚ‬ثؼذ٘ب رأخز‬
‫اٌم‪ّ١‬خ طفش‬
‫ٔؼؼٗ ‪ٌٍ 1‬غّبػ ٌؼٍّ‪١‬بد ‪interrupt‬‬ ‫ع‪١‬طشح‬ ‫‪Interrupt flag‬‬ ‫‪IF‬‬
‫ف‪ِ ٟ‬ذخً ‪ٌٍّ interrupt‬ؼبٌظ‬
‫ٌزؾذ‪٠‬ذ ارغبٖ اٌؾشوخ ف‪ ٟ‬ؽبٌخ لشاءح‬ ‫‪ Direction Flag‬ع‪١‬طشح‬ ‫‪DF‬‬
‫إٌظ‪ٛ‬ص‬
‫رأخز ‪ 1‬ارا وبٔذ إٌز‪١‬غخ اوجش ِٓ اٌّىبْ‬ ‫‪ٚ‬ػغ‬ ‫‪Overflow flag‬‬ ‫‪OF‬‬
‫اٌّخظض ٌؾفظ‪ٙ‬ب ‪ٚ‬اال رأخز طفش‬

‫انًىاسٍَ‬

‫ٕ٘بٌه اٌؼذ‪٠‬ذ ِٓ اٌّ‪ٛ‬اص‪ٌٚ ٓ٠‬ىٓ ِب ‪ّٕٙ٠‬ب ٘‪ٛ‬‬

‫‪-1‬انًُشاٌ انثُبئٍ‪ :‬سِ‪ٛ‬ص ٘زا اٌّ‪١‬ضاْ ‪ٚ 1 , 0‬ثّغبػذح ٘زٖ اٌشِ‪ٛ‬ص ‪٠‬زُ رى‪ٓ٠ٛ‬‬
‫االػذاد ف‪٘ ٟ‬زا اٌّ‪١‬ضاْ‬

‫يثال‪٘ :‬زٖ اسثؼخ اػذاد ف‪ ٟ‬اٌّ‪١‬ضاْ اٌضٕبئ‪ٟ‬‬


‫‪101010 1100110 0101 1001‬‬

‫االػذاد اٌزبٌ‪١‬خ غ‪١‬ش طؾ‪١‬ؾخ الْ ث‪ٙ‬ب سِ‪ٛ‬ص ال رٕزّ‪ٌ ٟ‬شِ‪ٛ‬ص اٌّ‪١‬ضاْ‬
‫اٌغجت‬ ‫اٌؼذد‬
‫الْ اٌشِض ‪١ٌ 2‬ظ ِٓ سِ‪ٛ‬ص اٌّ‪١‬ضاْ‬ ‫‪102‬‬
‫ثغجت اٌشِض ‪ 3‬ف‪ٙ‬زا اٌشِض ال ‪٠‬زجغ ٌشِ‪ٛ‬ص اٌّ‪١‬ضاْ‬ ‫‪11013‬‬

‫‪-2‬انًُشاٌ انعشزٌ ‪ :‬سِ‪ٛ‬ص ٘زا اٌّ‪١‬ضاْ ‪ٚ 0,1,2,3,4,5,6,7,8,9‬وّب ٔالؽع‬


‫ػذد٘ب ‪ 10‬سِ‪ٛ‬ص‬
‫اِضٍخ‪1234 , 532 , 100 , 201 :‬‬
‫االػذاد اٌزبٌ‪١‬خ غ‪١‬ش طؾ‪١‬ؾخ الْ ث‪ٙ‬ب سِ‪ٛ‬ص ال رٕزّ‪ٌ ٟ‬شِ‪ٛ‬ص اٌّ‪١‬ضاْ‬
‫اٌغجت‬ ‫اٌؼذد‬
‫الْ اٌشِض ‪١ٌ A‬ظ ِٓ سِ‪ٛ‬ص اٌّ‪١‬ضاْ‬ ‫‪10A2‬‬
‫ثغجت اٌشِض ‪ F‬ف‪ٙ‬زا اٌشِض ال ‪٠‬زجغ ٌشِ‪ٛ‬ص اٌّ‪١‬ضاْ‬ ‫‪11013F‬‬

‫‪-3‬انًُشاٌ انسبدص عشز‪ :‬سِ‪ٛ‬ص ٘زا اٌّ‪١‬ضاْ‬


‫‪0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F‬‬
‫اِضٍخ‪:‬‬
‫‪101 , 217 ,‬‬ ‫‪2A3 , 5FA1 , FF‬‬

‫االػذاد اٌزبٌ‪١‬خ غ‪١‬ش طؾ‪١‬ؾخ الْ ث‪ٙ‬ب سِ‪ٛ‬ص ال رٕزّ‪ٌ ٟ‬شِ‪ٛ‬ص اٌّ‪١‬ضاْ‬
‫اٌغجت‬ ‫اٌؼذد‬
‫الْ اٌشِض ‪١ٌ G‬ظ ِٓ سِ‪ٛ‬ص اٌّ‪١‬ضاْ‬ ‫‪102G‬‬
‫ثغجت اٌشِض ‪ K‬ف‪ٙ‬زا اٌشِض ال ‪٠‬زجغ ٌشِ‪ٛ‬ص اٌّ‪١‬ضاْ‬ ‫‪1101K3‬‬

‫انخحىَم بٍُ انًىاسٍَ‬

‫ٌزؾ‪ ً٠ٛ‬أ‪ ٞ‬ػذد ف‪ ٟ‬أ‪١ِ ٞ‬ضاْ اٌ‪ ٝ‬اٌّ‪١‬ضاْ اٌؼشش‪ٔ ٞ‬ؼًّ ِب ‪:ٍٟ٠‬‬
‫‪ٔ-1‬ؾ‪ٛ‬ي اٌؼذد اٌّشاد رؾ‪ ٍٗ٠ٛ‬اٌ‪ ٝ‬ط‪ٛ‬سح ِغّ‪ٛ‬ع اٌم‪ٜٛ‬‬
‫‪ٔ-2‬غّغ اٌم‪ٌٍ ُ١‬ؾظ‪ٛ‬ي ػٍ‪ ٝ‬اٌم‪ّ١‬خ اٌّطٍ‪ٛ‬ثخ‬

‫اٌمبٔ‪ ْٛ‬اٌؼبَ ٌظ‪ٛ‬سح لبٔ‪ِ ْٛ‬غّ‪ٛ‬ع اٌم‪ٜٛ‬‬


‫‪X=an*b +an-1*b +…. +a1*b0‬‬
‫‪n-1‬‬ ‫‪n-2‬‬

‫االعبط (اٌّ‪١‬ضاْ)‬
‫اٌخبٔخ ‪n‬‬

‫يالحظت‪:‬أ‪ ٞ‬ػذد ٌٍم‪ٛ‬ح طفش = ‪ٚ‬اؽذ‬


‫ِب ػذا اٌظفش‬
‫ٌزٌه ‪b0=1‬‬
‫يثبل‪ :‬ؽ‪ٛ‬ي اٌؼذد )‪ )1101‬ف‪ ٟ‬اٌّ‪١‬ضاْ اٌضٕبئ‪ ٟ‬اٌ‪ ٝ‬اٌّ‪١‬ضاْ اٌؼشش‪ٞ‬‬
‫‪n=4‬‬ ‫انحم‪ٕ٘ :‬ب ‪b=2‬‬
‫‪3‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪0‬‬
‫‪X=1*2 +1*2 +0*2 +1*2‬‬
‫‪X=1*8+1*4+0*2+1*1‬‬
‫‪X=8+4+0+1‬‬
‫‪X=13‬‬
‫ارا‬
‫‪(1101)2=(13)10‬‬

‫اٌؼشش‪ٞ‬‬
‫اٌّ‪١‬ضاْ اٌضٕبئ‪ٟ‬‬

‫ِضبي اخش ِؼط‪ ٝ‬اٌؼذد ‪ 1A‬ف‪ ٟ‬اٌّ‪١‬ضاْ اٌغبدط ػشش‪ ،‬عذ ل‪ّ١‬خ ٘زا اٌؼذد ف‪ٟ‬‬
‫اٌّ‪١‬ضاْ اٌؼشش‪.ٞ‬‬
‫‪b=16‬‬ ‫‪n=2‬‬ ‫ٕ٘ب‪:‬‬
‫‪X=1*161+A*160‬‬
‫‪X=1*16+10*1‬‬
‫‪X=16+10‬‬
‫‪X=26‬‬
‫يالحظت‪:‬‬
‫اٌغبدط ػشش‬ ‫اٌؼشش‪ٞ‬‬
‫‪A‬‬ ‫‪10‬‬
‫‪B‬‬ ‫‪11‬‬
‫‪C‬‬ ‫‪12‬‬
‫‪D‬‬ ‫‪13‬‬
‫‪E‬‬ ‫‪14‬‬
‫‪F‬‬ ‫‪15‬‬
‫يثبل اخز‪:‬‬

‫ؽ‪ٛ‬ي اٌؼذد ‪ 2F‬اٌ‪ ٝ‬اٌّ‪١‬ضاْ اٌؼشش‪ٞ‬‬


‫‪1‬‬ ‫‪0‬‬
‫‪X=2*16 +F*16‬‬
‫‪X=2*16+15*1‬‬
‫‪X=32+15‬‬
‫‪X=47‬‬
‫‪(2F)16=(47)10‬‬

‫انخحىَم يٍ انًُشاٌ ‪ 16‬انً انًُشاٌ ‪2‬‬

‫وً خبٔخ ف‪١ِ ٟ‬ضاْ اٌغبدط ػشش ػجبسح ػٓ ‪ 4‬خبٔبد ف‪ ٟ‬اٌّ‪١‬ضاْ اٌضٕبئ‪ٟ‬‬
‫ٌف‪ ُٙ‬ػٍّ‪١‬خ اٌزؾ‪٠ ً٠ٛ‬غت اْ ٔؼشف ِب ‪:ٍٟ٠‬‬
‫ٌىً خبٔخ ‪ٛ٠‬عذ ‪ٚ‬صْ ‪ٚٚ‬صٔ‪ٙ‬ب ٘‪ ٛ‬االعبط ٌٍم‪ٛ‬ح اٌّىبْ ٔبلض ‪ٚ‬اؽذ‬
‫أ‪bn-1 ٞ‬‬
‫ف‪ ٟ‬اٌغذ‪ٚ‬ي اٌزبٌ‪ ٟ‬ل‪ ُ١‬اٌخبٔبد ف‪ ٟ‬اٌّ‪١‬ضاْ اٌضٕبئ‪b=2 ٟ‬‬
‫اال‪ ٌٝٚ‬اٌضبٔ‪١‬خ اٌضبٌضخ اٌشاثؼخ اٌخبِغخ اٌغبدعخ اٌغبثؼخ اٌضبِٕخ‬
‫‪128‬‬ ‫‪64‬‬ ‫‪32‬‬ ‫‪16‬‬ ‫‪8‬‬ ‫‪4‬‬ ‫‪2‬‬ ‫‪1‬‬

‫ف‪ ٟ‬اٌغذ‪ٚ‬ي اٌزبٌ‪ ٟ‬ل‪ ُ١‬اٌخبٔبد ف‪ ٟ‬اٌّ‪١‬ضاْ اٌؼشش‪b=10 ٞ‬‬


‫اال‪ ٌٝٚ‬اٌضبٔ‪١‬خ اٌضبٌضخ اٌشاثؼخ اٌخبِغخ اٌغبدعخ اٌغبثؼخ اٌضبِٕخ‬
‫‪107‬‬ ‫‪106‬‬ ‫‪105 10000 1000 100 10‬‬ ‫‪1‬‬
‫ف‪ ٟ‬اٌغذ‪ٚ‬ي اٌزبٌ‪ ٟ‬ل‪ ُ١‬اٌخبٔبد ف‪ ٟ‬اٌّ‪١‬ضاْ اٌغبدط ػشش ‪b=16‬‬
‫اال‪ ٌٝٚ‬اٌضبٔ‪١‬خ اٌضبٌضخ اٌشاثؼخ اٌخبِغخ اٌغبدعخ اٌغبثؼخ اٌضبِٕخ‬
‫‪167‬‬ ‫‪166‬‬ ‫‪165‬‬ ‫‪164 4096 256 16‬‬ ‫‪1‬‬

‫اندذول انخبنٍ َزبظ بٍُ انًُشاٌ انسبدص عشز وانثُبئٍ‬

‫رزوش وً خبٔخ ف‪ ٟ‬اٌّ‪١‬ضاْ اٌغبدط ػشش ػجبسح ػٓ ‪ 4‬خبٔبد ف‪ ٟ‬اٌّ‪١‬ضاْ‬


‫اٌضٕبئ‪ٟ‬‬
‫اٌغبدط ػشش‬ ‫ا ٌّ‪١‬ضاْ اٌضٕبئ‪ٟ‬‬ ‫اٌؼشش‪ٞ‬‬
‫اٌخبٔخ‬ ‫اٌخبٔخ‬ ‫اٌخبٔخ‬ ‫اٌخبٔخ‬
‫اٌشاثؼخ‬ ‫اٌضبٌضخ‬ ‫اٌضبٔ‪١‬خ‬ ‫اال‪ٌٝٚ‬‬
‫‪8‬‬ ‫‪4‬‬ ‫‪2‬‬ ‫‪1‬‬
‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪2‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪2‬‬
‫‪3‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪3‬‬
‫‪4‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪4‬‬
‫‪5‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪5‬‬
‫‪6‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪6‬‬
‫‪7‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪7‬‬
‫‪8‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪8‬‬
‫‪9‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪9‬‬
‫‪A‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪10‬‬
‫‪B‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪11‬‬
‫‪C‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪12‬‬
‫‪D‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪13‬‬
‫‪E‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪14‬‬
‫‪F‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪15‬‬

‫ِؼط‪ ٝ‬اٌؼذد ‪ 12‬ف‪ ٟ‬اٌّ‪١‬ضاْ اٌغبدط ػشش عذ ل‪ّ١‬زٗ ف‪ ٟ‬اٌّ‪١‬ضاْ اٌضٕبئ‪ٟ‬‬


‫‪1 2‬‬

‫‪0001‬‬ ‫‪0010‬‬

‫ارا اٌغ‪ٛ‬اة إٌ‪ٙ‬بئ‪00010010 ٛ٘ ٟ‬‬


‫‪(12)16=(00010010)2‬‬
‫اٌغذ‪ٚ‬ي اٌغبثك ‪٠‬ظٍؼ ٌٍزؾ‪ ِٓ ً٠ٛ‬اٌغبدط ػشش اٌ‪ ٝ‬اٌّ‪١‬ضاْ اٌضٕبئ‪ٚ ٟ‬ثبٌؼىظ‬
‫ِغ ِشاػبح اٌّالؽظخ اال‪ ٌٝٚ‬اال ‪ ٟ٘ٚ‬اْ وً ‪ 4‬خبٔبد ف‪ ٟ‬اٌّ‪١‬ضاْ اٌضٕبئ‪ٟ‬‬
‫ػجبسح ػٓ خبٔخ ف‪ ٟ‬اٌّ‪١‬ضاْ اٌغبدط ػشش‬

‫ايثهت‪:‬‬
‫ِؼط‪ ٝ‬اٌؼذد ‪ 10110011‬ف‪ ٟ‬اٌّ‪١‬ضاْ اٌضٕبئ‪ ٟ‬عذ اٌؼذد ف‪ ٟ‬اٌّ‪١‬ضاْ اٌغبدط‬
‫ػشش‬

‫انحم‪:‬‬
‫ٔؼًّ ِغّ‪ٛ‬ػخ وً ِغّ‪ٛ‬ػخ ػجبسح ػٓ ‪ 4‬خبٔبد ٔجذأ دائّب ِٓ اٌ‪ٓ١ّ١‬‬
‫اٌّغّ‪ٛ‬ػخ اال‪ٚ 0011 :ٌٝٚ‬ؽغت اٌغذ‪ٚ‬ي ٘‪ ٟ‬اٌشلُ ‪3‬‬
‫اٌّغّ‪ٛ‬ػخ اٌضبٔ‪١‬خ‪ٚ 1011 :‬ؽغت اٌغذ‪ٚ‬ي ٘‪B ٟ‬‬
‫اٌؾً إٌ‪ٙ‬بئ‪:ٟ‬‬
‫‪(10110011)2=(B3)16‬‬
‫ِالؽظخ ِ‪ّٙ‬خ‪ :‬ارا وبْ ػذد اٌخبٔبد الً ِٓ ‪ٔ 4‬ؼ‪١‬ف اطفبس ػٍ‪٠ ٝ‬غبس اٌؼذد‬
‫ؽز‪ٔ ٝ‬ىًّ اٌّغّ‪ٛ‬ػخ اٌ‪ 4 ٝ‬خبٔبد‬

‫يثبل‪:‬‬
‫ِؼط‪ ٝ‬اٌؼذد اٌزبٌ‪ ٟ‬ف‪ ٟ‬اٌضٕبئ‪ 1010110 ٟ‬عذ اٌؼذد ف‪ ٟ‬اٌغبدط ػشش‬
‫اٌّغّ‪ٛ‬ػخ اال‪ٚ 0110 :ٌٝٚ‬ؽغت اٌغذ‪ٚ‬ي ٘زٖ ‪6‬‬
‫اٌّغّ‪ٛ‬ػخ اٌضبٔ‪١‬خ ‪ ٟ٘ٚ 101 :‬رزى‪ 3 ِٓ ْٛ‬خبٔبد ٌزا ػٍ‪ٕ١‬ب اْ ٔؼ‪١‬ف ‪ 0‬ػٍ‪ٝ‬‬
‫‪٠‬غبس اٌّغّ‪ٛ‬ػخ ٌٕؾظً ػٍ‪ 4 ٝ‬خبٔبد‬
‫اٌّغّ‪ٛ‬ػخ اٌغذ‪٠‬ذح‪ٚ 0101 :‬ؽغت اٌغذ‪ٚ‬ي ٘‪5 ٟ‬‬
‫اٌؾً إٌ‪ٙ‬بئ‪ٟ‬‬
‫‪)1010110)2=(53)16‬‬

‫انخحىَم يٍ انعشزٌ انً انًُشاٌ انثُبئٍ‬

‫ٌف‪ ُٙ‬اٌطش‪٠‬مخ ػٍ‪ٕ١‬ب االرفبق ػٍ‪ ٝ‬االش‪١‬بء اٌزبٌ‪١‬خ‪:‬‬

‫‪ -‬اٌخبٔخ اال‪ ٟ٘ ٌٝٚ‬اٌخبٔخ اٌ‪ ٟ٘ٚ ّٕٝ١‬راد اٌم‪ّ١‬خ اٌظغش‪ٚ ٜ‬ل‪ّ١‬ز‪ٙ‬ب ‪20=1‬‬
‫اٌخبٔخ اٌز‪ ٟ‬رٍ‪ٙ١‬ب ٘‪ ٟ‬اٌخبٔخ اٌضبٔ‪١‬خ ‪ ٟ٘ٚ‬رمغ ػٍ‪٠ ٝ‬غبس٘ب ‪٘ٚ‬ىزا‬
‫‪ -‬ػٍّ‪١‬خ اٌزؾ‪ ً٠ٛ‬ػٓ ؽش‪٠‬ك اٌمغّخ ٔمغُ اٌؼذد اٌؼشش‪ ٞ‬ػٍ‪ٚ 2 ٝ‬اٌخبٔخ اٌز‪ٟ‬‬
‫ػٍ‪ٙ١‬ب اٌذ‪ٚ‬س رأخز ثبل‪ ٟ‬اٌمغّخ ‪ٔٚ‬مغُ إٌبرظ اٌظؾ‪١‬ؼ ِشح صبٔ‪١‬خ ػٍ‪ٚ 2 ٝ‬رأخز‬
‫اٌخبٔخ اٌزبٌ‪١‬خ ثبل‪ ٟ‬اٌمغّخ ٔغزّش ف‪٘ ٟ‬زٖ اٌطش‪٠‬مخ ؽز‪٠ ٝ‬ى‪ ْٛ‬اٌّمغ‪ َٛ‬الً ِٓ‬
‫اٌّمغ‪ َٛ‬ػٍ‪ ٗ١‬فزأخز اٌخبٔخ اٌؾبٌ‪١‬خ ل‪ّ١‬خ اٌّمغ‪ٕ٠ٚ َٛ‬ز‪ ٟٙ‬اٌزؾ‪.ً٠ٛ‬‬
‫ٔم‪ َٛ‬االْ ثىزبثخ األٌغ‪ٛ‬س‪٠‬ضُ‬

‫‪ .1‬ػ‪ٛ‬ع ‪n=1‬‬
‫‪ .2‬ػ‪ٛ‬ع اٌّمغ‪ َٛ‬ػٍ‪b=2 ٗ١‬‬
‫‪ .3‬ػ‪ٛ‬ع اٌؼذد اٌؼشش‪ ٞ‬ف‪ ٟ‬اٌّمغ‪x َٛ‬‬
‫‪ .4‬ؽبٌّب ‪ x‬اوجش ا‪٠ ٚ‬غب‪ٔ b ٞٚ‬فز‬
‫لغُ ‪ x‬ػٍ‪b ٝ‬‬
‫ػغ اٌجبل‪ ٟ‬ف‪ ٟ‬اٌخبٔخ ‪n‬‬
‫ػغ ف‪ x ٟ‬إٌبرظ اٌظؾ‪١‬ؼ‬
‫اػف ‪ٌ 1‬شلُ اٌخبٔخ ‪n‬‬
‫‪.5‬ػغ ‪ X‬ف‪ ٟ‬اٌخبٔخ ‪n‬‬

‫ِضبي‪:‬‬
‫ِؼط‪ ٝ‬اٌؼذد ‪ 12‬ػشش‪ ٞ‬ؽ‪ٛ‬ي اٌؼذد اٌ‪ ٝ‬اٌّ‪١‬ضاْ اٌضٕبئ‪ٟ‬‬
‫اٌؾً‪:‬‬
‫سلُ اٌخبٔخ ‪n‬‬ ‫اٌؼذد اٌضٕبئ‪ٟ‬‬ ‫اٌؼذد إٌبرظ اٌظؾ‪١‬ؼ اٌجبل‪ً٘ ٟ‬‬
‫‪X>=b‬‬
‫‪1‬‬
‫ٔؼُ‬ ‫‪12‬‬
‫‪2‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪6‬‬
‫ٔؼُ‬ ‫‪6‬‬
‫‪3‬‬ ‫‪00‬‬ ‫‪0‬‬ ‫‪3‬‬
‫ٔؼُ‬ ‫‪3‬‬
‫‪4‬‬ ‫‪100‬‬ ‫‪1‬‬ ‫‪1‬‬
‫ال‬ ‫‪1‬‬
‫‪1100‬‬
‫ؽش‪٠‬مخ اخش‪ٔ ٜ‬مغُ ػٍ‪ 2 ٝ‬ؽز‪٠ ٝ‬ى‪ ْٛ‬إٌبرظ طفش‬
‫ِضبي‪:‬‬
‫ِؼط‪ ٝ‬اٌؼذد اٌؼشش‪ 57 ٞ‬ؽ‪ٛ‬ي اٌؼذد اٌ‪ ٝ‬اٌضٕبئ‪ٟ‬‬
‫اٌّمغ‪ َٛ‬اٌّمغ‪ َٛ‬ػٍ‪ ٗ١‬إٌبرظ اٌظؾ‪١‬ؼ اٌجبل‪ٟ‬‬
‫‪1‬‬ ‫‪28‬‬ ‫‪2‬‬ ‫‪57‬‬
‫‪0‬‬ ‫‪14‬‬ ‫‪2‬‬ ‫‪28‬‬
‫‪0‬‬ ‫‪7‬‬ ‫‪2‬‬ ‫‪14‬‬
‫‪1‬‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪7‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪3‬‬
‫‪1‬‬ ‫‪0‬‬ ‫‪2‬‬ ‫‪1‬‬

‫االْ ٔىزت اٌؼذد ٔجذأ ِٓ االعفً‬


‫‪111001‬‬
‫ِالؽظخ ارا اسدٔب رؾ‪ ً٠ٛ‬ػذد ػشش‪ ٞ‬اٌ‪ ٝ‬اٌّ‪١‬ضاْ اٌغبدط ػشش ٔؼًّ ٔفظ‬
‫اٌش‪ٟ‬ء ‪ٌٚ‬ىٓ ثذال ِٓ ‪٠ b=2‬ى‪b=16 ْٛ‬‬
‫ِغ ِشاػبح اٌغذ‪ٚ‬ي اٌغبثك‬
‫‪A=10 b=11 C=12 D=13 E=14 F=15‬‬
‫ِضبي ‪:‬‬
‫ؽ‪ٛ‬ي اٌؼذد ‪ 254‬اٌ‪ ٝ‬اٌّ‪١‬ضاْ اٌغبدط ػشش‬

‫إٌبرظ اٌظؾ‪١‬ؼ اٌجبل‪ٟ‬‬ ‫اٌّمغ‪ َٛ‬اٌّمغ‪ َٛ‬ػٍ‪ٗ١‬‬


‫‪14‬‬ ‫‪15‬‬ ‫‪16 254‬‬
‫‪15‬‬ ‫‪0‬‬ ‫‪16‬‬ ‫‪15‬‬

‫‪E=14‬‬ ‫ػٕذ رغغ‪ ً١‬اٌؼذد ٔززوش اٌغذ‪ٚ‬ي ‪F=15‬‬


‫اٌغ‪ٛ‬اة إٌ‪ٙ‬بئ‪ٟ‬‬
‫‪(254)10=(FE)16‬‬
‫ؽش‪٠‬مخ اخش‪ ٟ٘ ٜ‬االٔزمبي ِٓ اٌّ‪١‬ضاْ اٌؼشش‪ ٞ‬اٌ‪ ٝ‬اٌضٕبئ‪ٚ ٟ‬ثؼذ٘ب ِٓ اٌضٕبئ‪ٟ‬‬
‫اٌ‪ ٝ‬اٌغبدط ػشش‬

‫ؽش‪٠‬مخ اخش‪ٌ ٜ‬زؾ‪ ً٠ٛ‬اٌؼذد ِٓ اٌؼشش‪ ٞ‬اٌ‪ ٝ‬اٌضٕبئ‪ ٟ٘ ٟ‬وّب ‪:ٍٟ٠‬‬


‫ٔؾٓ ٔؼشف اْ ٌىً خبٔخ ل‪ّ١‬خ ؽغت لبٔ‪bn-1 ْٛ‬‬
‫ارا ٔظشٔب ثزّؼٓ ٔغذ اْ ل‪ّ١‬خ اٌخبٔخ اٌزبٌ‪١‬خ ٘‪ ٟ‬دائّب ل‪ّ١‬خ اٌخبٔخ اٌؾبٌ‪١‬خ‬
‫ِؼش‪ٚ‬ثخ ثبٌؼذد ‪2‬‬
‫ػٕذ رؾ‪ ً٠ٛ‬ػذد ػشش‪ٔ ٞ‬جذأ ثزغغ‪ ً١‬اٌم‪ ُ١‬ؽز‪ ٝ‬اٌؾظ‪ٛ‬ي ػٍ‪ ٝ‬ل‪ّ١‬خ خبٔخ‬
‫رغب‪ ٞٚ‬اٌؼذد اٌّطٍ‪ٛ‬ة ا‪ ٚ‬اوجش ِٕٗ ِضبي‪:‬‬
‫ؽ‪ٛ‬ي اٌؼذد ‪ 104‬اٌ‪ ٝ‬اٌّ‪١‬ضاْ اٌضٕبئ‪ٟ‬‬

‫اٌشاثؼخ اٌخبِغخ اٌغبدعخ اٌغبثؼخ اٌضبِٕخ‬ ‫اٌضبٌضخ‬ ‫اال‪ ٌٝٚ‬اٌضبٔ‪١‬خ‬


‫‪128‬‬ ‫‪64‬‬ ‫‪32‬‬ ‫‪16‬‬ ‫‪8‬‬ ‫‪4‬‬ ‫‪2‬‬ ‫‪1‬‬

‫ٔؾٓ ٕ٘ب ثؾبعخ اٌ‪ 8 ٝ‬خبٔبد الْ ‪ 104‬اوجش ِٓ ‪ٚ 64‬اطغش ِٓ ‪128‬‬


‫اٌؾً االْ وّب ‪:ٍٟ٠‬‬
‫ٔجذأ ِٓ اٌ‪١‬غبس ‪ٔٚ‬غأي اٌغإاي ً٘ ل‪ّ١‬خ اٌخبٔخ الً ا‪ ٚ‬رغب‪ ٞٚ‬اٌؼذد اٌز‪ِ ٞ‬ؼٕب‬
‫ارا وبْ اٌغ‪ٛ‬اة ٔؼُ ٔؼغ اٌم‪ّ١‬خ ‪ 1‬رؾذ اٌخبٔخ ‪ٔٚ‬طشػ ِٓ اٌؼذد ل‪ّ١‬خ اٌخبٔخ‬
‫‪ٕٔٚ‬زمً اٌ‪ ٝ‬اٌخبٔخ اٌز‪ ٟ‬ػٓ ‪ٕٙ١ّ٠‬ب ‪ٚ‬اال ٔؼغ ‪ 0‬رؾذ اٌخبٔخ ‪ٚ‬ال ٔطشػ ش‪ٟ‬ء‬
‫‪ٕٔٚ‬زمً اٌ‪ ٝ‬اٌخبٔخ اٌز‪ ٟ‬ػٓ ‪ٕٙ١ّ٠‬ب ‪٘ٚ‬ىزا‬
‫اال‪ ٌٝٚ‬اٌضبٔ‪١‬خ اٌضبٌضخ اٌشاثؼخ اٌخبِغخ اٌغبدعخ اٌغبثؼخ اٌضبِٕخ‬
‫‪128‬‬ ‫‪64‬‬ ‫‪32‬‬ ‫‪16‬‬ ‫‪8‬‬ ‫‪4‬‬ ‫‪2‬‬ ‫‪1‬‬
‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪ 128 ً٘-‬اطغش ا‪ ٚ‬رغب‪ 104 ٞٚ‬اٌغ‪ٛ‬اة وال ارا ٔؼغ طفش‬
‫‪ 64 ً٘-‬اطغش ا‪ ٚ‬رغب‪ 104 ٞٚ‬اٌغ‪ٛ‬اة ٔؼُ ارا ٔؼغ ‪ٔٚ 1‬طشػ ‪٠ 64‬جم‪ِ ٝ‬ؼٕب‬
‫‪40‬‬
‫‪ 32 ً٘ -‬اطغش ا‪ ٚ‬رغب‪ 40 ٞٚ‬اٌغ‪ٛ‬اة ٔؼُ ارا ٔؼغ ‪ٔٚ 1‬طشػ ‪٠ 32‬جم‪ِ ٝ‬ؼٕب‬
‫‪8‬‬
‫‪ 16 ً٘-‬اطغش ا‪ ٚ‬رغب‪ 8 ٞٚ‬اٌغ‪ٛ‬اة اٌغ‪ٛ‬اة ال ارا ٔؼغ طفش‬
‫‪ 8 ً٘-‬اطغش ا‪ ٚ‬رغب‪ 8 ٞٚ‬اٌغ‪ٛ‬اة ٔؼُ ارا ٔؼغ ‪ٔٚ 1‬طشػ ‪٠ 8‬جم‪ِ ٝ‬ؼٕب طفش‬
‫‪ 4 ً٘-‬اطغش ا‪ ٚ‬رغب‪ 0 ٞٚ‬اٌغ‪ٛ‬اة وال ارا ٔؼغ طفش‬
‫‪ 2 ً٘-‬اطغش ا‪ ٚ‬رغب‪ 0 ٞٚ‬اٌغ‪ٛ‬اة وال ارا ٔؼغ طفش‬
‫‪ 1 ً٘-‬اطغش ا‪ ٚ‬رغب‪ 0 ٞٚ‬اٌغ‪ٛ‬اة وال ارا ٔؼغ طفش‬
‫اٌؾً إٌ‪ٙ‬بئ‪ٟ‬‬
‫اال‪ ٌٝٚ‬اٌضبٔ‪١‬خ اٌضبٌضخ اٌشاثؼخ اٌخبِغخ اٌغبدعخ اٌغبثؼخ اٌضبِٕخ‬
‫‪128‬‬ ‫‪64‬‬ ‫‪32‬‬ ‫‪16‬‬ ‫‪8‬‬ ‫‪4‬‬ ‫‪2‬‬ ‫‪1‬‬
‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬

‫اٌؾً إٌ‪ٙ‬بئ‪ٟ‬‬
‫‪(104)10= (01101000)2‬‬
‫ِالؽظخ‪ :‬عّ‪١‬غ اٌطشق اٌز‪ ٟ‬رُ ششؽ‪ٙ‬ب ف‪٘ ٟ‬زا اٌذسط رٕبعت االػذاد اٌّ‪ٛ‬عجخ‬
‫فمؾ‬
‫ف‪ ٟ‬اٌذسط اٌمبدَ ع‪ٛ‬ف ٔزطشق اٌ‪ ٝ‬االػذاد اٌّ‪ٛ‬ع‪ٙ‬خ (اٌغبٌجخ ‪ٚ‬اٌّ‪ٛ‬عجخ)‬
‫ثبالخض االػذاد اٌغبٌجخ‬

‫االعذاد انًىخهت ( انسبنبت وانًىخبت )‬

‫رمغُ االػذاد اٌ‪ ٝ‬لغّ‪ ٓ١‬اػذاد ِ‪ٛ‬عجخ ‪ٚ‬اػذاد عبٌجخ ‪ٚ‬اٌغإاي ٘‪ ٛ‬و‪١‬ف ‪ّ٠‬ىٓ اْ‬
‫ٔفشق ث‪٘ ٓ١‬زٖ االػذاد‪.‬‬
‫ِٓ اٌّؼش‪ٚ‬ف اْ اٌؼذد ف‪ ٟ‬اٌّ‪١‬ضاْ اٌضٕبئ‪٠ ٟ‬زى‪ ِٓ ْٛ‬ثزبد ‪ .‬اٌجذ اال‪ٌٝٚ‬‬
‫اٌّ‪ٛ‬ع‪ٛ‬دح ف‪ ٟ‬اٌغ‪ٙ‬خ اٌ‪ ٟ٘ ّٕٝ١‬اٌجذ راد اٌم‪ّ١‬خ اٌظغش‪ٚ ٜ‬اِب اٌجذ اٌّ‪ٛ‬ع‪ٛ‬دح‬
‫ف‪ ٟ‬اٌغ‪ٙ‬خ اٌ‪١‬غش‪ ٜ‬ف‪ ٟٙ‬ثذ االشبسح ‪ .‬ارا وبٔذ ل‪ّ١‬ز‪ٙ‬ب ‪ 1‬فبٌؼذد عبٌت ‪ٚ‬ارا وبٔذ‬
‫ل‪ّ١‬ز‪ٙ‬ب ‪ 0‬فبٌؼذد ِ‪ٛ‬عت‪.‬‬
‫ارا ٌّؼشفخ ٔ‪ٛ‬ع اٌؼذد ‪٠‬غت رؾ‪ ٍٗ٠ٛ‬اٌ‪ ٝ‬اٌّ‪١‬ضاْ اٌضٕبئ‪ٌٚ .ٟ‬ىٓ ٕ٘بٌه ؽشق‬
‫اخش‪ّ٠ ٜ‬ىٓ ثّغبػذر‪ٙ‬ب ِؼشفخ ٔ‪ٛ‬ع اٌؼذد ‪ .‬ف‪ ٟ‬اٌجذا‪٠‬خ ٔشوض ػٍ‪ ٝ‬اٌطش‪٠‬مخ‬
‫اال‪.ٌٝٚ‬‬
‫يثبل‪ِ :‬ؼط‪ ٝ‬اٌّزغ‪١‬ش ‪ٛٔ ِٓ X‬ع ‪ ً٘ x=7DH . byte‬ل‪ّ١‬خ اٌّزغ‪١‬ش ل‪ّ١‬خ‬
‫ِ‪ٛ‬عجخ اَ عبٌجخ؟ اٌشِض ‪٠ H‬ذي ػٍ‪ ٝ‬اٌّ‪١‬ضاْ اٌغبدط ػشش‬
‫انحم ‪:‬‬
‫ا‪ٚ‬ال ػٍ‪ٕ١‬ب اْ ٔؾ‪ٛ‬ي اٌؼذد اٌ‪ ٝ‬اٌّ‪١‬ضاْ اٌضٕبئ‪ٟ‬‬
‫‪7DH=011111012‬‬
‫ارا ٔظشٔب اٌ‪ ٝ‬اٌجذ االخ‪١‬شح ف‪ ٟ‬اٌغ‪ٙ‬خ اٌ‪١‬غش‪ٔ ٜ‬ش‪ ٜ‬اْ ل‪ّ١‬ز‪ٙ‬ب ‪ٌ 0‬زٌه ل‪ّ١‬خ‬
‫اٌّزغ‪١‬ش ِ‪ٛ‬عجخ‪.‬‬
‫يثبل اخز‪:‬‬
‫‪X=92H‬‬
‫‪ 92H=10010010‬اٌم‪ّ١‬خ عبٌجخ الْ اٌجذ االخ‪١‬شح اٌّغإٌخ ػٓ االشبسح‬
‫ل‪ّ١‬ز‪ٙ‬ب ‪1‬‬
‫اسخُخبج‪ :‬اوجش ل‪ّ١‬خ ِ‪ٛ‬عجخ ٌٍّزغ‪١‬ش ‪ ٟ٘ٚ 01111111 ٟ٘ x‬رغب‪7FH ٞٚ‬‬
‫‪ ٟ٘ٚ‬رغب‪ 127 ٞٚ‬ػشش‪ٞ‬‬

‫االعذاد انسبنبت‬

‫ِؼط‪ ٝ‬اْ اٌّزغ‪١‬ش ‪ x = -6‬ف‪ ٟ‬اٌّ‪١‬ضاْ اٌؼشش‪ ٞ‬عغً اٌؼذد ف‪ ٟ‬اٌّ‪١‬ضاْ‬


‫اٌضٕبئ‪ٚ ٟ‬اٌّ‪١‬ضاْ اٌغبدط ػشش‬
‫انحم‪:‬‬
‫ؽغت اٌّؼط‪١‬بد فبْ اٌّزغ‪١‬ش ‪ٛٔ ِٓ x‬ع ‪ byte‬ارا ع‪ٛ‬ف ٔغزخذَ ‪ 8‬ثزبد‬

‫انخطىة االونً‪ٔ :‬ىزت اٌم‪ّ١‬خ اٌّطٍمخ (اٌؼذد اٌّ‪ٛ‬عت) ٌٍّزغ‪١‬ش ف‪ ٟ‬اٌّ‪١‬ضاْ‬


‫اٌضٕبئ‪ ٟ‬ؽغت ِب رؼٍّٕبٖ ف‪ ٟ‬اٌذس‪ٚ‬ط اٌغبثمخ‪:‬‬
‫اال‪ ٌٝٚ‬اٌضبٔ‪١‬خ اٌضبٌضخ اٌشاثؼخ اٌخبِغخ اٌغبدعخ اٌغبثؼخ االشبسح‬
‫‪64‬‬ ‫‪32‬‬ ‫‪16‬‬ ‫‪8‬‬ ‫‪4‬‬ ‫‪2‬‬ ‫‪1‬‬
‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬

‫ارا‬
‫‪)6)10=(00000110)2‬‬

‫انخطىة انثبَُت‪ٔ :‬جذأ ثىزبثخ اٌؼذد ِٓ ع‪ٙ‬خ اٌ‪ ٓ١ّ١‬وّب ٘‪ ٛ‬ؽز‪ ٝ‬اْ ٔظبدف خبٔخ ل‪ّ١‬ز‪ٙ‬ب‬
‫‪ٚ‬اؽذ فٕغغٍ‪ٙ‬ب ‪ٔٚ‬ؼىظ وً اٌخبٔبد اٌز‪ ٟ‬ثؼذ٘ب (أ‪ٔ ٞ‬غغً ثذال ِٓ ‪ 1‬طفش ‪ٚ‬ثذال ِٓ‬
‫طفش ‪)1‬‬
‫‪(-6)10=111110102=(FA)16‬‬
‫طزَقت اخزي هٍ كًب َهٍ‪:‬‬

‫‪-‬اوالا‪ٔ :‬ؾ‪ٛ‬ي اٌم‪ّ١‬خ اٌّطٍك ٌٍم‪ّ١‬خ اٌغبٌجخ ف‪ ٟ‬اٌّ‪١‬ضاْ اٌغبدط ػشش‬


‫‪ٌ 610=(06)16‬مذ عغٍٕب ‪ 06‬الٕٔب ثؾبعخ اٌ‪ 8 ٝ‬ثزبد‬

‫‪ -‬انخطىة انثبَُت‪ٔ :‬طشػ ‪ ِٓ 06‬اٌظفش ‪ٚ‬اٌغجت ٘‪ٛ‬‬


‫‪-6=0-6‬‬
‫ارا‪:‬‬
‫‪00‬‬
‫‪-‬‬
‫‪06‬‬
‫‪-----‬‬
‫‪ٔ 0‬بلض ‪ 6‬ال ‪٠‬غ‪ٛ‬ص رأخز اٌظفش اال‪ ِٓ 16 ٌٝٚ‬اٌظفش اٌضبٔ‪١‬خ ‪ٔ 16‬بلض ‪ 6‬رغب‪ٞٚ‬‬
‫‪ 10‬ػشش‪ A ٟ٘ٚ ٞ‬ف‪ ٟ‬اٌّ‪١‬ضاْ اٌغبدط ػشش‬
‫اٌظفش اٌضبٔ‪١‬خ اػطذ اٌظفش اال‪ٌٙ ٌٝٚ‬زا اٌغجت ٘‪ ٟ‬االْ ‪ -1‬فزأخز ‪ 16‬االْ ‪٠ 16-1‬جم‪ٝ‬‬
‫ِؼ‪ٙ‬ب ‪ 15‬االْ ‪ ٟ٘ٚ 15-0=15‬رغب‪ F ٞٚ‬ف‪ ٟ‬اٌّ‪١‬ضاْ اٌغبدط ػشش‬
‫اٌغ‪ٛ‬اة إٌ‪ٙ‬بئ‪ٟ‬‬
‫‪-6=(FA)16=(11111010)2‬‬

‫االوايز‬

‫‪)1‬االيز ‪MOV‬‬
‫انصُغت االونً‪ٕ٘ :‬بٌه ِغّ‪ٛ‬ػخ ِٓ اال‪ٚ‬اِش اٌز‪ ٟ‬ثؾبعخ اٌ‪ِ ٝ‬ظذس ‪٘ٚ‬ذف‪ .‬اٌّظذس ال‬
‫‪٠‬زغ‪١‬ش ‪ٚ‬أّب اٌ‪ٙ‬ذف اٌز‪٠ ٞ‬زغ‪١‬ش‬
‫‪MOV OP1,OP2‬‬

‫االِش‬ ‫اٌ‪ٙ‬ذف‬ ‫اٌّظذس‬


‫االِش ‪٠ mov‬ؼٕ‪ ٟ‬ػغ ف‪ٔ op1 ٟ‬غخخ ِٓ ل‪ّ١‬خ ‪ op2‬ثذ‪ ْٚ‬اٌزأص‪١‬ش ػٍ‪ . OP2 ٝ‬ثؼذ‬
‫٘زٖ اٌؼٍّ‪١‬خ ‪ op2‬ال ‪٠‬زغ‪١‬ش ث‪ّٕ١‬ب ‪٠ OP1‬زغ‪١‬ش‬

‫يثبل‪:‬‬
‫‪BL=50H‬‬ ‫ِؼط‪ٚ AL=20H ٝ‬‬

‫‪MOV AL,BL‬‬
‫‪MOV BL,60H‬‬
‫ٔؼًّ عذ‪ٚ‬ي ِزبثؼخ ٌّشب٘ذح اٌزغ‪١١‬شاد‬

‫االِش‬ ‫‪AL‬‬ ‫‪BL‬‬


‫‪20H‬‬ ‫‪50h‬‬
‫‪MOV AL,BL‬‬ ‫‪50H‬‬ ‫‪50H‬‬
‫‪MOV BL,60H‬‬ ‫‪50H‬‬ ‫‪60H‬‬

‫ثؼذ رٕف‪١‬ز اٌّمطغ ٔؾظً ػٍ‪ٝ‬‬


‫‪AL=50H‬‬ ‫‪BL=60H‬‬

‫يالحظبث‬

‫‪ )1‬االِش ‪ MOV‬ال ‪٠‬إصش ػٍ‪ ٝ‬اٌشا‪٠‬بد ‪ flags‬أ‪ ٞ‬اْ ل‪ ُ١‬اٌشا‪٠‬بد ال ‪٠‬زغ‪١‬ش ‪ٚ‬أّب رؾبفع‬
‫ػٍ‪ ٝ‬اٌم‪ ُ١‬اٌغبثمخ‬

‫‪٠)2‬غت اْ ‪٠‬ى‪ ْٛ‬اٌّظذس ِٓ ٔفظ وجش اٌ‪ٙ‬ذف (ثب‪٠‬ذ‪ ،‬ثب‪٠‬ذ) ا‪)word , word( ٚ‬‬
‫يثبل‪:‬‬
‫‪MOV AX ,CX‬‬ ‫‪MOV DL,AL‬‬ ‫‪MOV CH,20H‬‬
‫ايب هذِ االيثهت بعضهب غُز صحُح‬
‫اٌغجت‬ ‫اٌ‪ٛ‬ػغ‬ ‫االِش‬
‫الْ اٌّظذس اوجش ِٓ اٌ‪ٙ‬ذف‬ ‫غ‪١‬ش طؾ‪١‬ؼ‬ ‫‪MOV AL,BX‬‬
‫ال ‪ّ٠‬ىٓ رخض‪ ٓ٠‬ػذد ِٓ صالس ِٕبصي ف‪ ٟ‬اٌّ‪١‬ضاْ‬ ‫غ‪١‬ش طؾ‪١‬ؼ‬ ‫‪MOV AL,123H‬‬
‫‪ 16‬ف‪ِ ٟ‬غغً ثىجش ‪ 8‬ثزبد‪ّ٠ .‬ىٓ رخض‪ ٓ٠‬ل‪ّ١‬خ‬
‫ثىجش ِٕضٌخ ا‪ِٕ ٚ‬ضٌز‪ٓ١‬‬
‫الْ ‪ 120=78H‬أ‪ ٞ‬أٗ ‪٠‬زى‪ِٕ ِٓ ْٛ‬ضٌز‪ٓ١‬‬ ‫طؾ‪١‬ؼ‬ ‫‪MOV BL,120‬‬
‫غ‪١‬ش طؾ‪١‬ؼ الٔٗ ف‪ِ ٟ‬غغً ثىجش ‪ 16‬ثذ ‪ّ٠‬ىٓ رخض‪ ٓ٠‬ل‪ّ١‬خ‬ ‫‪MOV DX,12345H‬‬
‫ثىجش ‪ِٕ 4‬بصي ػٍ‪ ٝ‬االوضش ف‪ ٟ‬اٌّ‪١‬ضاْ اٌغبدط‬
‫ػشش‬

‫حًبرٍَ‪:‬‬
‫‪ DL ,‬ف‪ّ١‬ب ث‪ٕٙ١‬ب‪ .‬أ‪ ٞ‬اْ ‪٠ DL‬أخز ل‪ّ١‬خ ‪CL‬‬ ‫‪ )1‬اوزت ِمطغ ثشٔبِظ ‪٠‬جذي ل‪CL ُ١‬‬
‫‪٠ CL ٚ‬أخز ل‪ّ١‬خ ‪DL‬‬

‫انحم‪ٕ٘ :‬ب ‪٠‬غت اْ ٔغزؼ‪ ٓ١‬ثّغغً ِغبػذ‬

‫‪MOV AL,DL‬‬
‫‪MOV DL,CL‬‬
‫‪MOV CL,AL‬‬

‫‪ِ )2‬ؼط‪ ٝ‬االِش اٌزبٌ‪:ٟ‬‬


‫‪MOV DX , 2011H‬‬
‫ِب ٘‪ ٟ‬اٌم‪ ُ١‬اٌّ‪ٛ‬ع‪ٛ‬دح ف‪ ٟ‬وً ِٓ ‪DL , DH‬‬

‫‪20‬‬ ‫‪11‬‬

‫‪DH‬‬ ‫‪DL‬‬
‫‪)2‬االيز ‪ADD‬‬
‫‪ADD OP1, OP2‬‬
‫‪Op1=op1+op2‬‬
‫اعّغ ل‪ّ١‬خ اٌّظذس ‪ٚ‬ل‪ّ١‬خ اٌ‪ٙ‬ذف ‪ٚ‬اؽفع إٌز‪١‬غخ ف‪ ٟ‬اٌ‪ٙ‬ذف‬
‫يثبل‪:‬‬
‫‪Mov dh,41H‬‬
‫‪Add dh,3‬‬
‫ثؼذ رٕف‪١‬ز اٌّمطغ اٌّغغً ‪٠ dh‬ظجؼ ‪44H‬‬
‫يثبل ‪:‬‬
‫‪Mov AL , 6‬‬
‫‪MOV CL , 8‬‬
‫‪ADD AL , CL‬‬
‫خذول يخببعت‪:‬‬
‫االِش‬ ‫‪CL‬‬ ‫‪AL‬‬
‫؟؟‬ ‫؟؟‬
‫‪Mov AL , 6‬‬ ‫؟؟‬ ‫‪06H‬‬
‫‪MOV CL , 8‬‬ ‫‪08H‬‬ ‫‪06H‬‬
‫‪ADD AL , CL‬‬ ‫‪08H‬‬ ‫‪0EH‬‬

‫يالحظبث‪:‬‬
‫‪ -‬؟؟ ‪ :‬رؼٕ‪ ٟ‬إٔب ال ٔؼٍُ ِب ثذاخٍٗ‬
‫‪ -‬ػٍ‪ٕ١‬ب رغغ‪ ً١‬اٌم‪ ُ١‬ف‪ ٟ‬اٌّ‪١‬ضاْ اٌغبدط ػشش ػٍ‪ ٝ‬شىً ِٕضٌز‪ ٓ١‬ف‪ ٟ‬اٌّغغالد راد ‪8‬‬
‫ثذ ‪ٚ‬ػٍ‪ ٝ‬شىً ‪ِٕ 4‬بصي ف‪ ٟ‬اٌّغغالد راد ‪ 16‬ثذ‪.‬‬

‫يثبل‪:‬‬
‫‪DX=1024H‬‬ ‫‪AL=06H‬‬
‫‪ -‬وً ل‪ّ١‬خ ػذد‪٠‬خ رجذأ ثؾشف ‪٠ A , B ,C ,D ,E ,F‬غت اْ ٔغغً ‪ 0‬ػٓ ‪٠‬غبس٘ب‬

‫يثبل‪:‬‬
‫‪Mov DL , 0D1H‬‬
‫‪ADD CX , 0A123H‬‬
‫رّش‪ : ٓ٠‬اوزت ِمطغ ثشٔبِظ ‪ٕ٠‬فز ِب ‪CL=2*AL+BL :ٍٟ٠‬‬

‫اٌؾً‪:‬‬
‫‪Mov CL,AL‬‬
‫‪ADD CL ,CL‬‬
‫‪ADD CL,BL‬‬

‫‪ )3‬االيز ‪SUB‬‬
‫‪sub op1 ,op2‬‬
‫‪op1=op1-op2‬‬
‫اؽشػ اٌّظذس ِٓ اٌ‪ٙ‬ذف ‪ٚ‬خضْ إٌز‪١‬غخ ف‪ ٟ‬اٌ‪ٙ‬ذف‬
‫حًزٍَ‪:‬‬
‫اوزت ِمطغ ثشٔبِظ ‪٠‬ؾغت ؽبطً اٌفشق ث‪ٚ DL ٓ١‬اٌّغغً ‪٠ٚ BL‬ؾفع إٌز‪١‬غخ ف‪ٟ‬‬
‫‪BH‬‬
‫انحم‪:‬‬
‫‪Mov BH , DL‬‬
‫‪Sub BH , BL‬‬
‫‪)4‬االيز ‪INC‬‬
‫٘زا االِش ثؾبعخ اٌ‪ٚ operand ٝ‬اؽذ فمؾ‬
‫‪Inc op1‬‬
‫‪Op1=op1+1‬‬
‫ة‪1‬‬ ‫وجش اٌ‪ٙ‬ذف ِ‬

‫‪)5‬االيز ‪DEC‬‬
‫٘زا االِش ثؾبعخ اٌ‪ٚ operand ٝ‬اؽذ فمؾ‬
‫‪Dec op1‬‬
‫‪Op1=op1-1‬‬
‫اؽشػ ِٓ ‪ٚ OP1‬اؽذ‬

‫انخعبيم يع انذاكزة‬

‫‪ّ٠‬ىٓ اٌمشاءح ِٓ اٌزاوشح ا‪ ٚ‬اٌىزبثخ اٌ‪ ٝ‬اٌزاوشح ‪ .‬ػٕذِب ٔش‪٠‬ذ اٌز‪ٛ‬عٗ اٌ‪ ٝ‬اٌزاوشح ٌٍىزبثخ‬
‫ا‪ ٚ‬اٌمشاءح ػٍ‪ٕ١‬ب اْ ٔم‪ َٛ‬ثّب ‪:ٍٟ٠‬‬
‫‪ -‬ػغ ف‪ ٟ‬اٌّغغً ‪ SI‬ا‪ DI ٚ‬ا‪ BX ٚ‬ػٕ‪ٛ‬اْ اٌخٍ‪١‬خ اٌّطٍ‪ٛ‬ثخ‬
‫‪ -‬ػغ اٌم‪ ُ١‬اٌؼذد‪٠‬خ اٌز‪ ٟ‬رش‪٠‬ذ وزبثز‪ٙ‬ب ف‪ِ ٟ‬غغً ِالئُ ِٓ ؽ‪١‬ش اٌىجش‬
‫‪-‬اعزخذَ االِش ‪ٚ MOV‬ػغ اٌّغغً اٌز‪٠ ٞ‬ؾ‪ ٞٛ‬ػٕ‪ٛ‬اْ اٌخٍ‪١‬خ ث‪ ٓ١‬ال‪ٛ‬اط ِشثؼخ‬
‫ِضبي‪:‬‬
‫أوزت ِمطغ ثشٔبِظ ‪٠‬خضْ ف‪ ٟ‬اٌخٍ‪١‬خ ‪ 102H‬اٌم‪ّ١‬خ ‪30H‬‬
‫اٌؾً‪:‬‬
‫‪Mov si,102H‬‬
‫‪Mov AL, 30H‬‬
‫‪Mov [SI],AL‬‬

‫ف‪ ٟ‬ؽبي وزجٕب ثذال ِٓ ‪ MOV [si],AL‬االِش ‪ٔ MOV si,AL‬ؾظً ػٍ‪ ٝ‬خطأ الْ‬
‫اٌّزشعُ ‪٠‬ف‪ ُٙ‬ثبٕٔب ٔش‪٠‬ذ اْ ٔخضْ ل‪ّ١‬خ ‪ AL‬ف‪ ٟ‬اٌّغغً ‪ٔٚ SI‬ؾٓ ٔؼٍُ اْ اٌّغغً ‪si‬‬
‫‪ 16‬ثذ ‪ٚ‬اٌّغغً ‪ 8 AL‬ثذ ارا ال ر‪ٛ‬اعذ ِالئّخ ث‪ ٓ١‬اٌّظذس ‪ٚ‬اٌ‪ٙ‬ذف‬
‫ث‪ّٕ١‬ب ‪ MOV [si],AL‬ػغ ل‪ّ١‬خ ‪ AL‬ف‪ ٟ‬اٌخٍ‪١‬خ اٌز‪ ٟ‬ػٕ‪ٛ‬أ‪ٙ‬ب ِخضْ ف‪ ٟ‬اٌّغغً‬
‫‪si‬‬
‫ِالؽظخ ِ‪ّٙ‬خ عذا‪ :‬ال ‪٠‬غ‪ٛ‬ص اْ ‪٠‬ى‪ ْٛ‬اٌ‪ٙ‬ذف خٍ‪١‬خ ف‪ ٟ‬اٌزاوشح ‪ٚ‬اٌّظذس ا‪٠‬ؼب خٍ‪١‬خ ف‪ٟ‬‬
‫اٌزاوشح‬
‫ِضبي‪ X :‬اعُ ِزغ‪١‬ش‬
‫االِضٍخ اٌزبٌ‪١‬خ غ‪١‬ش طؾ‪١‬ؾخ‬
‫]‪Mov [si],[bx‬‬ ‫‪add [di],X‬‬

‫رّش‪ : ٓ٠‬اوزت ِمطغ ثشٔبِظ ‪٠‬مشأ فؾ‪ ٜٛ‬اٌخٍ‪١‬خ ‪٠ٚ 440H‬ؾفظ‪ٙ‬ب ف‪ ٟ‬اٌّغغً ‪DH‬‬
‫اٌؾً‪:‬‬
‫‪Mov DI, 440H‬‬
‫]‪Mov DH, [DI‬‬

‫رّش‪ :ٓ٠‬اوزت ِمطغ ثشٔبِظ ‪٠‬غّغ فؾ‪ ٜٛ‬اٌخٍ‪١‬خ ‪ٚ 10H‬فؾ‪ ٜٛ‬اٌخٍ‪١‬خ ‪٠ٚ 11H‬خضْ‬
‫إٌز‪١‬غخ ف‪ ٟ‬اٌخٍ‪١‬خ ‪12H‬‬
‫اٌؾً‪:‬‬
‫‪Mov si,10H‬‬
‫]‪Mov ah,[si‬‬
‫‪Inc si‬‬
‫]‪Add ah,[si‬‬
‫‪Inc si‬‬
‫‪Mov [si],ah‬‬
‫حًزٍَ يهى خذا‪:‬‬

‫ِؼط‪ ٝ‬اٌّمطغ اٌزبٌ‪:ٟ‬‬


‫‪Mov si,5‬‬
‫‪Mov ax,1122H‬‬
‫‪Mov [si],ax‬‬
‫ِبرا ‪٠‬ؼًّ ٘زا اٌّمطغ‬
‫ٔؾٓ ٔؼشف اْ وجش وً خٍ‪١‬خ ف‪ ٟ‬اٌزاوشح ٘‪ 8 ٛ‬ثذ ارا ‪ّ٠‬ىٓ رغغ‪ ً١‬ل‪ّ١‬خ رزى‪ِٓ ْٛ‬‬
‫ِٕضٌز‪ ٓ١‬ف‪ ٟ‬اٌّ‪١‬ضاْ اٌغبدط ػشش‪.‬‬
‫‪ٌٚ‬ىٓ ‪ AX‬ػجبسح ػٓ ‪ 16‬ثذ أ‪ ٞ‬ال ‪ّ٠‬ىٓ رخض‪ٕٙ٠‬ب وٍ‪ٙ‬ب ف‪ ٟ‬خٍ‪١‬خ ‪ٚ‬اؽذح ٌ‪ٙ‬زا اٌغجت‬
‫‪٠‬زُ ؽفع ل‪ّ١‬خ ‪ AL‬ف‪ ٟ‬اٌخٍ‪١‬خ اٌز‪٠ ٟ‬إشش ػٍ‪ٙ١‬ب ‪٠ٚ SI‬ؾفع ل‪ّ١‬خ ‪ ah‬ف‪ ٟ‬اٌخٍ‪١‬خ اٌز‪ٟ‬‬
‫رٍ‪ٙ١‬ب‪.‬‬
‫ارا‬
‫ف‪ ٟ‬اٌخٍ‪١‬خ ‪٠ 5‬غغً ‪ٚ 22H‬ف‪ ٟ‬اٌخٍ‪١‬خ ‪ 6‬رغغً اٌم‪ّ١‬خ ‪11H‬‬

‫انًقبرَت‬

‫ف‪ ٟ‬ثؼغ االؽ‪١‬بْ ٔؾزبط اٌ‪ِ ٝ‬مبسٔخ ث‪ ٓ١‬اٌّظذس ‪ٚ‬اٌ‪ٙ‬ذف ‪ِ .‬ضال افؾض ارا وبْ اٌّغغً‬
‫‪٠ AL‬ؾز‪ ٞٛ‬ػٍ‪ ٝ‬اٌم‪ّ١‬خ ‪ 6‬ارا وبْ اٌغ‪ٛ‬اة ٔؼُ اػف اٌم‪ّ١‬خ ‪ٌٍّ 4‬غغً ‪ٚ‬اال اؽشػ ‪ِٓ 3‬‬
‫ل‪ّ١‬خ اٌّغغً‪ ِٓ .‬اٌظ‪١‬غخ اٌغبثمخ ‪٠‬زج‪ٌٕ ٓ١‬ب إٔب ثؾبعخ الِش ٌ‪١‬مبسْ ث‪ ٓ١‬فؾ‪ ٜٛ‬اٌّغغً‬
‫‪ٚ AL‬اٌم‪ّ١‬خ اٌؼذد‪٠‬خ ‪ .6‬االِش ٘‪ ٛ‬اِش اٌّمبسٔخ ‪CMP‬‬

‫يالحظبث هبيت ببنُسبت اليز انًقبرَت ‪:CMP‬‬


‫‪1‬‬
‫‪CMP OP1,OP2‬‬ ‫)٘زا االِش ثؾبعخ اٌ‪ِ ٝ‬ظذس ‪٘ٚ‬ذف‬
‫‪٘)2‬زا االِش ‪٠‬طشػ اٌّظذس ِٓ اٌ‪ٙ‬ذف ‪ٌٚ‬ىٕٗ ال ‪٠‬إصش ػٍ‪ ٝ‬اٌ‪ٙ‬ذف ‪ٚ‬أّب ‪٠‬شعً ِؼٍ‪ِٛ‬بد‬
‫اٌ‪ِ ٝ‬غغً اٌشا‪٠‬بد ‪٠ٚ‬غ‪١‬ش ل‪ّ١‬خ اٌشا‪٠‬بد (سا‪٠‬بد اٌ‪ٛ‬ػغ) ثؾ‪١‬ش رزالئُ ل‪ ُ١‬اٌشا‪٠‬بد ِغ‬
‫إٌز‪١‬غخ‬
‫‪OP1-OP2‬‬ ‫‪flags‬‬

‫‪)3‬ثؼذ ػٍّ‪١‬خ اٌّمبسٔخ ع‪ٛ‬ف رى‪ ْٛ‬إٌز‪١‬غخ ؽبٌخ ِٓ اٌؾبالد اٌزبٌ‪١‬خ‪:‬‬


‫االعزٕزبط‬ ‫إٌز‪١‬غخ‬ ‫اٌؾبٌخ‬
‫اٌّظذس ‪ٚ‬اٌ‪ٙ‬ذف ِزغب‪٠ٚ‬بْ‬ ‫طفش‬ ‫اال‪ٌٝٚ‬‬
‫اٌ‪ٙ‬ذف اوجش ِٓ اٌّظذس‬ ‫ِ‪ٛ‬عجخ‬ ‫اٌضبٔ‪١‬خ‬
‫اٌ‪ٙ‬ذف اطغش ِٓ اٌّظذس‬ ‫عبٌجخ‬ ‫اٌضبٌضخ‬

‫نهخذكزة‬

‫ِغغً اٌشا‪٠‬بد ف‪ ٟ‬اٌّؼبٌظ ‪٠ 8086‬ؾز‪ ٞٛ‬ػٍ‪ 7 ٝ‬سا‪٠‬بد غ‪١‬ش ِغزخذِخ ‪ 6‬سا‪٠‬بد ‪ٚ‬ػغ‬
‫‪ 3 ٚ‬سا‪٠‬بد ع‪١‬طشح‬
‫‪X X X X OF DF IF TF SF ZF X AF X PF X CF‬‬

‫وً سا‪٠‬خ رؾز‪ ٞٛ‬ػٍ‪ ٝ‬االشبسح ‪ X‬ف‪ ٟٙ‬غ‪١‬ش ِغزخذِخ‬

‫ِالؽظبد‬ ‫إٌ‪ٛ‬ع‬ ‫اٌشِض اعُ اٌشا‪٠‬خ‬


‫‪٠‬أخز ‪ 1‬ارا اػطذ اٌجذ االخ‪١‬شح ػٓ‬ ‫‪ٚ‬ػغ‬ ‫‪Carry flag CF‬‬
‫اٌ‪١‬غبس ‪ 1‬اٌ‪ ٝ‬اٌخبسط ا‪ ٚ‬اخزد ‪ِٓ 1‬‬
‫اٌخبسط ‪ٚ‬اال ‪٠‬أخز طفش‬
‫ارا وبْ ػذد اي ‪ 1‬ف‪ ٟ‬ا‪ٚ‬ي ‪ 8‬ثزبد ِٓ‬ ‫‪ٚ‬ػغ‬ ‫‪Parity flag‬‬ ‫‪PF‬‬
‫إٌز‪١‬غخ ص‪ٚ‬ع‪ ٟ‬رأخز ٘زٖ اٌشا‪٠‬خ ‪ٚ 1‬اال‬
‫رأخز طفش‬
‫ارا اػطذ اٌجذ اٌشاثؼخ اٌجذ اٌخبِغٗ ‪1‬‬ ‫‪ٚ‬ػغ‬ ‫‪Auxiliary flag‬‬ ‫‪AF‬‬
‫ا‪ ٚ‬اخزد اٌجذ اٌشاثؼخ ِٓ اٌجذ اٌخبِغخ‬
‫‪ 1‬رأخز ٘زٖ اٌشا‪٠‬خ ‪ٚ 1‬اال طفش‬
‫ارا وبٔذ إٌز‪١‬غخ طفش رأخز ٘زٖ اٌشا‪٠‬خ‬ ‫‪ٚ‬ػغ‬ ‫‪Zero flag‬‬ ‫‪ZF‬‬
‫‪ٚ 1‬اال رأخز طفش‬
‫ارا وبٔذ إٌز‪١‬غخ عبٌجخ رأخز ٘زٖ اٌشا‪٠‬خ‬ ‫‪ٚ‬ػغ‬ ‫‪Sign flag‬‬ ‫‪SF‬‬
‫اٌم‪ّ١‬خ‪ٚ 1‬اال رأخز اٌم‪ّ١‬خ طفش‬
‫ارا ‪ٚ‬ػغ اٌّجشِظ ث‪ٙ‬ب اٌم‪ّ١‬خ ‪٠ 1‬زُ رٕف‪١‬ز‬ ‫ع‪١‬طشح‬ ‫‪Trap flag‬‬ ‫‪TF‬‬
‫اِش ‪ٚ‬اؽذ فمؾ ِٓ اال‪ٚ‬اِش ‪ٚ‬ثؼذ٘ب رأخز‬
‫اٌم‪ّ١‬خ طفش‬
‫ٔؼؼٗ ‪ٌٍ 1‬غّبػ ٌؼٍّ‪١‬بد ‪interrupt‬‬ ‫ع‪١‬طشح‬ ‫‪Interrupt flag‬‬ ‫‪IF‬‬
‫ف‪ِ ٟ‬ذخً ‪ٌٍّ interrupt‬ؼبٌظ‬
‫ٌزؾذ‪٠‬ذ ارغبٖ اٌؾشوخ ف‪ ٟ‬ؽبٌخ لشاءح‬ ‫‪ Direction Flag‬ع‪١‬طشح‬ ‫‪DF‬‬
‫إٌظ‪ٛ‬ص‬
‫رأخز ‪ 1‬ارا وبٔذ إٌز‪١‬غخ اوجش ِٓ اٌّىبْ‬ ‫‪ٚ‬ػغ‬ ‫‪Overflow flag‬‬ ‫‪OF‬‬
‫اٌّخظض ٌؾفظ‪ٙ‬ب ‪ٚ‬اال رأخز طفش‬

‫يعهىيبث يؤكذة عٍ انزاَبث‬

‫‪)1‬ػٕذِب رى‪ ْٛ‬إٌز‪١‬غخ طفش رى‪ ْٛ‬اٌشا‪٠‬خ ‪SF=0, ZF=1‬‬


‫الٔٗ ػٕذِب رى‪ ْٛ‬إٌز‪١‬غخ طفش ٌٓ رى‪ ْٛ‬إٌز‪١‬غخ عبٌجخ (اٌظفش ٌ‪١‬ظ ػذد عبٌت)‬

‫‪)2‬ػٕذِب رى‪ ْٛ‬إٌز‪١‬غخ عبٌجخ رى‪ ْٛ‬اٌشا‪٠‬خ ‪ZF=0 , SF=1‬‬


‫الٔٗ ػٕذِب رى‪ ْٛ‬إٌز‪١‬غخ عبٌجخ ال ‪ّ٠‬ىٓ اْ رى‪ ْٛ‬طفش الٔ‪ٙ‬ب ػذد اطغش ِٓ طفش‬

‫‪ZF=0 ,‬‬ ‫‪)3‬ػٕذِب رى‪ ْٛ‬إٌز‪١‬غخ ِ‪ٛ‬عجخ رى‪ ْٛ‬اٌشا‪٠‬خ ‪SF=0‬‬


‫الٔٗ ػٕذِب رى‪ ْٛ‬إٌز‪١‬غخ ِ‪ٛ‬عجخ ف‪ ٟٙ‬اوجش ِٓ طفش ‪ٚ‬ا‪٠‬ؼب اوجش ِٓ االػذاد اٌغبٌجخ‬
‫ِٓ اٌّؼٍ‪ِٛ‬بد اٌغبثمخ ٔغزٕزظ‬
‫‪-‬ارا اسدٔب اْ ٔؼشف ارا وبْ اٌّظذس)‪ٚ (OP2‬اٌ‪ٙ‬ذف )‪ِ (OP1‬زغب‪٠ٚ‬بْ ػٍ‪ٕ١‬ب اْ ٔغأي‬
‫ػٓ سا‪٠‬خ اٌظفش ارا وبٔذ ‪ .ZF=1‬ارا وبٔذ االعبثخ ٔؼُ ف‪ّٙ‬ب ِزغب‪٠ٚ‬بْ ‪ٚ‬ارا وبٔذ‬
‫االعبثخ وال ف‪ّٙ‬ب ِخزٍفبْ‬
‫‪-‬ارا اسدٔب اْ ٔؼشف ارا وبْ اٌ‪ٙ‬ذف)‪ (OP1‬اطغش ِٓ اٌّظذس)‪ٔ (OP2‬غأي ػٓ سا‪٠‬خ‬
‫االشبسح ‪ SF=1‬ارا وبٔذ االعبثخ ٔؼُ ٔؼشف اْ اٌ‪ٙ‬ذف اطغش ِٓ اٌّظذس‬
‫‪-‬ارا اسدٔب اْ ٔؼشف ارا وبْ اٌ‪ٙ‬ذف)‪ (OP1‬اوجش ِٓ اٌّظذس)‪ٔ (OP2‬غأي ارا وبْ‬
‫‪ٚ ZF=0‬ا‪٠‬ؼب ‪SF=0‬‬
‫ؽش‪٠‬مخ افؼً ٔغأي ػٓ اٌؾبٌخ ‪ ZF=1‬ارا ٌُ ‪٠‬زؾمك ٔغأي ػٓ اٌؾبٌخ اٌضبٔ‪١‬خ ‪ SF=1‬ارا ٌُ‬
‫‪٠‬زؾمك ارا ثذ‪ ْٚ‬شه اٌ‪ٙ‬ذف اوجش ِٓ اٌّظذس‬

‫انقفش‬

‫ٔؾٓ ٔؼٍُ اْ اٌجشٔبِظ ػجبسح ػٓ ا‪ٚ‬اِش ِخضٔخ ف‪ ٟ‬خال‪٠‬ب اٌزاوشح ‪ٚ‬اٌّؼبٌظ ‪ٕ٠‬فز ا‪ٚ‬اِش‬
‫اٌجشٔبِظ ثبٌزشر‪١‬ت ِضبي‪:‬‬
‫‪MOV AL,2‬‬
‫‪ADD AL, BL‬‬
‫‪INC DI‬‬
‫ف‪ٕ٠ ٛٙ‬فذ االِش اال‪ٚ‬ي ‪MOV‬‬
‫صُ ‪ٕ٠‬زمً اٌ‪ ٝ‬االِش اٌضبٔ‪ADD ٟ‬‬
‫صُ ‪ٕ٠‬زمً اٌ‪ ٝ‬االِش اٌضبٌش ‪٠ٚ INC‬غزّش ٘ىزا اٌ‪ٙٔ ٝ‬ب‪٠‬خ اٌجشٔبِظ‬
‫فبرا اسدٔب اْ ٔغ‪١‬ش رشر‪١‬ت اٌزٕف‪١‬ز ا‪ ٚ‬اْ ال ٕٔفز ثؼغ اال‪ٚ‬اِش فال ثذ ِٓ اعزخذاَ ا‪ٚ‬اِش‬
‫اٌمفض‪.‬‬
‫اٌمفض ف‪ٌ ٟ‬غخ االعّجٍ‪٠ ٟ‬مغُ اٌ‪ ٝ‬لغّ‪ ِٓ ٓ١‬ؽ‪١‬ش اٌشش‪ٚ‬ؽ‬

‫‪ -1‬اٌمفض اٌّشش‪ٚ‬ؽ‪ٕ٘ :‬ب رزُ ػٍّ‪١‬خ اٌمفض ف‪ ٟ‬ؽبٌخ ارا رؾمك اٌششؽ اٌّطٍ‪ٛ‬ة ‪ِ .‬ضال الفض‬
‫ارا وبٔذ إٌز‪١‬غخ عبٌجخ‪ .‬ا‪ ٚ‬الفض ارا وبٔذ إٌز‪١‬غخ طفش‬

‫‪ -2‬اٌمفض غ‪١‬ش اٌّشش‪ٚ‬ؽ‪ٕ٘ :‬ب ‪٠‬زُ اٌمفض ثذ‪ ْٚ‬أ‪ ٞ‬ششؽ ثّغشد ‪ٚ‬ط‪ٛ‬ي اٌّؼبٌظ اٌ‪٘ ٝ‬زا‬
‫االِش ‪٠‬زُ اٌمفض‬
‫ا‪ٚ‬اِش اٌمفض اٌّشش‪ٚ‬ؽ وض‪١‬شح ٔأخز ف‪ ٟ‬وً ِٕبعجخ عضء ِٕ‪ٙ‬ب‬

‫اٌشا‪٠‬خ اٌّطٍ‪ٛ‬ثخ‬ ‫اٌّؼٕ‪ٝ‬‬ ‫االِش‬


‫‪ZF=1‬‬ ‫الفض ارا وبٔذ إٌز‪١‬غخ طفش‬ ‫‪JZ‬‬
‫‪ZF=0‬‬ ‫الفض ارا وبٔذ إٌز‪١‬غخ ال رغب‪ ٞٚ‬طفش‪.‬‬ ‫‪JNZ‬‬
‫(إٌز‪١‬غخ ِ‪ٛ‬عجخ ا‪ ٚ‬عبٌجخ)‬
‫‪ZF=1‬‬ ‫الفض ارا وبٔذ إٌز‪١‬غخ طفش‬ ‫‪JE‬‬
‫‪ZF=0‬‬ ‫الفض ارا وبٔذ إٌز‪١‬غخ ال رغب‪ ٞٚ‬طفش‪.‬‬ ‫‪JNE‬‬
‫(إٌز‪١‬غخ ِ‪ٛ‬عجخ ا‪ ٚ‬عبٌجخ)‬
‫‪CF=1‬‬ ‫الفض ارا اٌجذ االخ‪١‬شح ِٓ ع‪ٙ‬خ اٌ‪١‬غبس اخشعذ‬ ‫‪JC‬‬
‫‪ٌٍ 1‬خبسط ا‪ ٚ‬اؽزبعذ ٌ‪ٛ‬اؽذ ِٓ اٌخبسط‬
‫‪CF=0‬‬ ‫الفض ارا اٌجذ االخ‪١‬شح ِٓ ع‪ٙ‬خ اٌ‪١‬غبس ٌُ‬ ‫‪JNC‬‬
‫رخشط ‪ٌٍ 1‬خبسط ا‪ ٌُ ٚ‬رؾزبط ٌ‪ٛ‬اؽذ ِٓ‬
‫اٌخبسط‬

‫يالحظبث ‪:‬‬
‫‪ -‬االِش ‪٠ JE‬ؼًّ ِضً ‪ٔ JZ‬فظ اٌش‪ٟ‬ء‬
‫‪ -‬االِش ‪٠ JNE‬ؼًّ ِضً ‪JNZ‬‬

‫رزوش‪ :‬عذ‪ٚ‬ي اٌغّغ ف‪ ٟ‬اٌّ‪١‬ضاْ اٌضٕبئ‪:ٟ‬‬


‫‪ :a,b‬ػجبسح ػٓ ثزبد‬
‫‪:S‬ؽبطً عّغ اٌجذ ‪ٚ a‬اٌجذ ‪b‬‬
‫‪ carry :C‬أٗ ٕ٘بٌه ‪ 1‬ع‪ٛ‬ف ‪ٕ٠‬زمً اٌ‪ ٝ‬اٌجذ اٌز‪ ٟ‬رٍ‪ٙ١‬ب‬
‫‪a‬‬ ‫‪b‬‬ ‫‪S‬‬ ‫‪C‬‬
‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬
‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬

‫‪ZF CF‬‬ ‫اِضٍخ‪ :‬عذ إٌز‪١‬غخ ‪ٚ‬ل‪ ُ١‬اٌشا‪٠‬بد ‪SF‬‬


‫‪62H+17H‬‬
‫ف‪ ٟ‬اٌجذا‪٠‬خ ٔؾ‪ٛ‬ي وً ل‪ّ١‬خ اٌ‪ ٝ‬اٌّ‪١‬ضاْ اٌضٕبئ‪:ٟ‬‬
‫‪62H=01100010‬‬ ‫‪17H=00010111‬‬
‫‪C‬‬ ‫‪C‬‬
‫اٌؼذد اال‪ٚ‬ي‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬
‫اٌؼذد اٌضبٔ‪ٟ‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬
‫إٌز‪١‬غخ‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬

‫ارا ٔظشٔب اٌ‪ ٝ‬إٌز‪١‬غخ ثبٌٍ‪ ْٛ‬االصسق ٔش‪ ٜ‬أ‪ٙ‬ب ال رغب‪ ٞٚ‬طفش الٔٗ ‪٠‬ىف‪ ٟ‬اْ ‪٠‬ى‪ْٛ‬‬
‫ثبٌٕز‪١‬غخ ػٍ‪ ٝ‬االلً ‪ 1‬ؽز‪ ٝ‬رى‪ ْٛ‬إٌز‪١‬غخ ال رغب‪ ٞٚ‬طفش ارا ‪ZF=0‬‬
‫ارا ٔظشٔب اٌ‪ ٝ‬اٌجذ االخ‪١‬شح ف‪ ٟ‬إٌز‪١‬غخ ف‪ ٟ‬اٌغ‪ٙ‬خ اٌ‪١‬غش‪ٔ ٜ‬غذ ل‪ّ١‬ز‪ٙ‬ب طفش ارا إٌز‪١‬غخ‬
‫ِ‪ٛ‬عجخ ‪١ٌٚ‬غذ عبٌجخ ارا ‪SF=0‬‬
‫ارا ٔظشٔب اٌجذ االخ‪١‬شح ف‪ ٟ‬اٌؼذد اال‪ٚ‬ي ‪ +‬اٌجذ االخ‪١‬شح ف‪ ٟ‬اٌؼذد اٌضبٔ‪ ٟ‬إٌز‪١‬غخ أ‪ٙ‬ب ٌُ‬
‫رشعً ‪Carry‬اٌ‪ ٝ‬اٌجذ اٌزبعؼخ ‪ ٌُٚ‬رأخز ‪ ِٓ borrow‬اٌزبعؼخ ارا ‪CF=0‬‬
‫إٌز‪١‬غخ‪ :‬وً اسثغ ثزبد رّضً ِٕضٌخ ف‪١ِ ٟ‬ضاْ اٌغبدط ػشش ارا‬
‫‪01111001=79H‬‬
‫ِ‪ ُٙ‬عذا ‪ :‬رزوش‬
‫‪ :C )1‬رؼٕ‪1 ٟ‬‬
‫‪1+1+1------------------------s=1‬‬ ‫‪c=1)2‬‬

‫رّش‪87H+93H:ٓ٠‬‬
‫‪87H=10000111‬‬ ‫‪83H=10010011‬‬
‫‪C‬‬ ‫‪C‬‬ ‫‪C‬‬ ‫‪C‬‬
‫اٌؼذد اال‪ٚ‬ي‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬
‫اٌؼذد اٌضبٔ‪ٟ‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬
‫إٌز‪١‬غخ‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬

‫‪ ZF=0‬الْ إٌز‪١‬غخ ٌ‪١‬غذ طفش‬


‫‪ SF=0‬الْ إٌز‪١‬غخ ِ‪ٛ‬عجخ أظش اخش ثذ ف‪ ٟ‬اٌ‪١‬غبس ٌٍٕز‪١‬غخ ‪.‬‬
‫ِالؽظخ‪ C :‬االخ‪١‬شح اٌز‪ٔ ٟ‬زغذ ػٓ اػبفخ اخش ثذ ِغ اخش ثذ ف‪ ٟ‬اٌؼذد‪ ٓ٠‬ال رظ‪ٙ‬ش‬
‫ف‪ ٟ‬إٌز‪١‬غخ الٔٗ ال ‪ٛ٠‬عذ ٌ‪ٙ‬ب ِىبْ الٕٔب لشسٔب اْ إٌز‪١‬غخ ع‪ٛ‬ف رى‪ ْٛ‬ف‪ 8 ٟ‬ثزبد فمؾ‬
‫‪ٚ‬اٌز‪٠ ٞ‬ؾذد رٌه وجش اٌ‪ٙ‬ذف ِضال ‪ٔ ADD BL , 20H‬ش‪ٕ٘ ٜ‬ب اْ اٌ‪ٙ‬ذف ِغغً ثط‪ٛ‬ي‬
‫‪ 8‬ثزبد ‪ٌٚ .‬ىٓ و‪١‬ف ٔؼشف أٗ ٕ٘بٌه ثذ ٌُ رظ‪ٙ‬ش ف‪ ٟ‬إٌز‪١‬غخ اٌشا‪٠‬خ ‪CF=1‬‬
‫إٌز‪١‬غخ‪00011010=1AH :‬‬

‫انقفش غُز انًشزوط‬

‫ٕ٘بٌه اِش ‪ٚ‬اؽذ فمؾ ‪jmp ٛ٘ٚ‬‬


‫ِالؽظخ ِ‪ّٙ‬خ عذا ا‪ٚ‬اِش اٌمفض ثؾبعخ اٌ‪ ٝ‬ػٕ‪ٛ‬اْ ٌٍمفض اٌ‪ ٗ١‬أ‪٠ ٞ‬غت رغغ‪ ً١‬اٌؼٕ‪ٛ‬اْ ثؼذ‬
‫االِش‬
‫ِضبي‪:‬‬
‫افؾض ارا وبْ اٌّغغً ‪٠ AL‬ؾز‪ ٞٛ‬ػٍ‪ ٝ‬اٌم‪ّ١‬خ ‪ 6‬ارا وبْ االِش وزٌه ػغ ‪ 7‬ف‪ٟ‬‬
‫اٌّغغً ‪ٚ BL‬اال ػغ ‪ 8‬ف‪ ٟ‬اٌّغغً ‪DX‬‬
‫اٌؾً‪:‬‬
‫‪CMP AL,6‬‬
‫‪JE T1‬‬
‫‪MOV DX,8‬‬
‫‪JMP T2‬‬
‫‪T1:MOV BL ,7‬‬
‫‪T2:NOP‬‬
‫ِالؽظبد االِش ‪ NOP‬ال ‪ٕ٠‬فز ش‪١‬ئب (ال رفؼً ش‪١‬ئب) (‪)NO OPERATION‬‬
‫االِش اال‪ٚ‬ي اٌز‪ٕ٠ ٞ‬فزٖ ٘‪ ٛ‬اِش اٌّمبسٔخ ‪ٚ CMP‬ثؼذ٘ب ‪ٕ٠‬زمً اٌ‪ ٝ‬االِش ‪ JE‬ارا رؾمك‬
‫اْ اٌ‪ٙ‬ذف ‪ٚ‬اٌّظذس ِزب‪٠ٚ‬بْ رزُ ػٍّ‪١‬خ اٌمفض اٌ‪ ٝ‬اٌؼٕ‪ٛ‬اْ ‪ٕ٘ٚ T1‬بٌه ٔش‪ ٜ‬أٗ ع‪ٛ‬ف‬
‫‪ٕ٠‬فز االِش ‪ MOV BL , 7‬صُ ‪ٕ٠‬زمً اٌ‪ ٝ‬االِش ‪NOP‬‬
‫اِب ارا ٌُ ‪٠‬زؾمك اٌششؽ أ‪ ٞ‬اْ اٌّظذس ‪ٚ‬اٌ‪ٙ‬ذف ِخزٍفبْ فبٔٗ ال ‪٠‬مفض ‪ٚ‬أّب ‪ٕ٠‬فز االِش‬
‫اٌز‪٠ ٞ‬بر‪ ٟ‬ثؼذ اِشاٌمفض اٌّشش‪ٚ‬ؽ ‪ٚ MOV DX,8 ٛ٘ٚ‬ثؼذ٘ب ‪ٕ٠‬زمً اٌ‪ ٝ‬االِش اٌزبٌ‪ٟ‬‬
‫‪ ٛ٘ٚ‬اٌمفض اٌغ‪١‬ش ِشش‪ٚ‬ؽ ‪ JMP T2‬فززُ ػٍّ‪١‬خ اٌمفض اٌ‪ ٝ‬اٌؼٕ‪ٛ‬اْ ‪T2‬‬

‫رّش‪: ٓ٠‬‬
‫عغً اال‪ٚ‬اِش اٌز‪ ٟ‬ع‪ٛ‬ف ‪ٕ٠‬فز٘ب اٌّمطغ اٌغبثك ف‪ ٟ‬وً ؽبٌخ ِٓ اٌؾبالد اٌزبٌ‪١‬خ‪:‬‬
‫‪AL=8‬‬
‫‪CMP AL,6‬‬
‫‪MOV DX,8‬‬
‫‪JMP T2‬‬
‫‪T2:NOP‬‬
‫‪AL=6‬‬
‫‪CMP AL,6‬‬
‫‪JE T1‬‬
‫‪T1:MOV BL ,7‬‬
‫‪T2:NOP‬‬
‫رّش‪:ٓ٠‬‬
‫اوزت ِمطغ ثشٔبِظ ‪٠‬ؼغ اٌم‪ّ١‬خ ‪ 20H‬ف‪ ٟ‬اٌخال‪٠‬ب اٌّ‪ٛ‬ع‪ٛ‬دح ف‪ ٟ‬اٌّغبي ‪ 1‬ؽز‪8 ٝ‬‬

‫اٌؾً‪:‬‬
‫‪MOV BL,20H‬‬
‫‪MOV SI,1‬‬
‫‪T2:CMP SI,9‬‬
‫‪JE T1‬‬
‫‪MOV [SI],BL‬‬
‫‪INC SI‬‬
‫‪JMP T2‬‬
‫‪T1:NOP‬‬
‫ِالؽظخ‪ٌ :‬زؾذ‪٠‬ذ ػٕ‪ٛ‬اْ ف‪ ٟ‬اٌجشٔبِظ ؽز‪ٔ ٝ‬غزط‪١‬غ اْ ٔمفض اٌ‪ ٗ١‬خالي اٌجشٔبِظ ٔغغً‬
‫‪T10:INC SI‬‬ ‫االعُ ِزج‪ٛ‬ػب ثٕمطز‪ِ ٓ١‬ضال‬
‫‪TO_NEXT:ADD SI,30H‬‬
‫‪٠‬ؾك اعزؼّبي اٌىٍّبد ‪ٚ‬االسلبَ ثششؽ اْ ال ‪٠‬ى‪ ْٛ‬االعُ ػجبسح ػٓ وٍّخ ِؾغ‪ٛ‬صح ٌٍغخ‬
‫‪INC‬‬ ‫االعّجٍ‪ِ ٟ‬ضً ‪NOP‬‬
‫‪٠-‬غت اْ رى‪ ْٛ‬اعّبء اٌؼٕب‪ِ ٓ٠ٚ‬خزٍفخ فال ‪٠‬غ‪ٛ‬ص اعزؼّبي ٔفظ االعُ اوضش ِٓ ِشح‬
‫‪ٚ‬اؽذح‬

‫اٌ‪ ٝ‬اٌٍمبء ف‪ ٟ‬اٌذسط اٌمبدَ‬

‫انقفش اندشء انثبٍَ‬

‫ٌمذ رؾذصٕب ف‪ ٟ‬اٌذسط اٌغبثك ػٓ أ‪ٛ‬اع اٌمفض ‪ٚ‬رطشلٕب اٌ‪ ٝ‬ثؼغ ا‪ٚ‬اِش اٌمفض‪ .‬ف‪٘ ٟ‬زا‬
‫اٌذسط ع‪ٛ‬ف ٔزطشق اٌ‪ ٝ‬ا‪ٚ‬اِش عذ‪٠‬ذح‪.‬‬
‫ف‪٘ ٟ‬زا اٌذسط ع‪ٛ‬ف ٔزؾذس ػٓ اٌشا‪٠‬بد (‪)PF , AF , OF‬‬
‫ٌٍززوشح‪:‬‬

‫ِالؽظبد‬ ‫إٌ‪ٛ‬ع‬ ‫اٌشِض اعُ اٌشا‪٠‬خ‬


‫ارا وبْ ػذد اي ‪ 1‬ف‪ ٟ‬ا‪ٚ‬ي ‪ 8‬ثزبد ِٓ‬ ‫‪ٚ‬ػغ‬ ‫‪Parity flag‬‬ ‫‪PF‬‬
‫إٌز‪١‬غخ ص‪ٚ‬ع‪ ٟ‬رأخز ٘زٖ اٌشا‪٠‬خ ‪ٚ 1‬اال‬
‫رأخز طفش‬
‫ارا اػطذ اٌجذ اٌشاثؼخ اٌجذ اٌخبِغٗ ‪1‬‬ ‫‪ٚ‬ػغ‬ ‫‪Auxiliary flag‬‬ ‫‪AF‬‬
‫ا‪ ٚ‬اخزد اٌجذ اٌشاثؼخ ِٓ اٌجذ اٌخبِغخ‬
‫‪ 1‬رأخز ٘زٖ اٌشا‪٠‬خ ‪ٚ 1‬اال طفش‬
‫رأخز ‪ 1‬ارا وبٔذ إٌز‪١‬غخ اوجش ِٓ اٌّىبْ‬ ‫‪ٚ‬ػغ‬ ‫‪Overflow flag‬‬ ‫‪OF‬‬
‫اٌّخظض ٌؾفظ‪ٙ‬ب ‪ٚ‬اال رأخز طفش‬

‫انزاَت ‪PF‬‬

‫٘زٖ اٌشا‪٠‬خ رأخز اٌم‪ّ١‬خ ‪ 1‬ارا وبْ ػذد اٌجزبد اٌز‪ ٟ‬ل‪ّ١‬ز‪ٙ‬ب ‪ 1‬ف‪ ٟ‬ا‪ٚ‬ي صّبٔ‪١‬خ ثزبد ػٓ‬
‫اٌ‪ ٓ١ّ١‬ص‪ٚ‬ع‪١‬ب‪ ٚ .‬رأخز اٌم‪ّ١‬خ طفش ارا وبْ ػذد اٌجزبد اٌز‪ ٟ‬ل‪ّ١‬ز‪ٙ‬ب ‪ 1‬فشد‪٠‬ب‪.‬‬
‫ِالؽظبد ِ‪ّٙ‬خ‪ :‬اٌظفش ‪٠‬ؼزجش ص‪ٚ‬ع‪ٟ‬‬
‫ِضبي‪:‬‬
‫عذ ‪ٚ‬ػغ اٌشا‪٠‬خ ‪ PF‬ثؼذ اٌؼٍّ‪١‬خ اٌؾغبث‪١‬خ اٌزبٌ‪١‬خ‬
‫‪20H-20H‬‬
‫اٌؾً ‪:‬‬
‫رزوش‪ :‬عذ‪ٚ‬ي اٌغّغ ف‪ ٟ‬اٌّ‪١‬ضاْ اٌضٕبئ‪:ٟ‬‬
‫‪ :a,b‬ػجبسح ػٓ ثزبد‬
‫‪:D‬ؽبطً اٌطشػ ‪D=a-b‬‬
‫‪ borrow :b‬رؼٕ‪ ٟ‬اْ ٕ٘بٌه ؽبعخ ألخز ل‪ّ١‬خ ثمذس اٌّ‪١‬ضاْ اٌز‪ٔ ٞ‬زؼبًِ ِؼٗ ِٓ اٌجذ‬
‫اٌز‪ ٟ‬رٍ‪ ٟ‬اٌجذ اٌؾبٌ‪١‬خ‪ .‬اٌمظذ ف‪ ٟ‬ل‪ّ١‬خ ثبٌمذس اٌّ‪١‬ضاْ ف‪ ٟ‬اٌّ‪١‬ضاْ اٌؼشش‪ٔ ٞ‬أخز ‪ٚ 10‬ف‪ٟ‬‬
‫اٌّ‪١‬ضاْ اٌضٕبئ‪ٔ ٟ‬أخز ل‪ّ١‬خ ثمذس ‪ٚ 2‬ف‪ ٟ‬اٌّ‪١‬ضاْ اٌغبدط ػشش ٔأخز ل‪ّ١‬خ ثمذس ‪16‬‬

‫‪a‬‬ ‫‪b‬‬ ‫‪D‬‬ ‫‪b‬‬


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

‫ا‪ٚ‬ال رؾ‪ ً٠ٛ‬اٌم‪ ُ١‬اٌ‪ ٝ‬اٌّ‪١‬ضاْ اٌضٕبئ‪:ٟ‬‬


‫‪20H=0010000‬‬

‫اٌؼذد اال‪ٚ‬ي‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬
‫اٌؼذد اٌضبٔ‪ٟ‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬
‫إٌز‪١‬غخ‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬

‫ف‪ٕٙ‬ب ٔش‪ ٜ‬اْ إٌز‪١‬غخ إٌ‪ٙ‬بئ‪١‬خ ال رؾز‪ ٞٛ‬ػٍ‪ ٝ‬ثزبد ل‪ّ١‬ز‪ٙ‬ب ‪ 1‬أ‪ ٞ‬اْ ػذد اٌجزبد اٌز‪ ٟ‬ل‪ّ١‬ز‪ٙ‬ب‬
‫‪ ٛ٘ 1‬طفش‬
‫‪PF=1‬‬
‫رّش‪:ٓ٠‬‬
‫عذ ‪ٚ‬ػغ اٌشا‪٠‬خ ‪ PF‬ثؼذ اٌؼٍّ‪١‬خ اٌزبٌ‪١‬خ‪:‬‬
‫‪2AH+71H=00101010+01110001‬‬

‫‪C‬‬ ‫‪C‬‬
‫اٌؼذد اال‪ٚ‬ي‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬
‫اٌؼذد اٌضبٔ‪ٟ‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬
‫إٌز‪١‬غخ‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬

‫ػذد اٌجزبد اٌز‪ ٟ‬ل‪ّ١‬ز‪ٙ‬ب ‪ 1‬ف‪ ٟ‬إٌز‪١‬غخ ٘‪٘ٚ 5 ٛ‬زا اٌؼذد ٘‪ ٛ‬فشد‪ٌ ٞ‬زٌه ‪pf=0‬‬
‫عذ ‪ٚ‬ػغ اٌشا‪٠‬خ ‪ PF‬ثؼذ اٌؼٍّ‪١‬خاٌزبٌ‪١‬خ‪:‬‬
‫‪2FH-79H=00101111-01111001‬‬
‫‪b‬‬ ‫‪b‬‬ ‫‪b‬‬ ‫‪b‬‬
‫‪ 0‬اٌؼذد اال‪ٚ‬ي‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪ 0‬اٌؼذد اٌضبٔ‪ٟ‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬
‫إٌز‪١‬غخ‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬

‫‪PF=0‬‬

‫اٌّالؽظخ اٌضبٔ‪١‬خ‪ ٌٛ:‬وبٔذ إٌز‪١‬غخ اوجش ِٓ ‪ 8‬ثزبد ‪ِ .‬ضال ‪ 16‬ثذ فبٕٔب ٕٔظش اٌ‪ 8 ٝ‬ثزبد‬
‫اال‪ٚ‬ي ِٓ ع‪ٙ‬خ اٌ‪ ٓ١ّ١‬فمؾ ‪ٚ‬اْ ثبل‪ ٟ‬اٌجزبد ال رإصش ػٍ‪ ٝ‬اٌشا‪٠‬خ ‪PF‬‬
‫ِضال ‪ ٌٛ :‬وبٔذ إٌز‪١‬غخ‬
‫‪1001010011110000‬‬
‫ف‪ٕٙ‬ب ػذد اٌجزبد اٌز‪ ٟ‬ل‪ّ١‬ز‪ٙ‬ب ‪ 1‬ف‪ ٟ‬اٌجزبد اٌضّبٔ‪١‬خ اال‪ 4 ٛ٘ ٌٝٚ‬ارا ‪pf=1‬‬

‫انزاَت ‪AF‬‬

‫رأخز ٘زٖ اٌشا‪٠‬خ ‪ 1‬ارا اٌجذ اٌخبِغخ اخزد ِٓ اٌجذ اٌشاثؼخ ‪ Carry‬ا‪ ٚ‬ارا اخزد اٌشاثؼخ‬
‫ِٓ اٌخبِغخ ‪ . borrow‬ثبالخزظبس ٕٔظش اٌ‪ ٝ‬اٌجذ اٌخبِغخ ارا وبْ ف‪ٛ‬ل‪ٙ‬ب ‪)carry( C‬‬
‫ا‪ )borrow( b ٚ‬فبْ ‪ٚ AF=1‬اال ‪AF=0‬‬
‫اِضٍخ‪:‬‬
‫‪2AH+6AH=00101010+01101010‬‬
‫‪C‬‬ ‫‪C‬‬ ‫‪C‬‬ ‫‪C‬‬
‫‪ 0‬اٌؼذد اال‪ٚ‬ي‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬
‫‪ 0‬اٌؼذد اٌضبٔ‪ٟ‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬
‫إٌز‪١‬غخ‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬

‫أظش اٌ‪ C ٝ‬ثبٌٍ‪ ْٛ‬االؽّش‪ .‬اٌجذ اٌخبِغخ ف‪ٛ‬ل‪ٙ‬ب ‪ C‬الْ اٌجذ اٌشاثؼخ اػطذ اٌجذ‬
‫اٌخبِغخ ‪ٌٙ CARRY‬زا اٌغجت ‪AF=1‬‬
‫رّش‪:ٓ٠‬‬

‫‪23H+6AH=00100011+01101010‬‬
‫‪C‬‬ ‫‪C‬‬ ‫‪C‬‬
‫‪ 0‬اٌؼذد اال‪ٚ‬ي‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪ 0‬اٌؼذد اٌضبٔ‪ٟ‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬
‫إٌز‪١‬غخ‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬

‫ٕ٘ب ‪ AF=0‬الْ اٌجذ اٌخبِغخ ٌُ رأخز ِٓ اٌشاثؼخ ‪ ٌُٚ C‬رؼط‪ ٟ‬اٌشاثؼخ ‪b‬‬

‫انزاَت ‪OF‬‬

‫رؼزجش ٘زٖ اٌشا‪٠‬خ ِ‪ّٙ‬خ عذا الٔ‪ٙ‬ب رؼط‪ ٟ‬اٌّجشِظ ِؼٍ‪ِٛ‬خ ِ‪ّٙ‬خ عذا ػٓ إٌز‪١‬غخ إٌ‪ٙ‬بئ‪١‬خ‪.‬‬
‫فؼٕذِب ال ‪ّ٠‬ىٓ اظ‪ٙ‬بس إٌز‪١‬غخ ف‪ ٟ‬اٌّىبْ اٌّؾذد ٌ‪ٙ‬ب فبْ إٌز‪١‬غخ رى‪ ْٛ‬غ‪١‬ش طؾ‪١‬ؾخ‬
‫‪ٚ‬ؽز‪٠ ٝ‬ؼشف اٌّجشِظ ثبٔ‪ٙ‬ب غ‪١‬ش طؾ‪١‬ؾخ ‪٠‬ز‪ٛ‬عٗ اٌ‪٘ ٝ‬زٖ اٌشا‪٠‬خ‪.‬‬
‫ِضال ‪:‬‬
‫‪ADD AL,BL‬‬
‫اٌّمظ‪ٛ‬د ٕ٘ب اْ ٔغّغ ٌٍّغغً ‪ AL‬فؾ‪ ٜٛ‬اٌّغغً ‪ٔٚ BL‬ؾفع إٌز‪١‬غخ ف‪ ٟ‬اٌّغغً‬
‫‪ ٌٛ . AL‬وبٔذ إٌز‪١‬غخ اوجش ِٓ ثب‪٠‬ذ ػٍ‪ ٝ‬عج‪ ً١‬اٌّضبي ثؾبعخ اٌ‪ ٝ‬اوضش ِٓ صّبٔ‪١‬خ ثزبد‬
‫فبْ اٌّغغً ‪٠ ٌٓ AL‬غزط‪١‬غ ؽفع إٌز‪١‬غخ إٌ‪ٙ‬بئ‪١‬خ أّب ‪٠‬ؾفع عضء ِٕ‪ٙ‬ب ‪٘ٚ‬زٖ إٌز‪١‬غخ‬
‫رى‪ ْٛ‬غ‪١‬ش طؾ‪١‬ؾخ ٕ٘ب ‪OF=1‬‬
‫ثبالخزظبس‪ :‬ارا وبٔذ إٌز‪١‬غخ غ‪١‬ش ِٕطم‪١‬خ فبْ ‪OF=1‬‬
‫اٌ‪١‬ه ثؼغ اٌؾبالد اٌز‪ ٟ‬رأخز ‪ OF‬اٌم‪ّ١‬خ ‪1‬‬

‫إٌز‪١‬غخ‬ ‫اٌؼذد اٌضبٔ‪ٟ‬‬ ‫اٌؼٍّ‪١‬خ اٌؾغبث‪١‬خ‬ ‫اٌؼذد اال‪ٚ‬ي‬ ‫اٌؾبٌخ‬


‫عبٌجخ‬ ‫ِ‪ٛ‬عت‬ ‫عّغ(‪)+‬‬ ‫ِ‪ٛ‬عت‬ ‫اال‪ٌٝٚ‬‬
‫ِ‪ٛ‬عجخ‬ ‫عبٌت‬ ‫عّغ(‪)+‬‬ ‫عبٌت‬ ‫اٌضبٔ‪١‬خ‬
‫عبٌجخ‬ ‫عبٌت‬ ‫ؽشػ (‪)-‬‬ ‫ِ‪ٛ‬عت‬ ‫اٌضبٌضخ‬
‫ِ‪ٛ‬عجخ‬ ‫ِ‪ٛ‬عت‬ ‫ؽشػ(‪)-‬‬ ‫عبٌت‬ ‫اٌشاثؼخ‬

‫اِضٍخ‪:‬‬
‫‪71H+76H=01110001+01110110‬‬

‫‪C‬‬ ‫‪C‬‬ ‫‪C‬‬


‫اٌؼذد اال‪ٚ‬ي‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬
‫اٌؼذد اٌضبٔ‪ٟ‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬
‫إٌز‪١‬غخ‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬

‫ٕ٘ب ‪ OF=1‬الْ اٌؼذد اال‪ٚ‬ي ِ‪ٛ‬عت ‪ٚ‬اٌضبٔ‪ِٛ ٟ‬عت ‪ٚ‬إٌز‪١‬غخ عبٌجخ‪ .‬ال ‪ّ٠‬ىٓ اْ ٔغّغ‬
‫ػذد‪ِٛ ٓ٠‬عج‪ٔٚ ٓ١‬ؾظً ػٍ‪ٔ ٝ‬ز‪١‬غخ عبٌجخ‪.‬‬
‫ششػ اٌّشىٍخ‪:‬‬
‫‪71H=7*16+1=113‬‬ ‫‪76H=7*16+6=118‬‬
‫‪113+118=231‬‬
‫‪٘ٚ‬زٖ إٌز‪١‬غخ اٌّ‪ٛ‬عجخ ال ‪ّ٠‬ىٓ اْ رؾفع ف‪ِ ٟ‬غغً ِٓ ٔ‪ٛ‬ع ثب‪٠‬ذ اٌز‪٠ ٞ‬ؾز‪ ٞٛ‬ػٍ‪8 ٝ‬‬
‫ثزبد الٔٗ اٌجذ االخ‪١‬شح ٌالشبسح ارا ‪٠‬جم‪ٌ ٝ‬ذ‪ٕ٠‬ب ‪ 7‬ثزبد ‪ ٚ‬اوجش ل‪ّ١‬خ ‪ّ٠‬ىٓ ؽفظ‪ٙ‬ب ف‪ ٟ‬عجخ‬
‫ثزبد ٘‪ ٟ‬ػٕذِب رى‪ ْٛ‬عّ‪١‬غ اٌجزبد اٌغجؼخ ل‪ّ١‬ز‪ٙ‬ب ‪ .1‬أ‪ٞ‬‬
‫‪01111111=7FH=7*16+15=127‬‬
‫ارا ‪ 231‬ال ‪ّ٠‬ىٓ اْ رؾفع ف‪ 7 ٟ‬ثزبد فزغزغً ثذ االشبسح ٌزؼغ ث‪ٙ‬ب ثم‪١‬خ اٌم‪ّ١‬خ فزظ‪ٙ‬ش‬
‫إٌز‪١‬غخ ٕ٘ب عبٌجخ ‪.‬‬
‫ِضبي اخش‪:‬‬
‫‪B1H+96H=10110001+01000111‬‬
‫‪C‬‬ ‫‪C‬‬ ‫‪C‬‬
‫‪ 1‬اٌؼذد اال‪ٚ‬ي‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬
‫‪ 1‬اٌؼذد اٌضبٔ‪ٟ‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬
‫إٌز‪١‬غخ‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬

‫ٕ٘ب ‪ OF=1‬الْ ػذد عبٌت اػفٕب ٌٗ ػذد عبٌت اخش فؾظٍٕب ػٍ‪ٔ ٝ‬ز‪١‬غخ ِ‪ٛ‬عجخ ‪٘ٚ‬زا‬
‫غ‪١‬ش ِٕطم‪ . ٟ‬أظش اٌ‪ ٝ‬اٌجذ اٌضبِٕخ ف‪ ٟ‬وً ػذد ‪ٚ‬إٌز‪١‬غخ‪.‬‬
‫رؾٍ‪ ً١‬اٌّشىٍخ‪:‬‬
‫اٌؼذد اال‪ٚ‬ي ٘‪ ٛ٘ٚ 10110001 ٛ‬ػذد عبٌت أظش اٌ‪ ٝ‬اٌجذ اٌؾّشاء اٌز‪ ٟ‬رّضً‬
‫االشبسح‪ٌّ .‬ؼشفخ ل‪ّ١‬زٗ ػٍ‪ٕ١‬ب اْ ٔغذ ل‪ّ١‬زٗ اٌّطٍمخ‪.‬‬
‫‪ٌٍٚ‬ؾظ‪ٛ‬ي ػٍ‪ٔ ٗ١‬ؼًّ ِب ‪:ٍٟ٠‬‬
‫‪ٔ-‬ؼىظ ل‪ ُ١‬وً اٌجزبد ِىبْ ‪ٔ1‬غغً ‪ِٚ 0‬ىبْ ‪ٔ 0‬غغً ‪1‬‬
‫ٔؾظً ػٍ‪ ٝ‬اٌم‪ّ١‬خ ‪01001110‬‬
‫‪ٔ-‬ؼ‪١‬ف ٌٍم‪ّ١‬خ اٌغذ‪٠‬ذح ‪1‬‬
‫‪01001110+00000001‬‬
‫ٔؾظً ػٍ‪ٝ‬‬
‫‪01001111‬‬
‫‪01001111=4FH=4*16+15=79‬‬
‫ارا اٌؼذد اال‪ٚ‬ي ٘‪ -79 ٛ‬ػشش‪ٞ‬‬
‫االْ اٌ‪ ٝ‬اٌؼذد اٌضبٔ‪:ٟ‬اٌؼذد ‪96H‬‬
‫‪ ٛ٘ٚ 96H=10010110‬ا‪٠‬ؼب ػذد عبٌت أظش اٌ‪ ٝ‬ثذ االشبسح ٌّؼشفخ ل‪ّ١‬زٗ ٔغزؼ‪ٓ١‬‬
‫ثبٌم‪ّ١‬خ اٌّطٍمخ‬
‫‪ٔ-‬ؼىظ ل‪ ُ١‬اٌجزبد ٔؾظً ػٍ‪ ٝ‬اٌؼذد اٌزبٌ‪ٟ‬‬
‫‪01101001‬‬
‫‪ٔ-‬ؼ‪١‬ف اٌمّ‪١‬خ ‪ٌٍ 1‬ؼذد اٌغذ‪٠‬ذ‬
‫‪01101001+00000001‬‬
‫ٔؾظً ػٍ‪01101010 ٝ‬‬
‫‪01101010=6AH=6*16+10=106‬‬
‫ارا اٌؼذد اٌضبٔ‪ -106 ٛ٘ ٟ‬ػشش‪ٞ‬‬
‫ارا‬
‫‪-79+(-106)=-79-106= -185‬‬
‫٘زٖ اٌم‪ّ١‬خ ال ‪ّ٠‬ىٓ وزبثز‪ٙ‬ب ف‪ِ ٟ‬غغً ‪٠‬زى‪ ِٓ ِٓ ْٛ‬صّبٔ‪١‬خ ثزبد الْ اطغش ػذد عبٌت‬
‫‪ّ٠‬ىٓ وزبثزٗ ف‪ ٟ‬اٌّغغً ٘‪-128 ٛ‬‬
‫ِغبي االػذاد اٌغبٌجخ اٌز‪ّ٠ ٟ‬ىٓ رخض‪ ٕٗ٠‬ف‪ِ ٟ‬غغً ِؼ‪ ٛ٘ ٓ١‬دائّب ِٓ ‪ -1‬ؽز‪ ٝ‬اٌؼذد‬
‫‪ . (2N-1)/2‬اٌشِض ‪ ٛ٘ N‬ػذد اٌجزبد ٌٍّغغً ‪٠‬شًّ ثذ االشبسح ِضال ‪ ٌٗ AL‬صّبٔ‪١‬خ‬
‫ثزبد ارا‬
‫‪8‬‬
‫‪(2 -1)/2=128‬‬
‫ارا اٌّغبي اٌّغّ‪ٛ‬ػ ثٗ ٘‪ٛ‬‬
‫]‪[-128..-1‬‬
‫اٌم‪ّ١‬خ ‪ ٟ٘ -185‬خبسط اٌّغبي ‪ٚ‬ال ‪ّ٠‬ىٓ رخض‪ٕٙ٠‬ب ٌ‪ٙ‬زا اٌغجت ‪OF=1‬‬

‫رّبس‪ٚ ٓ٠‬ؽٍ‪ٛ‬ي‬
‫عذ ل‪ ُ١‬سا‪٠‬بد اٌ‪ٛ‬ػغ ثؼذ اٌؼٍّ‪١‬خ اٌؾغبث‪١‬خ‬
‫‪4AH+77H=01001010+01110111‬‬

‫‪C‬‬ ‫‪C‬‬ ‫‪C‬‬ ‫‪C‬‬ ‫‪C‬‬ ‫‪C‬‬


‫اٌؼذد اال‪ٚ‬ي‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬
‫اٌؼذد اٌضبٔ‪ٟ‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬
‫إٌز‪١‬غخ‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬
‫ل‪ ُ١‬اٌشا‪٠‬بد ؽغت إٌز‪١‬غخ‬
‫‪OF‬‬ ‫‪AF‬‬ ‫‪PF‬‬ ‫‪CF‬‬ ‫‪ZF‬‬ ‫‪SF‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬
‫رّش‪ ٓ٠‬اخش‬
‫عذ ل‪ ُ١‬سا‪٠‬بد اٌ‪ٛ‬ػغ ثؼذ اٌؼٍّ‪١‬خ اٌؾغبث‪١‬خ‬
‫‪4AH-77H=01001010-01110111‬‬

‫‪b‬‬ ‫‪b‬‬ ‫‪b‬‬ ‫‪b‬‬ ‫‪b‬‬ ‫‪b‬‬ ‫‪b‬‬


‫اٌؼذد اال‪ٚ‬ي‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬
‫اٌؼذد اٌضبٔ‪ٟ‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬
‫إٌز‪١‬غخ‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬
‫ل‪ ُ١‬اٌشا‪٠‬بد ؽغت إٌز‪١‬غخ‬
‫‪OF‬‬ ‫‪AF‬‬ ‫‪PF‬‬ ‫‪CF‬‬ ‫‪ZF‬‬ ‫‪SF‬‬
‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬

‫ِالؽظخ‪ OF=0 :‬الْ إٌز‪١‬غخ ِٕطم‪١‬خ ػذد ِ‪ٛ‬عت ٔبلض ػذد ِ‪ٛ‬عت إٌز‪١‬غخ عبٌجخ‬
‫طؾ‪١‬ؼ ‪ّ٠‬ىٓ اْ رى‪ ْٛ‬ارا وبْ اٌؼذد اٌضبٔ‪ ٟ‬اوجش ِٓ اال‪ٚ‬ي ‪ٕ٘ٚ‬ب‬
‫‪4AH-77H=4*16+10-(7*16+7)=74-119= -45‬‬
‫‪٘ٚ‬زٖ اٌم‪ّ١‬خ ف‪ ٟ‬اٌّغبي اٌّزو‪ٛ‬س‬

‫ا‪ٚ‬اِش اٌمفض اٌّشش‪ٚ‬ؽ اٌّزؼٍمخ ف‪ ٟ‬اٌشا‪٠‬بد اٌغذ‪٠‬ذح‬


‫اٌشا‪٠‬خ اٌّطٍ‪ٛ‬ثخ‬ ‫اٌّؼٕ‪ٝ‬‬ ‫االِش‬
‫‪PF=1‬‬ ‫‪JMP IF PARITY‬‬ ‫‪JP‬‬
‫‪PF=0‬‬ ‫‪JMP IF NO PARITY‬‬ ‫‪JNP‬‬
‫‪PF=1‬‬ ‫‪JMP IF PARITY EVEN‬‬ ‫‪JPE‬‬
‫‪PF=0‬‬ ‫‪JMP IF PARITY ODD‬‬ ‫‪JPO‬‬
‫‪OF=1‬‬ ‫‪JMP IF OVERFLOW‬‬ ‫‪JO‬‬
‫‪OF=0‬‬ ‫‪JMP IF NOT OVERFLOW‬‬ ‫‪JNO‬‬

‫اٌمبئّخ اٌزبٌ‪١‬خ رزؼٍك ف‪ ٟ‬اٌمفض اٌّشش‪ٚ‬ؽ ػٕذ اٌزؼبًِ ِغ االػذاد اٌّ‪ٛ‬ع‪ٙ‬خ (اػذاد عبٌجخ‬
‫‪ٚ‬اػذاد ِ‪ٛ‬عجخ)‬
‫‪CMP OP1 , OP2‬‬
‫االِش‬ ‫‪ٚ‬طف االِش‬
JG JMP IF OP1>OP2 (JMP IF GREATER)
JNG JMP IF OP1 <= OP2
JL JMP IF OP1<OP2 (JMP IF LESS THAN)
JNL JMP IF OP1>=OP2
JGE JMP IF OP1>=OP2 (JMP IF GREATER THAN
OR EQUAL)
JNGE JMP IF OP1<OP2
JLE JMP IF OP1<=OP2
JNLE JMP IF OP1>OP2

ٟ‫ب ف‬ٙ١ٌ‫ف ارطشق ا‬ٛ‫عجخ فغ‬ٌّٛ‫ رزؼبًِ فمؾ ِغ االػذاد ا‬ٟ‫اِش اٌمفض اٌز‬ٚ‫ٕ٘بٌه ثؼغ ا‬
.‫ط اٌمبدِخ‬ٚ‫اٌذس‬
‫خ‬١‫اِش اٌؾغبث‬ٚ‫ثؼغ اال‬
cf ‫خ‬٠‫)اٌغّغ ِغ اٌشا‬1
ADC (ADD WITH CARRY)
ADC OP1 ,OP2
OP1=OP1+OP2+CF*
:‫ِالؽظبد‬
*
‫ّخ‬١‫غذ اٌم‬١ٌٚ ‫خ اٌغّغ‬١ٍّ‫ وبٔذ لجً ػ‬ٟ‫ اٌز‬CF ‫خ‬٠‫ّخ اٌشا‬١‫ ل‬ٞ‫ أ‬CF ٟ‫د ف‬ٛ‫اٌّمظ‬-
‫ذح‬٠‫خ اٌغّغ اٌغذ‬١ٍّ‫ب ػ‬ٙ‫ ػٍّز‬ٟ‫ذح اٌز‬٠‫اٌغذ‬
:ٌٟ‫ ِمطغ اٌجشٔبِظ اٌزب‬ٝ‫ِؼط‬:‫ِضبي‬
MOV AL,90H
ADD AL,85H
ADC AL,3

‫االِش‬ AL CF ‫ِالؽظبد‬
?? ?
MOV AL,90H 90H ? ‫بد‬٠‫ اٌشا‬ٍٝ‫ ال رإصش ػ‬MOV
ADD AL,85H 15H 1
ADC AL,3 19H 0 AL=15H+3+1

‫خ ثزبد‬١ٔ‫ اوضش ِٓ صّب‬ٌٝ‫ب ثؾبعخ ا‬ٙٔ‫خ ال‬١‫ش ِٕطم‬١‫غخ غ‬١‫ اْ إٌز‬:‫ِالؽظخ‬


CF ‫خ‬٠‫)اٌطشػ ِغ سا‬2
SBB (SUBTRUCT WITH CARRY)
‫‪SBB OP1,OP2‬‬
‫*‪OP1=OP1-OP2-CF‬‬
‫اٌ‪ ٝ‬اٌٍمبء ف‪ ٟ‬اٌذسط اٌمبدَ‬

‫اوايز انقفش انًشزوط اندشء انثبنث‬

‫ٌمذ رؼٍّٕب ف‪ ٟ‬اٌذس‪ٚ‬ط اٌغبثمخ ا‪ٚ‬اِش لفض ِزٕ‪ٛ‬ػخ‪:‬‬


‫‪-1‬ا‪ٚ‬اِش لفض ِشش‪ٚ‬ؽ اٌز‪ ٟ‬رغأي ػٓ سا‪٠‬خ ِٓ اٌشا‪٠‬بد (‪(jz , je , jc,jo…….‬‬
‫‪-2‬ا‪ٚ‬اِش لفض ِشش‪ٚ‬ؽ اٌّزخظظخ ف‪ ٟ‬االػذاد اٌّ‪ٛ‬ع‪ٙ‬خ (االػذاد اٌغبٌجخ ‪ٚ‬االػذاد‬
‫اٌّ‪ٛ‬عجخ) أ‪ ٞ‬أ‪ٙ‬ب رؼزجش اٌجذ االخ‪١‬شح ِٓ اٌغ‪ٙ‬خ اٌ‪١‬غش‪ ٟ٘ ٜ‬ثذ االشبسح‬
‫‪-3‬ا‪ٚ‬اِش لفض ِشش‪ٚ‬ؽ اٌّزخظظخ ف‪ ٟ‬االػذاد اٌّ‪ٛ‬عجخ أ‪ ٞ‬أ‪ٙ‬ب ال رؼزجش اٌجذ االخ‪١‬شح ِٓ‬
‫اٌغ‪ٙ‬خ اٌ‪١‬غش‪ ٜ‬ثذ اشبسح ‪ٌٚ‬ىٕ‪ٙ‬ب رؼزجش٘ب عضء ِٓ اٌؼذد ‪ ٟ٘ٚ‬راد اٌم‪ّ١‬خ اٌىجش‪.ٜ‬‬
‫ِضبي‪:‬‬
‫‪X=11111111‬‬
‫٘زا اٌؼذد ثبٌٕغجخ ٌٍمفض اٌّشش‪ٚ‬ؽ اٌّزخظض ف‪ ٟ‬االػذاد اٌّ‪ٛ‬ع‪ٙ‬خ ػجبسح ػٓ ػذد عبٌت‬
‫الْ اٌجذ االخ‪١‬ش ح ِٓ اٌغ‪ٙ‬خ اٌ‪١‬غش‪ ٜ‬ل‪ّ١‬ز‪ٙ‬ب ‪٘ٚ .1‬زا اٌؼذد ٘‪ ٛ‬ػجبسح ػٓ ‪ٔ(-1‬بلض‬
‫‪ٚ‬اؽذ)‬
‫اِب ثبٌٕغجخ ال‪ٚ‬اِش اٌمفض اٌّشش‪ٚ‬ؽ اٌّزخظظخ ف‪ ٟ‬االػذاد اٌّ‪ٛ‬عجخ فمؾ‪ .‬فجبٌٕغجخ ٌ‪ٙ‬ب ال‬
‫ر‪ٛ‬عذ اػذاد عبٌجخ ثً عّ‪١‬غ االػذاد ٘‪ ٟ‬اػذاد ِ‪ٛ‬عجخ ‪ٚ‬اٌجذ االخ‪١‬شح ِٓ ػّٓ اٌؼذد‪.‬‬
‫‪٘ٚ‬زا اٌؼذد ل‪ّ١‬زٗ ‪ 255‬ػشش‪ٞ‬‬

‫اٌمبئّخ اٌزبٌ‪١‬خ رزؼٍك ف‪ ٟ‬اٌمفض اٌّشش‪ٚ‬ؽ ػٕذ اٌزؼبًِ ِغ االػذاد اٌّ‪ٛ‬عجخ‬


‫‪CMP OP1 , OP2‬‬
‫االِش‬ ‫‪ٚ‬طف االِش‬
‫‪JA‬‬ ‫)‪JMP IF OP1>OP2 (JMP IF above‬‬
‫‪JNA‬‬ ‫‪JMP IF OP1 <= OP2‬‬
‫‪JB‬‬ ‫)‪JMP IF OP1<OP2 (JMP IF BELOW‬‬
‫‪JNB‬‬ ‫‪JMP IF OP1>=OP2‬‬
‫‪JAE‬‬ ‫‪JMP IF OP1>=OP2 (JMP IF ABOVE OR‬‬
‫)‪EQUAL‬‬
‫‪JNAE‬‬ ‫‪JMP IF OP1<OP2‬‬
‫‪JBE‬‬ ‫‪JMP IF OP1<=OP2‬‬
‫‪JNBE‬‬ ‫‪JMP IF OP1>OP2‬‬
‫اِضٍخ‪:‬‬
‫ِؼط‪ ٝ‬اٌّمطغ اٌزبٌ‪:ٟ‬‬
‫‪MOV AL , -1‬‬
‫‪CMP AL,0‬‬
‫‪JG T1‬‬
‫‪MOV BL,4‬‬
‫‪JMP T2‬‬
‫‪T1:MOV BL,6‬‬
‫‪T2:NOP‬‬
‫ِب ٘‪ ٛ‬فؾ‪ ٜٛ‬اٌّغغً ‪ BL‬ػٕذ اٌ‪ٛ‬ط‪ٛ‬ي اٌ‪ ٝ‬اٌؼٕ‪ٛ‬اْ ‪T2‬‬
‫اٌؾً‪ BL=4 :‬الْ االِش ‪ ِٓ JG‬ا‪ٚ‬اِش اٌمفض اٌّشش‪ٚ‬ؽ اٌز‪ ٟ‬رزؼبًِ ِغ االػذاد‬
‫اٌّ‪ٛ‬ع‪ٙ‬خ ‪ .‬فبٔ‪ٙ‬ب رؼزجش اْ اٌّغغً ‪٠ AL‬ؾز‪ ٞٛ‬ػٍ‪ ٝ‬اٌم‪ّ١‬خ ‪ ٟ٘ٚ -1‬ل‪ّ١‬خ عبٌجخ اطغش‬
‫ِٓ طفش ‪ .‬ارا ال ‪٠‬زُ اٌمفض ‪ٚ‬أّب ‪٠‬م‪ َٛ‬اٌّؼبٌظ ثبالٔزمبي اٌ‪ ٝ‬االِش اٌز‪ٛ٘ٚ ٗ١ٍ٠ ٞ‬‬
‫‪MOV BL,4‬‬
‫‪ٚ‬ثؼذ٘ب ‪٠‬مفض اٌ‪ ٝ‬اٌؼٕ‪ٛ‬اْ ‪T2‬‬

‫رّش‪ِ :ٓ٠‬ؼط‪ ٝ‬اٌّمطغ اٌزبٌ‪:ٟ‬‬


‫‪MOV AL , -1‬‬
‫‪CMP AL,0‬‬
‫‪JA T1‬‬
‫‪MOV BL,4‬‬
‫‪JMP T2‬‬
‫‪T1:MOV BL,6‬‬
‫‪T2:NOP‬‬
‫ِب ٘‪ ٛ‬فؾ‪ ٜٛ‬اٌّغغً ‪ BL‬ػٕذ اٌ‪ٛ‬ط‪ٛ‬ي اٌ‪ ٝ‬اٌؼٕ‪ٛ‬اْ ‪T2‬‬

‫اٌؾً‪ :‬اٌّغغً ‪ BL=6‬الْ االِش ‪٠ JA‬زؼبًِ ِغ االػذاد اٌّ‪ٛ‬عجخ فمؾ ف‪ ٛٙ‬ال ‪٠‬ؼشف‬
‫االػذاد اٌغبٌجخ‪.‬‬
‫‪AL=-1=11111111‬‬
‫ثبٌٕغجخ ٌٗ ٘زٖ ل‪ّ١‬خ ‪ 255‬ػشش‪ٚ ٞ‬فؼال ٘زٖ اٌم‪ّ١‬خ اوجش ِٓ اٌظفش ف‪١‬زُ اٌمفض اٌ‪T1 ٝ‬‬
‫‪ٕ٘ٚ‬بن ‪٠‬ؼغ اٌّؼبٌظ اٌم‪ّ١‬خ ‪ 6‬ف‪ ٟ‬اٌّغغً ‪ٕ٠ٚ AL‬زمً ثؼذ٘ب اٌ‪ ٝ‬اٌؼٕ‪ٛ‬اْ ‪T2‬‬

‫ِٓ ٕ٘ب ٔش‪ ٜ‬أٗ ػٍ‪ٕ١‬ب االٔزجبٖ ػٕذ اعزؼّبي ا‪ٚ‬اِش اٌمفض اٌّشش‪ٚ‬ؽ أ‪ ٞ‬اِش ٔأخز‬

‫اوايز انقسًت وانضزة‬


‫ا‪ٚ‬اِش اٌؼشة‪:‬‬
‫ف‪ٌ ٟ‬غخ االعّجٍ‪ ٟ‬ر‪ٛ‬عذ ا‪ٚ‬اِش ٌؼشة االػذاد اٌّ‪ٛ‬عجخ فمؾ ‪ٚ‬ا‪ٚ‬اِش ٌؼشة االػذاد‬
‫اٌّ‪ٛ‬ع‪ٙ‬خ (أ‪ ٞ‬اٌّ‪ٛ‬عجخ ‪ٚ‬اٌغبٌجخ)‬

‫ضزة االعذاد انًىخبت‪:‬‬

‫ٔغزؼًّ ٕ٘ب اِش اٌؼشة ‪ٌٚ MUL‬ىٓ ٕ٘بٌه شش‪ٚ‬ؽ ‪٠‬غت اْ رزؾمك ػٕذِب ٔش‪٠‬ذ اْ‬
‫ٔغزؼًّ ٘زا االِش ‪MUL OP1 .‬‬
‫ِالؽظبد ِ‪ّٙ‬خ‪:‬‬
‫‪ّ٠ OP1-‬ىٓ اْ ‪٠‬ى‪ِ ْٛ‬غغال ا‪ ٚ‬اعُ ِزغ‪١‬ش ا‪ ٚ‬خٍ‪١‬خ ف‪ ٟ‬اٌزاوشح ‪ّ٠ٚ‬ىٓ اْ ‪٠‬ى‪ ْٛ‬خٍ‪١‬ز‪ٓ١‬‬
‫‪ّ٠-‬ىٓ اْ ‪٠‬ى‪ OP1 ْٛ‬ثط‪ٛ‬ي ‪ 8‬ثزبد ا‪ 16 ٚ‬ثزب‬
‫‪-‬ارا وبْ ‪ٛٔ ِٓ OP1‬ع ثب‪٠‬ذ ػٕذ٘ب رزُ اٌؼٍّ‪١‬خ اٌزبٌ‪١‬خ‬
‫‪AX=AL*OP1‬‬
‫أ‪ ٞ‬اْ اٌّؼبٌظ ع‪ٛ‬ف ‪٠‬م‪ َٛ‬ثؼشة ‪ OP1‬ثفؾ‪ ٜٛ‬اٌّغغً ‪ٚ AL‬فمؾ ٘زا اٌّغغً‬
‫‪٠ٚ‬ؼغ إٌز‪١‬غخ ف‪ ٟ‬اٌّغغً ‪ٌٙ .AX‬زا اٌغجت ‪٠‬غت اْ ٔؼغ اؽذ‪ ٜ‬اٌم‪ ُ١‬ف‪ ٟ‬اٌّغغً ‪AL‬‬
‫‪ٚ‬اْ ٔؾفع ل‪ّ١‬خ اٌّغغً ‪ AH‬ف‪ِ ٟ‬ىبْ اخش لجً ػٍّ‪١‬خ اٌؼشة الٔٗ ثؼذ ػٍّ‪١‬خ اٌؼشة‬
‫ع‪ٛ‬ف ‪٠‬م‪ َٛ‬اٌّؼبٌظ ثؾزف اٌم‪ّ١‬خ اٌمذ‪ّ٠‬خ ‪٠ٚ‬ؼغ ِىبٔ‪ٙ‬ب اٌم‪ّ١‬خ اٌغذ‪٠‬ذح‬
‫ِضبي‪:‬‬
‫اوزت ِمطغ ثشٔبِظ ‪٠‬ؼشة فؾ‪ ٜٛ‬اٌخٍ‪١‬خ ‪ 20H‬ف‪ ٟ‬اٌم‪ّ١‬خ ‪٠ٚ 8‬ؾفع إٌز‪١‬غخ ف‪ ٟ‬اٌّغغً‬
‫‪CX‬‬
‫اٌؾً‪:‬‬
‫‪MOV SI,20H‬‬
‫]‪MOV AL,[SI‬‬
‫‪MOV BL,8‬‬
‫‪MUL BL‬‬
‫‪MOV CX,AX‬‬
‫‪-‬ارا وبْ ‪ٛٔ ِٓ OP1‬ع وٍّخ أ‪ 16 ٞ‬ثذ ػٕذ٘ب رزُ اٌؼٍّ‪١‬خ اٌزبٌ‪١‬خ‬
‫‪DX:AX=AX*OP1‬‬
‫ػٕذ٘ب ‪٠‬م‪ َٛ‬اٌّؼبٌظ ثؼشة ‪ OP1‬ثم‪ّ١‬خ فؾ‪ ٜٛ‬اٌّغغً ‪٠ٚ AX‬ؾفع إٌز‪١‬غخ ف‪ٟ‬‬
‫اٌّغغٍ‪ٌٙ AX ٚ DX ٓ١‬زا اٌغجت ‪٠‬غت اْ ٔؼغ اؽذ‪ ٜ‬اٌم‪ ُ١‬ف‪ ٟ‬اٌّغغً ‪ٚ AX‬اْ‬
‫ٔؾفع اٌم‪ّ١‬خ اٌّ‪ٛ‬ع‪ٛ‬دح ف‪ ٟ‬اٌّغغً ‪ DX‬ف‪ِ ٟ‬ىبْ اخش لجً ػٍّ‪١‬خ اٌؼشة‬
‫ِضبي ‪:‬‬
‫ػٍ‪١‬ه ػشة اٌؼذد ‪ FFFFH‬ثبٌؼذد ‪4‬‬
‫اٌؾً‪:‬‬
‫‪MOV AX,0FFFFH‬‬
‫‪MOV CX,4‬‬
‫‪MUL CX‬‬
‫ِالؽظخ‪ٌ :‬مذ اػفٕب طفش اِبَ اٌؼذد اٌز‪ٚ ٞ‬ػؼٕبٖ ف‪ ٟ‬اٌّغغً ‪ AX‬الْ اٌمبٔ‪٠ ْٛ‬م‪ٛ‬ي‬
‫وً ػذد ‪٠‬جذأ ثؾشف ِٓ اٌؾش‪ٚ‬ف(‪٠ )A ,B ,C, D ,E , F‬غت اػبفخ طفش ػٓ ‪٠‬غبسٖ‬

‫ضزة االعذاد انًىخهت‬

‫ٔفظ اٌشش‪ٚ‬ؽ اٌز‪ ٟ‬روشر‪ٙ‬ب عبثمب ‪ٌٚ‬ىٓ ثذال ِٓ االِش ‪ٔ MUL‬غزخذَ ‪IMUL‬‬
‫ِضبي ‪:‬‬
‫اوزت ِمطغ ثشٔبِظ ‪ٕ٠‬فز اٌزّش‪ ٓ٠‬اٌزبٌ‪ٟ‬‬
‫‪CX=-10 * DL‬‬
‫اٌؾً‪:‬‬
‫‪MOV AL,-10‬‬
‫‪IMUL DL‬‬
‫‪MOV CX,AX‬‬

‫انقسًت‬
‫رمغُ ػٍّ‪١‬بد اٌمغّخ اٌ‪ ٝ‬لغّ‪ٓ١‬‬

‫‪-1‬لغّخ االػذاد اٌّ‪ٛ‬عجخ فمؾ‬


‫‪-2‬لغّخ االػذاد اٌّ‪ٛ‬ع‪ٙ‬خ(عبٌجخ ‪ِٛٚ‬عجخ)‬

‫قسًت االعذاد انًىخبت‬

‫ٔغزخذَ ف‪٘ ٟ‬زٖ اٌؾبٌخ االِش ‪DIV‬‬


‫‪ ٛ٘ٚ‬ثبٌشىً اٌزبٌ‪:ٟ‬‬
‫‪DIV OP1‬‬
‫‪-‬ارا وبْ ‪ٛٔ ِٓ OP1‬ع ثب‪٠‬ذ ػٕذ٘ب رزُ اٌؼٍّ‪١‬خ اٌزبٌ‪١‬خ‪:‬‬
‫‪AX/OP1‬‬
‫‪٠‬م‪ َٛ‬اٌّؼبٌظ ثزمغ‪ ُ١‬اٌم‪ّ١‬خ اٌّ‪ٛ‬ع‪ٛ‬دح ف‪ ٟ‬اٌّغغً ‪( AX‬فمؾ ٘زا اٌّغغً)‬
‫ػٍ‪٠ٚ OP1 ٝ‬زُ ؽفع إٌبرظ ف‪ ٟ‬اٌّغغالد اٌزبٌ‪١‬خ‪:‬‬
‫‪٠ :AL‬ؾفع إٌبرظ اٌظؾ‪١‬ؼ‬
‫‪٠:AH‬ؾفع اٌجبل‪ ٟ‬اٌظؾ‪١‬ؼ‬
‫ِضبي‪:‬‬
‫لغُ اٌم‪ّ١‬خ ‪ 9‬ػٍ‪4 ٝ‬‬
‫اٌؾً‪:‬‬
‫‪MOV AX,9‬‬
‫‪MOV BL,4‬‬
‫‪DIV BL‬‬
‫ثؼذ رٕف‪١‬ز ٘زا اٌّمطغ‬
‫‪AH=1‬‬ ‫‪AL=2‬‬
‫ِالؽظخ‪ :‬ال ‪٠‬غ‪ٛ‬ص االخزضاي ف‪ ٟ‬اٌجبل‪ ٟ‬اٌظؾ‪١‬ؼ ؽز‪ٌٛٚ ٝ‬اِىٓ رٌه‬
‫ِضبي‪:‬‬
‫‪MOV AX,8‬‬
‫‪MOV CL,6‬‬
‫‪DIV CL‬‬
‫‪AH=2‬‬ ‫‪AL=1‬‬
‫طؾ‪١‬ؼ أٗ ‪ 2/6=1/3‬اال أٗ ال ‪٠‬غ‪ٛ‬ص اٌزجغ‪١‬ؾ‬
‫‪-‬ارا وبْ ‪ٛٔ ِٓ OP1‬ع ‪ 16‬ثذ رزُ اٌؼٍّ‪١‬خ اٌزبٌ‪١‬خ‬
‫‪DX:AX/OP1‬‬
‫أ‪ ٞ‬اْ اٌّؼبٌظ ‪٠‬زؼبًِ ِغ اٌّغغٍ‪ ٓ١‬وبٔ‪ّٙ‬ب ِغغال ‪ٚ‬اؽذا ‪٠ٚ‬مغّ‪ّٙ‬ب ػٍ‪٠ٚ OP1 ٝ‬ؾفع‬
‫إٌز‪١‬غخ ثبٌشىً اٌزبٌ‪:ٟ‬‬
‫‪٠ :AX‬ؾز‪ ٞٛ‬ػٍ‪ ٝ‬إٌبرظ اٌظؾ‪١‬ؼ‬
‫‪٠:DX‬ؾز‪ ٞٛ‬ػٍ‪ ٝ‬اٌجبل‪ ٟ‬اٌظؾ‪١‬ؼ‬

‫قسًت االعذاد انًىخهت‬

‫ٕ٘ب ٔغزخذَ ٔفظ اٌشش‪ٚ‬ؽ ِضً االػذاد اٌّ‪ٛ‬عجخ ‪ٌٚ‬ىٓ اٌفشق اٌ‪ٛ‬ؽ‪١‬ذ ٘‪ ٛ‬ثذال ِٓ االِش‬
‫ٔغزخذَ االِش ‪IDIV‬‬ ‫‪DIV‬‬
‫ِضبي‪:‬‬
‫اؽغت ِب ‪ٍٟ٠‬‬
‫‪-120/12H‬‬
‫اٌؾً‪:‬‬
‫‪MOV AX,-120‬‬
‫‪MOV BL,12H‬‬
‫‪IDIV BL‬‬
‫رّش‪:ٓ٠‬‬
‫اوزت ِمطغ ثشٔبِظ ‪٠‬ؾغت‬
‫‪1234H/-1010‬‬
‫اٌؾً‪:‬‬
‫‪MOV DX,0‬‬
‫‪MOV AX,1234H‬‬
‫‪MOV CX,-1010‬‬
‫‪IDIV CX‬‬
‫ِالؽظخ‪ٌ :‬مذ ‪ٚ‬ػؼٕب اٌم‪ّ١‬خ طفش ف‪ ٟ‬اٌّغغً ‪ DX‬لجً ػٍّ‪١‬خ اٌمغّخ الْ اٌّؼبٌظ ع‪ٛ‬ف‬
‫‪٠‬غزخذَ اٌم‪ّ١‬خ اٌّ‪ٛ‬ع‪ٛ‬دح ف‪ ٗ١‬ػٕذ اٌمغّخ ‪ّ٠ٚ‬ىٓ اْ رى‪ ْٛ‬ل‪ّ١‬خ ِخزٍفخ ػٓ اٌظفش ‪ٚ‬ؽز‪ٝ‬‬
‫ٔزأوذ اْ اٌم‪ّ١‬خ طفش ‪ٚ‬ػؼٕب اٌظفش ف‪DX ٟ‬‬
‫اٌ‪ ٝ‬اٌٍمبء ف‪ ٟ‬اٌذسط اٌمبدَ‬

‫انحهقبث‬

‫‪ّ٠‬ىٓ رى‪ ٓ٠ٛ‬اٌؾٍمبد ف‪ٌ ٟ‬غخ االعّجٍ‪ ٟ‬ف‪ ٟ‬ػذح ؽشق ٔزوش ِٕ‪ٙ‬ب اٌطشق اٌزبٌ‪١‬خ‪:‬‬
‫‪_1‬اٌطش‪٠‬مخ اال‪ ٌٝٚ‬ثبعزخذاَ اٌّغغً ‪ٚ CX‬االِش ‪. LOOP‬‬
‫‪ٔ-‬ؼغ ف‪ ٟ‬اٌّغغً ‪ CX‬ػذد اٌذ‪ٚ‬ساد اٌالصِخ‬
‫‪-‬عغً ػٕ‪ٛ‬أب ػٓ ‪٠‬غبس االِش اال‪ٚ‬ي ف‪ ٟ‬اٌؾٍمخ‬
‫‪ ٟٕٙٔ-‬اٌؾٍمخ ف‪ ٟ‬االِش ‪ِ LOOP‬غ ػٕ‪ٛ‬اْ ثذا‪٠‬خ اٌؾٍمخ‪.‬‬
‫اٌّجٕ‪ ٝ‬اٌؼبَ‬

‫‪:‬ػٕ‪ٛ‬اْ اٌؾٍمخ‬
‫ا‪ٚ‬اِش اٌؾٍمخ‬
‫‪LOOP‬‬ ‫ػٕ‪ٛ‬اْ اٌؾٍمخ‬
‫ِضبي ‪:‬‬
‫اوزت ِمطغ ثشٔبِظ ‪٠‬م‪ َٛ‬ثزخض‪ ٓ٠‬اٌم‪ّ١‬خ ‪ 28H‬ف‪ ٟ‬اٌخال‪٠‬ب اٌّ‪ٛ‬ع‪ٛ‬دح ف‪ ٟ‬اٌّغبي‬
‫]‪[400H..407H‬‬
‫ػذد اٌخال‪٠‬ب اٌّطٍ‪ٛ‬ثخ ‪407H-400H+1=8‬‬
‫ارا‬
‫‪MOV SI,400H‬‬
‫‪MOV AL,28H‬‬
‫‪MOV CX,8‬‬
‫ثذا‪٠‬خ اٌؾٍمخ; ‪T1:MOV [SI],AL‬‬
‫‪INC SI‬‬
‫‪LOOP T1‬‬ ‫ٔ‪ٙ‬ب‪٠‬خاٌؾٍمخ;‬
‫ػٕذِب ‪٠‬ظً اٌّؼبٌظ اٌ‪ ٝ‬االِش ‪٠ LOOP‬م‪ َٛ‬ثزٕف‪١‬ز ػٍّ‪١‬ز‪ّ٘ٚ ٓ١‬ب‪:‬‬
‫‪٠-‬م‪ َٛ‬ثطشػ ‪ ِٓ 1‬اٌّغغً ‪CX‬‬
‫‪CX=CX-1‬‬
‫‪٠-‬م‪ َٛ‬ثمبسٔخ اٌم‪ّ١‬خ اٌغذ‪٠‬ذح ٌٍّغغً ‪ِ CX‬غ اٌظفش ارا وبٔذ رغب‪ ٞٚ‬طفشا ‪ٟٕٙ٠‬‬
‫اٌّؼبٌظ اٌؾٍمخ ‪٠ٚ‬خشط ‪ٕ٠ٚ‬فز االِش اٌز‪ ٍٟ٠ ٞ‬االِش ‪ٚ . LOOP‬ارا وبٔذ ل‪ّ١‬زٗ ال رغب‪ٞٚ‬‬
‫طفش رزُ ػٍّ‪١‬خ اٌمفض اٌ‪ ٝ‬ثذا‪٠‬خ اٌؾٍمخ‬

‫اٌطش‪٠‬مخ اٌضبٔ‪١‬خ‪:‬ثّغبػذح ‪ٚ CMP‬االِش ‪JMP‬‬


‫اٌّجٕ‪ ٝ‬اٌؼبَ‬
‫اػطبء ػذاد اٌؾٍمخ ل‪ّ١‬خ ثذائ‪١‬خ رّضً ػذد اٌذ‪ٚ‬ساد اٌّطٍ‪ٛ‬ثخ‬
‫‪:‬ػٕ‪ٛ‬اْ اٌؾٍمخ‬
‫ا‪ٚ‬اِش اٌؾٍمخ‬
‫‪ – 1‬ػذاد اٌؾٍمخ=ػذاد اٌؾٍمخ‬
‫‪, 0‬ػذاد اٌؾٍمخ ‪CMP‬‬
‫ػٕ‪ٛ‬اْ اٌؾٍمخ ‪JNZ‬‬

‫ِضبي‪ :‬اوزت ِمطغ ثشٔبِظ ‪٠‬ؼ‪١‬ف اٌم‪ّ١‬خ ‪ٌ 4‬ىً خٍ‪١‬خ ف‪ ٟ‬اٌّغبي ]‪[0..5‬‬
‫اٌؾً‪:‬‬
‫ٔأخز اٌّغغً ‪ BL‬وؼذاد ٌٍؾٍمخ‬
‫‪MOV SI,0‬‬
‫‪MOV BH,4‬‬
‫‪MOV BL,6‬‬
‫‪T1:ADD [SI],BH‬‬
‫‪INC SI‬‬
‫‪DEC BL‬‬
‫‪CMP BL,0‬‬
‫‪JNZ T1‬‬
‫انعًهُبث انًُطقُت‬

‫ف‪ٌ ٟ‬غخ االعّجٍ‪ٕ٘ ٟ‬بٌه ػٍّ‪١‬بد ؽغبث‪١‬خ ِضً (اٌغّغ ‪ ،‬اٌطشػ ‪ ،‬اٌؼشة ‪ ،‬اٌمغّخ)‬
‫‪ٕ٘ٚ‬بٌه اٌؼٍّ‪١‬بد إٌّطم‪١‬خ‬
‫اٌز‪ ٟ‬رزؼبًِ ِغ اٌجزبد ِضً (‪)OR , AND, NOT ,XOR ,TEST‬‬
‫إٌز‪١‬غخ ِٓ ٘زٖ اٌؼٍّ‪١‬بد رى‪ ْٛ‬اِب طذق ‪ٚ TRUE‬اٌز‪ٔ ٟ‬ؼجش ػٕ‪ٙ‬ب ف‪ ٟ‬اٌم‪ّ١‬خ ‪ . 1‬ا‪ٚ‬‬
‫رى‪ ْٛ‬إٌز‪١‬غخ ِٓ ٔ‪ٛ‬ع وزة ‪ٚ FALSE‬اٌز‪ٔ ٟ‬ؼجش ػٕ‪ٙ‬ب ثبٌم‪ّ١‬خ ‪.0‬‬

‫االِش اال‪ٚ‬ي‪OR :‬‬


‫ٕ٘ب ‪٠‬ىف‪ ٟ‬ششؽب ‪ٚ‬اؽذا اْ ‪٠‬زؾمك فٕؾظً ػٍ‪ٔ ٝ‬ز‪١‬غخ طذق‬
‫اٌ‪١‬ىُ عذ‪ٚ‬ي االِش ‪OR‬‬
‫‪A‬‬ ‫‪B‬‬ ‫إٌز‪١‬غخ‬
‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬

‫ِالؽظبد ‪A,B -:‬ػجبسح ػٓ ثزبد ‪.‬‬


‫‪٠ -‬أخز ٘زا االِش ِظذس ‪٘ٚ‬ذف ‪OR OP1 , OP2‬‬
‫‪٠-‬غت رؾ‪ ً٠ٛ‬ل‪ ُ١‬اٌّظذس ‪ٚ‬اٌ‪ٙ‬ذف اٌ‪ ٝ‬اٌّ‪١‬ضاْ اٌضٕبئ‪ ٟ‬ؽز‪ٔ ٝ‬زّىٓ ِٓ اٌزؼبًِ‬
‫ِغ اٌم‪ُ١‬‬

‫ِضبي‪ِ :‬ؼط‪ٝ‬‬
‫‪AL=2FH‬‬
‫‪BL=52H‬‬
‫عذ ل‪ّ١‬خ وً ِغغً ِٓ اٌّغغالد ثؼذ رٕف‪١‬ز اٌؼٍّ‪١‬خ إٌّطم‪١‬خ اٌزبٌ‪١‬خ‪:‬‬
‫‪OR AL , BL‬‬
‫اٌؾً‪:‬‬
‫ػٍ‪ٕ١‬ب اْ ٔؾ‪ٛ‬ي اٌ‪ٙ‬ذف ‪ٚ‬اٌّظذس اٌ‪ ٝ‬اٌّ‪١‬ضاْ اٌضٕبئ‪ٟ‬‬
‫‪AL=2FH=00101111‬‬
‫‪BL=52H=01010010‬‬
‫‪ 0‬اٌؼذد اال‪ٚ‬ي‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪ 0‬اٌؼذد اٌضبٔ‪ٟ‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬
‫إٌز‪١‬غخ‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬

‫اٌؾً ‪:‬‬
‫ثّب اْ اٌّغغً ‪ ٛ٘ BL‬اٌّظذس فبْ ل‪ّ١‬زٗ ال رزغ‪١‬ش ‪ٚ‬رجم‪BL=52H ٝ‬‬
‫اٌّغغً ‪ ٛ٘ AL‬اٌ‪ٙ‬ذف ارا اٌزأص‪١‬ش ‪٠‬زُ ػٍ‪ ٗ١‬ؽغت إٌز‪١‬غخ ‪AL=7FH‬‬

‫االِشاٌضبٔ‪AND :ٟ‬‬
‫ٕ٘ب ‪٠‬ىف‪ ٟ‬اْ ال ‪٠‬زؾمك ششؽب ‪ٚ‬اؽذا ؽز‪ٔ ٝ‬ؾظً ػٍ‪ٔ ٝ‬ز‪١‬غخ وزة‬
‫اٌ‪١‬ىُ عذ‪ٚ‬ي االِش ‪AND‬‬
‫‪A‬‬ ‫‪B‬‬ ‫إٌز‪١‬غخ‬
‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬
‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬

‫ِالؽظبد ‪A,B -:‬ػجبسح ػٓ ثزبد ‪.‬‬


‫‪٠ -‬أخز ٘زا االِش ِظذس ‪٘ٚ‬ذف ‪AND OP1 , OP2‬‬
‫‪٠-‬غت رؾ‪ ً٠ٛ‬ل‪ ُ١‬اٌّظذس ‪ٚ‬اٌ‪ٙ‬ذف اٌ‪ ٝ‬اٌّ‪١‬ضاْ اٌضٕبئ‪ ٟ‬ؽز‪ٔ ٝ‬زّىٓ ِٓ اٌؼًّ‬
‫ِغ اٌم‪ُ١‬‬

‫ِضبي‪ِ :‬ؼط‪ٝ‬‬
‫‪AL=27H‬‬
‫‪BL=56H‬‬
‫عذ ل‪ّ١‬خ وً ِغغً ِٓ اٌّغغالد ثؼذ رٕف‪١‬ز اٌؼٍّ‪١‬خ إٌّطم‪١‬خ اٌزبٌ‪١‬خ‪:‬‬
‫‪AND AL , BL‬‬
‫اٌؾً‪:‬‬
‫ػٍ‪ٕ١‬ب اْ ٔؾ‪ٛ‬ي اٌ‪ٙ‬ذف ‪ٚ‬اٌّظذس اٌ‪ ٝ‬اٌّ‪١‬ضاْ اٌضٕبئ‪ٟ‬‬
‫‪AL=27H=00100111‬‬
‫‪BL=56H=01010110‬‬
‫‪ 0‬اٌؼذد اال‪ٚ‬ي‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪ 0‬اٌؼذد اٌضبٔ‪ٟ‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬
‫إٌز‪١‬غخ‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬
‫اٌؾً ‪:‬‬
‫ثّب اْ اٌّغغً ‪ ٛ٘ BL‬اٌّظذس فبْ ل‪ّ١‬زٗ ال رزغ‪١‬ش ‪ٚ‬رجم‪BL=56H ٝ‬‬
‫اٌّغغً ‪ ٛ٘ AL‬اٌ‪ٙ‬ذف ارا اٌزأص‪١‬ش ‪٠‬زُ ػٍ‪ ٗ١‬ؽغت إٌز‪١‬غخ ‪AL=06H‬‬

‫االِش اٌضبٌش‪TEST:‬‬
‫ٕ٘ب ‪٠‬ىف‪ ٟ‬اْ ال ‪٠‬زؾمك ششؽب ‪ٚ‬اؽذا ؽز‪ٔ ٝ‬ؾظً ػٍ‪ٔ ٝ‬ز‪١‬غخ وزة‬
‫اٌ‪١‬ىُ عذ‪ٚ‬ي االِش ‪TEST‬‬
‫‪A‬‬ ‫‪B‬‬ ‫إٌز‪١‬غخ‬
‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬
‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬

‫ِالؽظبد ‪A,B -:‬ػجبسح ػٓ ثزبد ‪.‬‬


‫‪٠ -‬أخز ٘زا االِش ِظذس ‪٘ٚ‬ذف ‪TEST OP1 , OP2‬‬
‫‪٠-‬غت رؾ‪ ً٠ٛ‬ل‪ ُ١‬اٌّظذس ‪ٚ‬اٌ‪ٙ‬ذف اٌ‪ ٝ‬اٌّ‪١‬ضاْ اٌضٕبئ‪ ٟ‬ؽز‪ٔ ٝ‬زّىٓ ِٓ اٌؼًّ‬
‫ِغ اٌم‪ُ١‬‬
‫‪٠‬ؼًّ ٘زا االِش ِضً االِش ‪ٌٚ AND‬ىٓ ِغ فشق ثغ‪١‬ؾ ‪ ٛ٘ٚ‬أٗ ال ‪٠‬إصش ػٍ‪ٝ‬‬
‫اٌ‪ٙ‬ذف ‪ٚ‬ال ػٍ‪ ٝ‬اٌّظذس ‪ٚ‬أّب ‪٠‬إصش فمؾ ػٍ‪ ٝ‬اٌشا‪٠‬بد ‪٠ٚ‬م‪ َٛ‬ثزغ‪١١‬ش ثؼغ اٌشا‪٠‬بد‬
‫ِضبي‪ِ :‬ؼط‪ٝ‬‬
‫‪AL=27H‬‬
‫‪BL=56H‬‬
‫عذ ل‪ّ١‬خ وً ِغغً ِٓ اٌّغغالد ثؼذ رٕف‪١‬ز اٌؼٍّ‪١‬خ إٌّطم‪١‬خ اٌزبٌ‪١‬خ‪:‬‬
‫‪TEST AL , BL‬‬
‫اٌؾً‪:‬‬
‫ػٍ‪ٕ١‬ب اْ ٔؾ‪ٛ‬ي اٌ‪ٙ‬ذف ‪ٚ‬اٌّظذس اٌ‪ ٝ‬اٌّ‪١‬ضاْ اٌضٕبئ‪ٟ‬‬
‫‪AL=27H=00100111‬‬
‫‪BL=56H=01010110‬‬
‫‪ 0‬اٌؼذد اال‪ٚ‬ي‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪ 0‬اٌؼذد اٌضبٔ‪ٟ‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬
‫إٌز‪١‬غخ‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬

‫اٌؾً ‪:‬‬
‫ثّب اْ اٌّغغً ‪ ٛ٘ BL‬اٌّظذس فبْ ل‪ّ١‬زٗ ال رزغ‪١‬ش ‪ٚ‬رجم‪BL=56H ٝ‬‬
‫اٌّغغً ‪ ٛ٘ AL‬اٌ‪ٙ‬ذف ‪ٌٚ‬ىٓ االِش ‪ TEST‬ال ‪٠‬إصش ػٍ‪ ٝ‬اٌ‪ٙ‬ذف اٌّغغً ‪٠‬ؾبفع ػٍ‪ٝ‬‬
‫ل‪ّ١‬زٗ اٌغبثمخ ‪AL=27H‬‬
‫ارا ِب ٘‪ ٟ‬اٌفبئذح ِٕٗ؟‬
‫اٌغ‪ٛ‬اة ‪ :‬ف‪ ٟ‬ثؼغ االؽ‪١‬بْ ٔؾزبط اٌ‪ ٝ‬فؾض ثذ ِؼ‪ٕ١‬خ د‪ ْٚ‬اْ ٔإصش ػٍ‪ ٝ‬اٌم‪ّ١‬خ‬
‫االطٍ‪١‬خ‪ .‬فٕغزخذَ ٘زا االِش‬
‫ِضبي‪ :‬اوزت ِمطغ ثشٔبِظ ‪٠‬فؾض ارا وبْ اٌّغغً ‪٠ DL‬ؾز‪ ٞٛ‬ػٍ‪ ٝ‬ل‪ّ١‬خ فشد‪٠‬خ ارا وبْ‬
‫‪٠‬ؾز‪ ٞٛ‬ػٍ‪ ٝ‬ل‪ّ١‬خ فشد‪٠‬خ ‪٠‬ؼغ اٌم‪ّ١‬خ ‪ 6‬اٌّغغً ‪ٚ AL‬ارا وبٔذ اٌم‪ّ١‬خ ص‪ٚ‬ع‪١‬خ ‪٠‬ؼغ ف‪ٟ‬‬
‫اٌّغغً ‪ AL‬اٌم‪ّ١‬خ ‪12H‬‬
‫اٌؾً‪٠ :‬ؼزجش اٌؼذد فشد‪٠‬ب ارا وبٔذ اٌجذ اال‪ ٌٝٚ‬ل‪ّ١‬ز‪ٙ‬ب ‪ٚ 1‬اٌغجت ٘‪ ٛ‬اْ ل‪ ُ١‬عّ‪١‬غ اٌجزبد‬
‫ف‪ ٟ‬أ‪ ٞ‬ػذد ص‪ٚ‬ع‪١‬خ ِب ػذا اٌجذ اال‪ ٌٝٚ‬اٌز‪ ٟ‬ل‪ّ١‬ز‪ٙ‬ب ‪ . 1‬ارا ٔفؾض اٌجذ اال‪ٌٝٚ‬‬
‫اٌشِض‪٠ B‬ذي ػٍ‪ ٝ‬ل‪ّ١‬خ صٕبئ‪١‬خ ; ‪TEST AL,00000001B‬‬
‫‪JZ T1‬‬
‫‪MOV AL,6‬‬
‫‪JMP FINISH‬‬
‫‪T1:MOV AL,12H‬‬
‫‪FINISH:‬‬

‫االِشاٌشاثغ‪XOR :‬‬
‫ٕ٘ب ارا وبٔذ اٌجزبد ِخزٍفخ إٌز‪١‬غخ ‪ٚ 1‬ارا وبٔذ ِزشبث‪ٙ‬خ إٌز‪١‬غخ ‪0‬‬
‫اٌ‪١‬ىُ عذ‪ٚ‬ي االِش ‪XOR‬‬
‫‪A‬‬ ‫‪B‬‬ ‫إٌز‪١‬غخ‬
‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬

‫ِالؽظبد ‪A,B -:‬ػجبسح ػٓ ثزبد ‪.‬‬


‫‪٠ -‬أخز ٘زا االِش ِظذس ‪٘ٚ‬ذف ‪AND OP1 , OP2‬‬
‫‪٠-‬غت رؾ‪ ً٠ٛ‬ل‪ ُ١‬اٌّظذس ‪ٚ‬اٌ‪ٙ‬ذف اٌ‪ ٝ‬اٌّ‪١‬ضاْ اٌضٕبئ‪ ٟ‬ؽز‪ٔ ٝ‬زّىٓ ِٓ اٌؼًّ‬
‫ِغ اٌم‪ُ١‬‬

‫ِضبي‪ِ :‬ؼط‪ٝ‬‬
‫‪AL=A7H‬‬
‫‪BL=76H‬‬
‫عذ ل‪ّ١‬خ وً ِغغً ِٓ اٌّغغالد ثؼذ رٕف‪١‬ز اٌؼٍّ‪١‬خ إٌّطم‪١‬خ اٌزبٌ‪١‬خ‪:‬‬
‫‪XOR AL , BL‬‬
‫اٌؾً‪:‬‬
‫ػٍ‪ٕ١‬ب اْ ٔؾ‪ٛ‬ي اٌ‪ٙ‬ذف ‪ٚ‬اٌّظذس اٌ‪ ٝ‬اٌّ‪١‬ضاْ اٌضٕبئ‪ٟ‬‬
‫‪AL=A7H=10100111‬‬
‫‪BL=76H=01110110‬‬
‫‪ 1‬اٌؼذد اال‪ٚ‬ي‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪ 0‬اٌؼذد اٌضبٔ‪ٟ‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬
‫إٌز‪١‬غخ‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬

‫اٌؾً ‪:‬‬
‫ثّب اْ اٌّغغً ‪ ٛ٘ BL‬اٌّظذس فبْ ل‪ّ١‬زٗ ال رزغ‪١‬ش ‪ٚ‬رجم‪BL=76H ٝ‬‬
‫اٌّغغً ‪ ٛ٘ AL‬اٌ‪ٙ‬ذف ارا اٌزأص‪١‬ش ‪٠‬زُ ػٍ‪ ٗ١‬ؽغت إٌز‪١‬غخ ‪AL=D1H‬‬

‫االِشاٌخبِظ‪XOR :‬‬
‫ٕ٘ب ‪٠‬زُ ػىظ اٌجزبد اٌجذ اٌز‪ ٟ‬ل‪ّ١‬ز‪ٙ‬ب ‪ 1‬رأخز اٌم‪ّ١‬خ ‪ٚ 0‬اٌجذ اٌز‪ ٟ‬ل‪ّ١‬ز‪ٙ‬ب ‪ 0‬رأخز اٌم‪ّ١‬خ‬
‫‪1‬‬
‫اٌ‪١‬ىُ عذ‪ٚ‬ي االِش ‪NOT‬‬
‫‪A‬‬ ‫إٌز‪١‬غخ‬
‫‪0‬‬ ‫‪0‬‬
‫‪1‬‬ ‫‪0‬‬

‫ِالؽظبد ‪A -:‬ػجبسح ػٓ ثذ ‪.‬‬


‫‪٠ -‬أخز ٘زا االِش ‪ٚ OPERAND‬اؽذ فمؾ ‪NOT OP1‬‬
‫‪٠-‬غت رؾ‪ ً٠ٛ‬ل‪ّ١‬زٗ اٌ‪ ٝ‬اٌّ‪١‬ضاْ اٌضٕبئ‪ ٟ‬ؽز‪ٔ ٝ‬زّىٓ ِٓ اٌزؼبًِ ِؼٗ‬

‫ِضبي‪ِ :‬ؼط‪ٝ‬‬
‫‪AL=A7H‬‬
‫عذ ل‪ّ١‬خ وً اٌّغغً ِٓ ثؼذ رٕف‪١‬ز اٌؼٍّ‪١‬خ إٌّطم‪١‬خ اٌزبٌ‪١‬خ‪:‬‬
‫‪NOT AL‬‬
‫اٌؾً‪:‬‬
‫ػٍ‪ٕ١‬ب اْ ٔؾ‪ٛ‬ي اٌ‪ ٝ‬اٌّ‪١‬ضاْ اٌضٕبئ‪ٟ‬‬
‫‪AL=A7H=10100111‬‬
‫‪ 1‬اٌؼذد اال‪ٚ‬ي‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬
‫إٌز‪١‬غخ‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬

‫اٌؾً ‪:‬‬
‫اٌّغغً ‪ ٛ٘ AL‬اٌز‪٠ ٞ‬زأص‪١‬ش ؽغت إٌز‪١‬غخ ‪AL=58H‬‬
‫اٌ‪ ٝ‬اٌٍمبء ف‪ ٟ‬اٌذسط اٌمبدَ‬

‫انًخغُزاث‬

‫اٌّزغ‪١‬ش‪ ٛ٘ :‬ػجبسح ػٓ ِىبْ ف‪ ٟ‬اٌزاوشح ٌٗ ػٕ‪ٛ‬اْ ‪ٚ‬ل‪ّ١‬خ ‪ٚ‬ؽغُ‪ .‬اٌّمظ‪ٛ‬د ف‪ ٟ‬اٌؾغُ‬


‫ػذد اٌخال‪٠‬ب اٌز‪٠ ٟ‬ؾغض٘ب اٌّزغ‪١‬ش‬
‫رؼشف اٌّزغ‪١‬شاد ف‪ِ ٟ‬مطغ اٌج‪١‬بٔبد ا‪ ٚ‬ف‪ِ ٟ‬مطغ اٌى‪ٛ‬د (اال‪ٚ‬اِش) ‪ٌٚ‬ىٓ ِٓ اٌّفؼً اْ‬
‫رى‪ ْٛ‬ف‪ِ ٟ‬مطغ اٌج‪١‬بٔبد اال ارا اسدٔب دِظ ِمطغ اٌج‪١‬بٔبد ِغ ِمطغ اٌى‪ٛ‬د ٌزى‪ِ ٓ٠ٛ‬مطغ‬
‫‪ٚ‬اؽذ ثذي ِمطؼ‪ٓ١‬‬
‫ؽغض خال‪٠‬ب ف‪ ٟ‬اٌزاوشح‬
‫اٌّزغ‪١‬ش ‪٠‬ؾغض خال‪٠‬ب ‪ٌٚ‬ىٓ و‪١‬ف ٔؾذد ػذ اٌخال‪٠‬ب اٌّطٍ‪ٛ‬ثخ‪ .‬اٌ‪١‬ىُ ٘زا اٌغذ‪ٚ‬ي اٌز‪٠ ٞ‬ج‪ٓ١‬‬
‫ػذد اٌخال‪٠‬ب اٌّطٍ‪ٛ‬ثخ ٌٍؾغض‬
‫االخزظبس‬ ‫ػذد اٌخال‪٠‬ب(ػذد اٌجب‪٠‬ذ) اٌّؼٕ‪ٝ‬‬
‫‪db‬‬ ‫‪Define byte‬‬ ‫‪1‬‬
‫‪dw‬‬ ‫‪Define word‬‬ ‫‪2‬‬
‫‪dd‬‬ ‫‪Define double‬‬ ‫‪4‬‬
‫‪word‬‬
‫‪dq‬‬ ‫‪Define quad‬‬ ‫‪8‬‬
‫‪word‬‬
‫‪dt Define ten bytes‬‬ ‫‪10‬‬

‫يالحظت‪ :‬ػٕذِب ٔش‪٠‬ذ اْ ٔؾغض اِبوٓ ف‪ ٟ‬اٌزاوشح ؽز‪ٔ ٝ‬ؼغ ث‪ٙ‬ب ل‪ِ ُ١‬ؼ‪ٕ١‬خ خالي رٕف‪١‬ز‬
‫اٌجشٔبِظ‪ّ٠ .‬ىٓ اْ ٔؾغض ثذ‪ ْٚ‬اْ ٔغغً اعُ ِزغ‪١‬ش ‪ٌٚ‬ىٓ ٕ٘بٌه طؼ‪ٛ‬ثخ عز‪ٛ‬اع‪ٕٙ‬ب‬
‫خالي اٌجشٔبِظ ػٕذِب ٔؾب‪ٚ‬ي اْ ٔز‪ٛ‬عٗ اٌ‪٘ ٝ‬زٖ االِبوٓ‪ .‬الٔٗ ػٍ‪ٕ١‬ب اْ ٔؾغت اٌؼٕ‪ٛ‬اْ‬
‫ٌ‪ٛ‬ؽذٔب ث‪ّٕ١‬ب ػٕذِب ٔؼط‪ ٟ‬االِبوٓ اٌّؾغ‪ٛ‬صح اعُ ِؼ‪ ٓ١‬ف‪ٙ‬زا ‪٠‬غ‪ ًٙ‬ػٍّ‪١‬خ اٌز‪ٛ‬عٗ اٌ‪ٙ١‬ب‬
‫الْ اٌّؼبٌظ ‪٠‬م‪ َٛ‬ثؾغبثخ اٌؼٕ‪ٛ‬اْ ثذال ِٕب‬

‫يالحظت‪ّ٠ :‬ىٓ اػطبء اٌّزغ‪١‬ش ل‪ّ١‬خ أ‪١ٌٚ‬خ ‪ّ٠ٚ‬ىٓ ػذَ اػطبء اٌّزغ‪١‬ش ل‪ّ١‬خ ا‪١ٌٚ‬خ‪ .‬ارا‬
‫اسدٔب اْ ال ٔؼط‪ ٟ‬اٌّزغ‪١‬ش ل‪ّ١‬خ أ‪١ٌٚ‬خ ٔغغً ِىبْ اٌم‪ّ١‬خ اٌشِض ? (ػالِخ عإاي)‬
‫اِضٍخ‪:‬‬
‫ط‪ٛ‬سح اٌىزبثخ‬ ‫اٌّؼٕ‪ٝ‬‬
‫‪X db 4‬‬ ‫ٕ٘ب ٔؼٍٓ ػٓ ِزغ‪١‬ش ثبعُ ‪ٛٔ ِٓ ٛ٘ٚ X‬ع ثب‪٠‬ذ أ‪ٞ‬‬
‫أٗ ؽغض خٍ‪١‬خ ‪ٚ‬اؽذح ‪ٚ‬ل‪ّ١‬زٗ اال‪١ٌٚ‬خ ‪4‬‬
‫? ‪Y dw‬‬ ‫ٕ٘ب ٔؼٍٓ ػٓ ِزغ‪١‬ش ثبعُ ‪ٛٔ ِٓ Y‬ع ‪ٌٚ word‬ىٓ‬
‫ثذ‪ ْٚ‬ل‪ّ١‬خ أ‪١ٌٚ‬خ‪.‬‬
‫‪Db 5‬‬ ‫ٕ٘ب ٔؼٍٓ ػٓ ؽغض خٍ‪١‬خ ثذ‪ ْٚ‬ػٕ‪ٛ‬اْ ‪ٔٚ‬ؼغ ث‪ٙ‬ب‬
‫اٌم‪ّ١‬خ ‪5‬‬

‫‪X db 2,3,4,5,1‬‬

‫ٕ٘ب رُ رؼش‪٠‬ف ِظف‪ٛ‬فخ رزى‪ ِٓ ْٛ‬خّغخ ؽذ‪ٚ‬د ‪ٚ‬وً ؽذ ػجبسح ػٓ ثب‪٠‬ذ أ‪ ٞ‬اْ ٘زٖ‬
‫اٌّظف‪ٛ‬فخ لذ ؽغضد ‪ 5‬خال‪٠‬ب‪ .‬الؽع أٗ ‪٠‬غت اْ ٔفظً ث‪ ٓ١‬اٌؾذ‪ٚ‬د ثّغبػذح اٌفبطٍخ‬

‫‪X1 dw 2,3,4,5,1‬‬

‫ٕ٘ب رُ رؼش‪٠‬ف ِظف‪ٛ‬فخ ثبعُ ‪ x1‬رزى‪ ِٓ ْٛ‬خّغخ ؽذ‪ٚ‬د ‪ٚ‬وً ؽذ ِٓ ٔ‪ٛ‬ع ‪ word‬أ‪ ٞ‬اْ‬
‫اٌّظف‪ٛ‬فخ رؾغض ‪ 10‬خال‪٠‬ب‪.‬‬
‫ِالؽظخ‪ :‬ػذد اٌخال‪٠‬ب اٌز‪ ٟ‬رؾغض٘ب ِظف‪ٛ‬فخ ٘‪ ٛ‬ثمذس ػذد اٌؾذ‪ٚ‬د ػشة ِب ‪٠‬ؾغضٖ وً‬
‫ؽذ‬
‫‪Dt 1234‬‬

‫انزيىس وانُصىص‬

‫ٔؼشف ِزغ‪١‬شاد ِٓ ٔ‪ٛ‬ع سِض ثبٌشىً اٌزبٌ‪:ٟ‬‬


‫'‪X db 'A‬‬
‫ٕ٘ب رُ رؼش‪٠‬ف ِزغ‪١‬ش ثبعُ ‪ٛٔ ِٓ ٛ٘ٚ X‬ع سِض ‪٠ٚ‬ؾغض خٍ‪١‬خ ‪ٚ‬اؽذح ‪ٚ‬ل‪ّ١‬زٗ اال‪١ٌٚ‬خ ‪A‬‬
‫‪ٌٚ‬ىٓ رزوش اْ اٌّؼبٌظ ‪٠‬خضْ اعى‪ ٟ‬و‪ٛ‬د ٌٍشِض ‪ 65 ٛ٘ٚ‬ػشش‪ٞ‬‬
‫' ‪X db 'my name is afeef‬‬
‫ٕ٘ب رُ رؼش‪٠‬ف ِزغ‪١‬ش ِٓ ٔ‪ٛ‬ع ٔض ثبعُ ‪ٚ x‬ل‪ّ١‬زٗ اٌغٍّخ اٌّىز‪ٛ‬ثٗ ف‪ ٟ‬داخً اٌشطبئش‬
‫إٌغخ ؽجك االطً ‪)duplicate( dup‬‬
‫ارا اسدٔب ِضال ؽغض ‪ 6‬خال‪٠‬ب ‪ٚٚ‬ػغ اٌم‪ّ١‬خ ‪ 20‬ف‪ ٟ‬وً خٍ‪١‬خ‬
‫ٕ٘بٌه ػذح ؽشق ٌٍؾً ٔزوش ِٕ‪ٙ‬ب‬
‫‪X db 20,20,20,20,20,20‬‬
‫اٌطش‪٠‬مخ اٌضبٔ‪١‬خ اعزؼّبي ‪dup‬‬
‫)‪X db 6 dup (20‬‬
‫الؽع اٌم‪ّ١‬خ اٌز‪ ٟ‬ػٓ ‪٠‬غبس اي ‪ dup‬رؾذد ػذد اٌؾذ‪ٚ‬د اٌّطٍ‪ٛ‬ثخ ‪ٚ‬اٌم‪ّ١‬خ اٌز‪ ٟ‬ث‪ٓ١‬‬
‫االل‪ٛ‬اط رؾذد اٌم‪ّ١‬خ اٌجذائ‪١‬خ ٌىً ؽذ ‪.‬‬
‫ِالؽظخ ِ‪ّٙ‬خ‪ّ٠ :‬ىٓ رغغ‪ ً١‬و‪ٛ‬د اعى‪ ٟ‬ثذال ِٓ اٌشِ‪ٛ‬ص‪ِ .‬ضبي‬
‫'‪X db 'AB‬‬
‫و‪ٛ‬د اعى‪ٌٍ ٟ‬شِض ‪ 65 ٛ٘ A‬ػشش‪ٌٍٚ ٞ‬شِض ‪ 66 ٛ٘ B‬ػشش‪ ٞ‬ارا‬
‫‪X db 65,66‬‬
‫الؽع ػٕذِب ٔغغً و‪ٛ‬د اعى‪ٌٍ ٟ‬شِض ال ٔؼغ اٌشطبئش‬
‫ِضبي اخش‬
‫'‪Y db '123‬‬
‫‪ّ٠‬ىٓ رغغ‪ ً١‬و‪ٛ‬د اعى‪ٌٍ ٟ‬شِض ‪ٚ 1‬اٌشِض ‪ٚ 2‬اٌشِض ‪3‬‬
‫‪Y db 31H, 32H, 33H‬‬
‫ِٓ االش‪١‬بء اٌّش‪٠‬ؾخ عذا ف‪ٌ ٟ‬غخ اٌزغّ‪١‬غ أٗ ‪ّ٠‬ىٓ رؼش‪٠‬ف ِزغ‪١‬ش ‪٠‬ؾز‪ ٞٛ‬ػٍ‪ ٝ‬سِ‪ٛ‬ص‬
‫‪ٔٚ‬ظ‪ٛ‬ص ‪ٚ‬ل‪ ُ١‬ػذد‪٠‬خ‬
‫ِضبي‪:‬‬
‫)‪X db 1, 2, 3,'AB','C', 4 dup (5‬‬
‫ٕ٘ب رُ رؼش‪٠‬ف ِزغ‪١‬ش ثبعُ ‪٠ٚ X‬ؾغض ٘زا اٌّزغ‪١‬ش ‪ 10‬خال‪٠‬ب ‪ّ٠ .‬ىٓ وزبثخ اٌّظف‪ٛ‬فخ‬
‫ثشىً اخش‬
‫‪X db 1,2,3,65,66,67,5,5,5,5‬‬

‫يالحظت يهًت خذا‪:‬‬

‫اٌؾذ اال‪ٚ‬ي ف‪ ٟ‬اٌّظف‪ٛ‬فخ ا‪ ٚ‬إٌض ا‪ ِٓ ٚ‬ؽذ‪ٚ‬د اٌّزغ‪١‬ش سلّٗ اٌزغٍغٍ‪ ٟ‬طفش‬


‫يثبل‪ :‬ارا اسدٔب اْ ٔغّغ اٌؾذ اٌشاثغ ف‪ ٟ‬اٌّظف‪ٛ‬فخ اٌغبثمخ ٌٍّغغً ‪ٔ AL‬غغً اال‪ٚ‬اِش‬
‫اٌزبٌ‪١‬خ‬
‫‪Mov si,3‬‬
‫]‪Add AL,x[si‬‬
‫ا‪ّ٠ ٚ‬ىٓ وزبثخ اٌشلُ اٌزغٍغٍ‪ِ ٟ‬جبششح‬
‫]‪Add AL,x[3‬‬
‫رغغ‪ ً١‬اٌّالؽظبد ف‪ٌ ٟ‬غخ اٌزغّ‪١‬غ‬
‫رغزخذَ اٌّالؽظبد ٌز‪ٛ‬ػ‪١‬ؼ اٌجشٔبِظ ٌٍمبسئ ارا اسدٔب اْ ٔغغً ِالؽظبد ٔغزخذَ‬
‫اٌفبطٍخ إٌّم‪ٛ‬ؽخ( ; ) وً اٌىٍّبد اٌز‪ ٟ‬رمغ ػٓ ‪ ٓ١ّ٠‬اٌفبطٍخ إٌّم‪ٛ‬ؽخ ال ‪ٕ٠‬فز٘ب‬
‫اٌّزشعُ‬

‫يثبل‪:‬‬
‫‪Mov BL,6 ; put 6 in BL‬‬

‫كخببت انبزايح‬

‫اوزت ثشٔبِغب ‪ٕ٠‬فز ‪٠ . Y= 2*AL-5‬ؼشة اٌّغغً ‪ al‬ف‪ ٟ‬اٌم‪ّ١‬خ ‪٠ٚ 2‬خضْ إٌز‪١‬غخ‬
‫ف‪ ٟ‬اٌّزغ‪١‬ش ‪y‬‬
‫اٌؾً‪:‬‬
‫اٌّزغ‪١‬ش ‪٠ Y‬غت اْ ‪٠‬ى‪ٛٔ ِٓ ْٛ‬ع ‪ word‬أ‪ ٞ‬اْ ‪٠‬ؾغض خٍ‪١‬ز‪ٔ ٓ١‬ؾظً ػٍ‪ٔ ٝ‬ز‪١‬غخ اوجش‬
‫ِٓ ثب‪٠‬ذ ‪ٚ‬اؽذ ثغجت ػٍّ‪١‬خ اٌؼشة‬
‫إٌز‪١‬غخ ‪ّ٠‬ىٓ اْ رى‪ ْٛ‬عبٌجخ الٕٔب ال ٔؼشف ِبرا ‪ٛ٠‬عذ ف‪ ٟ‬اٌّغغً ‪ّ٠ al‬ىٓ ِضال اْ‬
‫رى‪ ْٛ‬ل‪ّ١‬خ عبٌجخ ػٕذِب ٔغزخذَ اِش اٌؼشة ‪٠‬غت اْ ٔغزخذَ اِش اٌؼشة اٌّزخظض‬
‫ف‪ ٟ‬االػذاد اٌّ‪ٛ‬ع‪ٙ‬خ‬
‫اٌؾً‪:‬‬
‫‪Sseg segment stack‬‬
‫)‪Db 10 dup (0‬‬
‫‪Sseg ends‬‬
‫‪Dseg segment‬‬
‫‪Y dw 0‬‬
‫‪Dseg ends‬‬
‫‪Cseg segment‬‬
‫‪Assume cs:cseg,ds:dseg,ss:sseg‬‬
‫‪Start:mov ax,dseg‬‬
‫‪Mov ds,ax‬‬
‫‪Mov BL,2‬‬
‫‪Imul BL‬‬
‫‪Mov Y,AX‬‬
‫‪Sub Y,5‬‬
‫‪Mov ah,4ch‬‬
‫‪Int 21h‬‬
‫‪Cseg ends‬‬
‫‪End start‬‬

‫اٌجشٔبِظ اٌغبثك‬
‫‪Sseg segment stack‬‬
‫)‪Db 10H dup (0‬‬
‫‪Sseg ends‬‬

‫ٕ٘ب رُ رؼش‪٠‬ف ِمطغ اٌّىذط ‪ stack‬ع‪ٛ‬ف ٔزطشق اٌ‪ ٗ١‬ف‪ ٟ‬اٌذس‪ٚ‬ط اٌمبدِةخ ػٕة‪ٛ‬اْ ثذا‪٠‬ةخ‬
‫اٌّىذط ‪ ٟ٘ٚ sseg‬وٍّخ اخز‪١‬بس‪٠‬خ أ‪ّ٠ ٞ‬ىٓ اخز‪١‬بس وٍّخ غ‪١‬ش٘ةب ‪ٌٚ‬ىةٓ ‪٠‬غةت اْ ال رىة‪ْٛ‬‬
‫وٍّخ ِؾف‪ٛ‬ظخ أ‪ ِٓ ٞ‬وٍّةبد ٌغةخ االعةّجٍ‪٘ Segment stack .ٟ‬ةزٖ اعجبس‪٠‬ةخ ‪٘ٚ‬ة‪ ٟ‬رةذي‬
‫ػٍ‪ ٝ‬اْ ٘زا ِمطغ اٌّىذط‬
‫)‪Db 10H dup (0‬‬
‫ٕ٘ب ٔؼٍٓ اْ اٌّىذط ؽغض ‪ 10‬خال‪٠‬ب ‪ٚ‬ف‪ ٟ‬وً خٍ‪١‬خ اٌم‪ّ١‬خ طفش‬
‫‪Sseg ends‬‬
‫ٕ٘ب رُ االػالْ ػٓ ٔ‪ٙ‬ب‪٠‬خ رؼش‪٠‬ف ِٕطمخ اٌّىذط‬
‫‪Dseg segment‬‬
‫‪Y dw 0‬‬
‫‪Dseg ends‬‬
‫ٕ٘ةةب رةةُ االػةةالْ ػةةٓ رؼش‪٠‬ةةف ِمطةةغ اٌج‪١‬بٔةةبد ‪ٚ‬لةةذ لّٕةةب ثزؼش‪٠‬ةةف ِزغ‪١‬ةةش ِةةٓ ٔةة‪ٛ‬ع ‪word‬‬
‫‪ٚٚ‬ػؼٕب ثٗ اٌم‪ّ١‬خ اال‪١ٌٚ‬خ طفش‬
‫‪Cseg segment‬‬
‫‪Assume cs:cseg,ds:dseg,ss:sseg‬‬

‫ٕ٘ب رُ االػالْ ػٓ ثذا‪٠‬خ ِمطغ اٌى‪ٛ‬د ‪ٚ‬االػالْ ػٓ عغالد اٌّمبؽغ ‪ٚ‬ػةٓ اٌؼٕةب‪ ٓ٠ٚ‬اٌزة‪ٟ‬‬
‫ع‪ٛ‬ف رأخز٘ب خالي اٌجشٔبِظ‬
‫‪Start:mov ax,dseg‬‬
‫‪Mov ds,ax‬‬
‫ٕ٘ب رُ ‪ٚ‬ػغ ػٕ‪ٛ‬اْ ثذا‪٠‬خ اٌج‪١‬بٔبد ف‪ِ ٟ‬غغً اٌّمطغ ‪. ds‬‬
‫ِالؽظخ ال ‪ّ٠‬ىٓ رغغ‪ ً١‬االِش ثبٌشىً اٌزبٌ‪mov ds,dseg :ٟ‬‬
‫‪٠‬غت االعزؼبٔخ ثّغغً وبًِ ِضً ‪bx,cx,dx,si,di,ax‬‬

‫‪Mov BL,2‬‬
‫‪Imul BL‬‬
‫‪Mov Y,AX‬‬
‫‪Sub Y,5‬‬
‫٘زٖ ٘‪ ٟ‬اال‪ٚ‬اِش اٌز‪ ٟ‬رٕفز اٌّ‪ّٙ‬خ اٌغبثمخ‬

‫‪Mov ah,4ch‬‬
‫‪Int 21h‬‬
‫٘زٖ رٕ‪ ٟٙ‬اٌجشٔبِظ ‪ٚ‬رشعغ اٌغ‪١‬طشح ‪ٚ‬اٌزؾىُ ٌٕظبَ اٌزشغ‪ً١‬‬

‫‪Cseg ends‬‬

‫ٕ٘ب ٔؼٍٓ ػٓ أز‪ٙ‬بء ِمطغ اٌى‪ٛ‬د (اال‪ٚ‬اِش)‬

‫‪End start‬‬
‫اغالق اٌجشٔبِظ الؽع إٔب عغٍٕب ف‪ ٟ‬ثذا‪٠‬خ اٌجشٔبِظ ‪start:‬‬

‫‪ٚ‬ف‪ ٟ‬إٌ‪ٙ‬ب‪٠‬خ‬
‫‪End start‬‬

‫ِالؽظخ ٕ٘بٌه ؽش‪٠‬مخ اخش‪ٌ ٜ‬ىزبثخ اٌجشاِظ‬


‫اوايز انذوراٌ‬

‫ٕ٘بٌه ػذح ا‪ٚ‬اِش ٌٍذ‪ٚ‬ساْ ف‪ٌ ٟ‬غخ االعّجٍ‪ٟ‬‬


‫‪.1‬د‪ٚ‬ساْ ٔؾ‪ ٛ‬اٌ‪ :ٓ١ّ١‬ف‪ٕٙ‬ب رزؾشن اٌجزبد ِٓ اٌ‪١‬غبس اٌ‪ ٝ‬ع‪ٙ‬خ اٌ‪ ٓ١ّ١‬ا‪ ٞ‬اْ اٌجذ اال‪ٌٝٚ‬‬
‫رٕزمً ِىبْ اٌجذ االخ‪١‬شح ‪ٚ‬االخ‪١‬شح اٌ‪ ٝ‬لجً االخ‪١‬شح ‪٘ٚ‬ىزا‪ .‬ط‪ٛ‬سح ِٓ اٌجذ اال‪ ٌٝٚ‬اٌز‪ٟ‬‬
‫أزمٍذ اٌ‪ ٝ‬اٌجذ االخ‪١‬شح رذخً اٌ‪ ٝ‬سا‪٠‬خ ‪CF‬‬
‫‪ROR OP,1‬‬

‫‪DATA‬‬ ‫‪CF‬‬
‫ِضبي‪:‬‬
‫‪MOV AL,3DH‬‬
‫‪ROR AL,1‬‬

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

‫‪AL‬‬ ‫‪CF‬‬
‫‪1 0 0 1 1 1 1 0‬‬ ‫‪1‬‬

‫ِالؽظخ‪:‬اٌّظذس ٕ٘ب ػجبسح ػٓ ل‪ّ١‬خ ػذد‪٠‬خ ‪٠ٚ‬غت اْ رى‪ٚ 1 ْٛ‬فمؾ ‪ٚ‬اؽذ ‪ٚ‬ف‪ ٟ‬ؽبٌخ ارا‬
‫اسدٔب رذ‪٠ٚ‬ش اوضش ِٓ ثذ ‪ٚ‬اؽذح ف‪ٕٙ‬بٌه ؽالْ‬
‫اٌؾً اال‪ٚ‬ي اْ ٔغغً االِش ثمذس ػذد ِشاد اٌجزبد اٌّشاد رذ‪٠ٚ‬ش٘ب ِضال‪:‬‬

‫‪MOV AL,23H; AL=00100011‬‬


‫‪ROL AL,1‬‬
‫‪ROL AL,1‬‬
‫‪ROL AL,1‬‬
‫ف‪ٕٙ‬ب رُ رذ‪٠ٚ‬ش صالس ثزبد ‪.‬‬
‫‪AL‬‬ ‫‪CF‬‬
‫‪0 1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬

‫ؽً اخش‪ٔ :‬ؼغ ف‪ CL ٟ‬ػذد ِشاد اٌذ‪ٚ‬ساْ صّب ٔغغً االِش‬


‫ِضبي‪:‬‬
‫‪MOV AL,26H‬‬
‫‪MOV CL,3‬‬
‫‪ROR AL,CL‬‬

‫الؽع أٗ اٌجذ اٌز‪ ٟ‬رزؾشن رخشط ِٓ اي ‪ DATA‬رؼغ ط‪ٛ‬سح ِٓ ل‪ّ١‬ز‪ٙ‬ب ف‪ ٟ‬اٌشا‪٠‬خ‬
‫‪ٚ CF‬رٕزمً اٌجذ اٌ‪ ٝ‬اخش اي ‪ٚ DATA‬اْ اٌم‪ّ١‬خ اٌّؾف‪ٛ‬ظخ ف‪ ٟ‬اٌشا‪٠‬خ ‪ ٟ٘ CF‬ل‪ّ١‬خ‬
‫اخش ثذ خشعذ ِٓ اي ‪DATA‬‬
‫حًزٍَ‪ :‬اوزت ِمطغ ثشٔبِظ ‪٠‬ؾفع ف‪ ٟ‬اٌّغغً ‪ BL‬ػذد اٌجزبد اٌز‪ ٟ‬ل‪ّ١‬ز‪ٙ‬ب ‪ 1‬ف‪ٟ‬‬
‫اٌّغغً ‪AX‬‬

‫انحم‪:‬‬
‫فىشح اٌؾً ٘‪ ٟ‬رذ‪٠ٚ‬ش ثزبد اٌّغغً ‪ 16 AX‬د‪ٚ‬سح ‪ٚ‬ف‪ ٟ‬وً د‪ٚ‬سح ٔغأي ػٓ ل‪ّ١‬خ‬
‫اٌشا‪٠‬خ ‪ CF‬ارا وبٔذ ‪ٔ 1‬ؼ‪١‬ف ٌٍؼذاد ‪ BL‬اٌم‪ّ١‬خ ‪ٔ .1‬غأي ػٓ اٌشا‪٠‬خ ‪ cf‬الْ وً ثذ‬
‫رٕزمً ِٓ اٌجذا‪٠‬خ اٌ‪ ٝ‬إٌ‪ٙ‬ب‪٠‬خ رؼغ ط‪ٛ‬سح ِٕ‪ٙ‬ب ف‪ ٟ‬داخً ٘زٖ اٌشا‪٠‬خ‬

‫‪MOV CX,16‬‬
‫‪MOV BL,0‬‬
‫‪T1:ROR AX,1‬‬
‫‪JC CF_1‬‬
‫‪JMP CF_0‬‬
‫‪CF_1:ADD BL,1‬‬
‫‪CF_0:LOOP T1‬‬

‫‪ )2‬االِش اٌضبٔ‪ ٟ‬اٌّزخظض ف‪ ٟ‬اٌذ‪ٚ‬ساْ ٘‪ ٛ‬اٌذ‪ٚ‬ساْ ٌٍ‪١‬غبس ‪ٚ‬االِش ٘‪ٛ‬‬

‫‪ROL OP,1‬‬
‫ف‪ٕٙ‬ب اٌجذ اٌّ‪ٛ‬ع‪ٛ‬دح ف‪ٙٔ ٟ‬ب‪٠‬خ اٌّغغً رؼغ ط‪ٛ‬سح ٌ‪ٙ‬ب ف‪ ٟ‬اٌشا‪٠‬خ ‪ٚ CF‬رٕزمً اٌ‪ ٝ‬اٌجذا‪٠‬خ‪.‬‬
‫وّب ٘‪ِ ٛ‬ج‪ ٓ١‬ف‪ ٟ‬اٌشىً اٌزبٌ‪:ٟ‬‬

‫‪CF‬‬ ‫‪DATA‬‬

‫يثبل‪ ٌٛ :‬فشػٕب اْ اٌّغغً ‪٠ BL‬ؾز‪ ٞٛ‬ػٍ‪ ٝ‬ل‪ّ١‬خ ‪ٔٚ 6CH‬فزٔب االِش اٌزبٌ‪:ٟ‬‬
‫‪ROL BL,1‬‬

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


‫ػٕذ٘ب ٔؾظً ػٍ‪ِ ٝ‬ب ‪:ٍٟ٠‬‬
‫‪CF‬‬ ‫‪BL‬‬
‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1 1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬
‫اٌغإاي ارا اسدٔب اْ ٔم‪ َٛ‬ثزذ‪٠ٚ‬ش ػذح ثزبد ِشح ‪ٚ‬اؽذح فبٕٔب ٔغزؼًّ اٌّغغً ‪ٔٚ CL‬ؼغ‬
‫ف‪ ٗ١‬ػذد اٌذ‪ٚ‬ساد‬
‫ِضبي‪:‬‬
‫‪ROL DL,1‬‬
‫‪ROL DL,1‬‬
‫‪ROL DL,1‬‬
‫‪ROL DL,1‬‬
‫‪ّ٠‬ىٓ اْ ٔغغً ثذال ِٓ ٘زٖ اال‪ٚ‬اِش ِب ‪:ٍٟ٠‬‬
‫‪MOV CL,4‬‬
‫‪ROL DL,CL‬‬
‫اوايز االساحت‬

‫ٕ٘بٌه ا‪ٚ‬اِش اصاؽخ ثزبد رزخظض ف‪ ٟ‬االػذاد اٌّ‪ٛ‬عجخ ‪ٕ٘ٚ‬بٌه ا‪ٚ‬اِش اصاؽخ رزخظض‬
‫ف‪ ٟ‬االػذاد اٌّ‪ٛ‬ع‪ٙ‬خ‬
‫‪.1‬اصاؽخ ٔؾ‪ ٛ‬اٌ‪ ٓ١ّ١‬االػذاد اٌّ‪ٛ‬عجخ‪.‬‬
‫‪SHR OP,1‬‬
‫ٕ٘ب ‪٠‬زُ اػبفخ طفش ف‪ٙٔ ٟ‬ب‪٠‬خ اي ‪ٔٚ OP‬م‪ َٛ‬ثذفغ اٌجزبد االخش‪ ٜ‬اٌ‪ ٝ‬اٌ‪ٚ ٓ١ّ١‬ف‪٘ ٟ‬زٖ‬
‫اٌؾبٌخ رخشط اٌجذ اال‪ ٌٝٚ‬اٌ‪ ٝ‬سا‪٠‬خ ‪CF‬‬
‫وّب ٘‪ِ ٛ‬ج‪ ٓ١‬ف‪ ٟ‬اٌشىً اٌزبٌ‪:ٟ‬‬

‫‪DATA‬‬ ‫‪CF‬‬
‫‪0‬‬

‫ِضبي‪ِ :‬ؼط‪ BL=75H ٝ‬ارا ٔفزٔب االِش اٌزبٌ‪:ٟ‬‬


‫‪SHR BL,1‬‬
‫إٔب ٔؾظً ػٍ‪ ٝ‬اٌشىً اٌزبٌ‪:ٟ‬‬
‫اٌّغغً ‪ BL‬لجً رٕف‪١‬ز االِش‬

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


‫ثؼذ ػٍّ‪١‬خ اٌزٕف‪١‬ز ٔؾظً ػٍ‪ٝ‬‬

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


‫‪BL‬‬ ‫‪CF‬‬
‫ِالؽظخ‪٘ :‬زٖ االِش ‪٠‬م‪ َٛ‬ثؼٍّ‪١‬خ لغّخ اٌم‪ّ١‬خ ػٍ‪ٌٚ 2 ٝ‬ىٓ د‪ ْٚ‬ثبق أ‪ ٞ‬أٗ ‪٠‬ؾفع إٌبرظ‬
‫اٌظؾ‪١‬ؼ ِٓ خبسط اٌمغّخ ‪ٚ‬اٌجبل‪٠ ٟ‬ز٘ت اٌ‪ ٝ‬اٌشا‪٠‬خ ‪CF‬‬
‫ٌ‪ ٛ‬اسدٔب اْ ٔؼًّ االِش ػذح ِشاد فبٕٔب ع‪ٛ‬ف ٔغغً االِش ػذح ِشاد ا‪ٔ ٚ‬غزؼ‪ ٓ١‬ف‪ٟ‬‬
‫ثبٌّغغً ‪CL‬‬
‫ِضبي‪:‬‬
‫‪SHR AL,1‬‬
‫‪SHR AL,1‬‬
‫‪SHR AL,1‬‬
‫‪ّ٠‬ىٓ ٔغغً ثذال ِٓ ٘زٖ اال‪ٚ‬اِش ِب ‪:ٍٟ٠‬‬
‫‪MOV CL,3‬‬
‫‪SHR AL,CL‬‬
‫ِالؽظخ‪ٕ٘ :‬ب ال ‪ّ٠‬ىٓ رخض‪ ٓ٠‬اٌجبل‪ ٟ‬ف‪ ٟ‬اٌشا‪٠‬خ ‪ CF‬الٔٗ ‪ّ٠‬ىٓ اْ ٔخضْ ثذ ‪ٚ‬اؽذح فمؾ‬
‫‪ ٟ٘ٚ‬اخش ثذ خشعذ ِٓ اٌّغغً ا‪ ٚ‬اٌّزغ‪١‬ش‪ٕ٘ .‬ب رّذ لغّخ اٌّغغً ػً اٌم‪ّ١‬خ ‪ 8‬الٔٗ‬
‫ف‪ ٟ‬وً اصاؽخ ٔمغُ ػٍ‪ٕ٘ٚ 2 ٝ‬ب ػٍّٕب صالس اصاؽبد ارا لغّٕب ػٍ‪8 ٝ‬‬

‫‪.2‬اصاؽخ ٔؾ‪ ٛ‬اٌ‪١‬غبس‪.‬‬


‫‪SHL OP,1‬‬
‫ٕ٘ب ‪٠‬زُ اػبفخ طفش ف‪ ٟ‬ثذا‪٠‬خ اي ‪ٔٚ OP‬م‪ َٛ‬ثذفغ اٌجزبد االخش‪ ٜ‬اٌ‪ ٝ‬اٌ‪١‬غبس ‪ٚ‬ف‪٘ ٟ‬زٖ‬
‫اٌؾبٌخ رخشط اٌجذ االخ‪١‬شح اٌ‪ ٝ‬سا‪٠‬خ ‪CF‬‬
‫وّب ٘‪ِ ٛ‬ج‪ ٓ١‬ف‪ ٟ‬اٌشىً اٌزبٌ‪:ٟ‬‬

‫‪CF‬‬ ‫‪DATA‬‬ ‫‪0‬‬

‫ِضبي‪ِ :‬ؼط‪ BL=75H ٝ‬ارا ٔفزٔب االِش اٌزبٌ‪:ٟ‬‬


‫‪SHL BL,1‬‬
‫إٔب ٔؾظً ػٍ‪ ٝ‬اٌشىً اٌزبٌ‪:ٟ‬‬
‫اٌّغغً ‪ BL‬لجً رٕف‪١‬ز االِش‬

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


‫ثؼذ ػٍّ‪١‬خ اٌزٕف‪١‬ز ٔؾظً ػٍ‪ٝ‬‬

‫‪CF‬‬ ‫‪BL‬‬

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


‫ِالؽظخ‪٘ :‬زٖ االِش ‪٠‬م‪ َٛ‬ثؼٍّ‪١‬خ ػشة اٌم‪ّ١‬خ ثبٌؼذد ‪ 2‬اٌجذ االخ‪١‬شح رٕزمً اٌ‪ ٝ‬اٌشا‪٠‬خ‬
‫‪CF‬‬
‫ٌ‪ ٛ‬اسدٔب اْ ٔؼًّ االِش ػذح ِشاد فبٕٔب ع‪ٛ‬ف ٔغغً االِش ػذح ِشاد ا‪ٔ ٚ‬غزؼ‪ ٓ١‬ف‪ٟ‬‬
‫ثبٌّغغً ‪CL‬‬
‫ِضبي‪:‬‬
‫‪SHL AL,1‬‬
‫‪SHL AL,1‬‬
‫‪SHL AL,1‬‬
‫‪ّ٠‬ىٓ اْ ٔغغً ثذال ِٓ ٘زٖ اال‪ٚ‬اِش ِب ‪:ٍٟ٠‬‬
‫‪MOV CL,3‬‬
‫‪SHL AL,CL‬‬
‫ٕ٘ب رُ ػشة اٌؼذد ثبٌم‪ّ١‬خ ‪ٚ 8‬اٌغجت ٘‪ ٛ‬اْ وً اصاؽخ ػجبسح ػٓ ػشة اٌؼذد ثبٌم‪ّ١‬خ ‪2‬‬
‫‪ٕ٘ٚ‬ب ػٍّٕب صالس اصاؽبد أ‪ 2*2*2=8 ٞ‬اٌّ‪ ُٙ‬اْ ٕٔزجٗ ع‪١‬ذا الٔٗ ف‪ ٟ‬ثؼغ االؽ‪١‬بْ‬
‫اٌّغغً ال ‪ّ٠‬ىٕٗ اْ ‪٠‬غز‪ٛ‬ػت إٌز‪١‬غخ اٌغذ‪٠‬ذح ‪ٕ٘ٚ‬ب ٔخغش ثزبد ِٓ إٌز‪١‬غخ ‪ٚ‬رى‪ْٛ‬‬
‫إٌز‪١‬غخ اٌّ‪ٛ‬ع‪ٛ‬دح ف‪ ٟ‬اٌّغغً غ‪١‬ش طؾ‪١‬ؾخ‪.‬‬
‫اٌؾً اْ ٔغزؼ‪ ٓ١‬ػٕذ٘ب ف‪ِ ٟ‬غغً وبًِ ِضال‬
‫‪MOV AH,0‬‬
‫‪MOV CL,3‬‬
‫‪SHL AX,CL‬‬

‫‪.3‬اصاؽخ ٔؾ‪ ٛ‬اٌ‪١‬غبس ٌالػذاد اٌّ‪ٛ‬ع‪ٙ‬خ( اٌغبٌجخ ‪ٚ‬اٌّ‪ٛ‬عجخ)‪.‬‬


‫‪SAL OP,1‬‬
‫ٕ٘ب ‪٠‬زُ اػبفخ طفش ف‪ ٟ‬ثذا‪٠‬خ اي ‪ٔٚ OP‬م‪ َٛ‬ثذفغ اٌجزبد االخش‪ ٜ‬اٌ‪ ٝ‬اٌ‪١‬غبس ‪ٚ‬ف‪٘ ٟ‬زٖ‬
‫اٌؾبٌخ رخشط اٌجذ االخ‪١‬شح اٌ‪ ٝ‬سا‪٠‬خ ‪CF‬‬
‫وّب ٘‪ِ ٛ‬ج‪ ٓ١‬ف‪ ٟ‬اٌشىً اٌزبٌ‪:ٟ‬‬

‫‪CF‬‬ ‫‪DATA‬‬ ‫‪0‬‬


‫ِضبي‪ِ :‬ؼط‪ BL=75H ٝ‬ارا ٔفزٔب االِش اٌزبٌ‪:ٟ‬‬
‫‪SAL BL,1‬‬
‫إٔب ٔؾظً ػٍ‪ ٝ‬اٌشىً اٌزبٌ‪:ٟ‬‬
‫اٌّغغً ‪ BL‬لجً رٕف‪١‬ز االِش‬

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


‫ثؼذ ػٍّ‪١‬خ اٌزٕف‪١‬ز ٔؾظً ػٍ‪ٝ‬‬

‫‪CF‬‬ ‫‪BL‬‬

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


‫ِالؽظخ‪٘ :‬زٖ االِش ‪٠‬م‪ َٛ‬ثؼٍّ‪١‬خ ػشة اٌم‪ّ١‬خ ثبٌؼذد ‪ 2‬اٌجذ االخ‪١‬شح رٕزمً اٌ‪ ٝ‬اٌشا‪٠‬خ‬
‫‪CF‬‬
‫ٌ‪ ٛ‬اسدٔب اْ ٔؼًّ االِش ػذح ِشاد فبٕٔب ع‪ٛ‬ف ٔغغً االِش ػذح ِشاد ا‪ٔ ٚ‬غزؼ‪ ٓ١‬ف‪ٟ‬‬
‫ثبٌّغغً ‪CL‬‬
‫ِضبي‪:‬‬
‫‪SAL AL,1‬‬
‫‪SAL AL,1‬‬
‫‪SAL AL,1‬‬
‫‪ّ٠‬ىٓ اْ ٔغغً ثذال ِٓ ٘زٖ اال‪ٚ‬اِش ِب ‪:ٍٟ٠‬‬
‫‪MOV CL,3‬‬
‫‪SAL AL,CL‬‬
‫ٕ٘ب رُ ػشة اٌؼذد ثبٌم‪ّ١‬خ ‪ٚ 8‬اٌغجت ٘‪ ٛ‬اْ وً اصاؽخ ػجبسح ػٓ ػشة اٌؼذد ثبٌم‪ّ١‬خ ‪2‬‬
‫‪ٕ٘ٚ‬ب ػٍّٕب صالس اصاؽبد أ‪ 2*2*2=8 ٞ‬اٌّ‪ ُٙ‬اْ ٕٔزجٗ ع‪١‬ذا الٔٗ ف‪ ٟ‬ثؼغ االؽ‪١‬بْ‬
‫اٌّغغً ال ‪ّ٠‬ىٕٗ اْ ‪٠‬غز‪ٛ‬ػت إٌز‪١‬غخ اٌغذ‪٠‬ذح ‪ٕ٘ٚ‬ب ٔخغش ثزبد ِٓ إٌز‪١‬غخ ‪ٚ‬رى‪ْٛ‬‬
‫إٌز‪١‬غخ اٌّ‪ٛ‬ع‪ٛ‬دح ف‪ ٟ‬اٌّغغً غ‪١‬ش طؾ‪١‬ؾخ‪.‬‬
‫اٌؾً اْ ٔغزؼ‪ ٓ١‬ػٕذ٘ب ف‪ِ ٟ‬غغً وبًِ ِضال‬
‫‪MOV AH,0‬‬
‫‪MOV CL,3‬‬
‫‪SAL AX,CL‬‬
‫‪.4‬اصاؽخ ٔؾ‪ ٛ‬اٌ‪ٌ ٓ١ّ١‬الػذاد اٌّ‪ٛ‬ع‪ٙ‬خ اٌغبٌجخ ‪ٚ‬اٌّ‪ٛ‬عجخ‪.‬‬
‫‪SAR OP,1‬‬
‫ٕ٘ب ‪٠‬زُ ٔغخ اٌجذ االخ‪١‬شح ِٓ ع‪ٙ‬خ اٌ‪١‬غبس ف‪ٙٔ ٟ‬ب‪٠‬خ اي ‪ٔٚ OP‬ؼؼ‪ٙ‬ب ف‪ٙٔ ٟ‬ب‪٠‬خ اي ‪OP‬‬
‫‪ٔٚ‬م‪ َٛ‬ثذفغ اٌجزبد االخش‪ ٜ‬اٌ‪ ٝ‬اٌ‪ٚ ٓ١ّ١‬ف‪٘ ٟ‬زٖ اٌؾبٌخ رخشط اٌجذ اال‪ ٌٝٚ‬اٌ‪ ٝ‬سا‪٠‬خ ‪CF‬‬
‫وّب ٘‪ِ ٛ‬ج‪ ٓ١‬ف‪ ٟ‬اٌشىً اٌزبٌ‪:ٟ‬‬

‫‪DATA‬‬ ‫‪CF‬‬

‫ِضبي‪ِ :‬ؼط‪ BL=F5H ٝ‬ارا ٔفزٔب االِش اٌزبٌ‪:ٟ‬‬


‫‪SAR BL,1‬‬
‫إٔب ٔؾظً ػٍ‪ ٝ‬اٌشىً اٌزبٌ‪:ٟ‬‬
‫اٌّغغً ‪ BL‬لجً رٕف‪١‬ز االِش‬

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


‫ثؼذ ػٍّ‪١‬خ اٌزٕف‪١‬ز ٔؾظً ػٍ‪ٝ‬‬

‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬


‫‪1‬‬ ‫‪0 1 0‬‬ ‫‪1‬‬
‫‪BL‬‬ ‫‪CF‬‬
‫ِالؽظخ‪٘ :‬زٖ االِش ‪٠‬م‪ َٛ‬ثؼٍّ‪١‬خ لغّخ اٌم‪ّ١‬خ ػٍ‪ٌٚ 2 ٝ‬ىٓ د‪ ْٚ‬ثبق أ‪ ٞ‬أٗ ‪٠‬ؾفع إٌبرظ‬
‫اٌظؾ‪١‬ؼ ِٓ خبسط اٌمغّخ ‪ٚ‬اٌجبل‪٠ ٟ‬ز٘ت اٌ‪ ٝ‬اٌشا‪٠‬خ ‪CF‬‬
‫ِضبي‪ِ :‬ؼط‪ BL=75H ٝ‬ارا ٔفزٔب االِش اٌزبٌ‪:ٟ‬‬
‫‪SAR BL,1‬‬
‫إٔب ٔؾظً ػٍ‪ ٝ‬اٌشىً اٌزبٌ‪:ٟ‬‬
‫اٌّغغً ‪ BL‬لجً رٕف‪١‬ز االِش‬

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


‫ثؼذ ػٍّ‪١‬خ اٌزٕف‪١‬ز ٔؾظً ػٍ‪ٝ‬‬

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


‫‪BL‬‬ ‫‪CF‬‬

‫ٌ‪ ٛ‬اسدٔب اْ ٔؼًّ االِش ػذح ِشاد فبٕٔب ع‪ٛ‬ف ٔغغً االِش ػذح ِشاد ا‪ٔ ٚ‬غزؼ‪ ٓ١‬ف‪ٟ‬‬
‫ثبٌّغغً ‪CL‬‬
‫ِضبي‪:‬‬
‫‪SAR AL,1‬‬
‫‪SAR AL,1‬‬
‫‪SAR AL,1‬‬
‫‪ّ٠‬ىٓ ٔغغً ثذال ِٓ ٘زٖ اال‪ٚ‬اِش ِب ‪:ٍٟ٠‬‬
‫‪MOV CL,3‬‬
‫‪SAR AL,CL‬‬
‫ِالؽظخ‪ٕ٘ :‬ب ال ‪ّ٠‬ىٓ رخض‪ ٓ٠‬اٌجبل‪ ٟ‬ف‪ ٟ‬اٌشا‪٠‬خ ‪ CF‬الٔٗ ‪ّ٠‬ىٓ اْ ٔخضْ ثذ ‪ٚ‬اؽذح فمؾ‬
‫‪ ٟ٘ٚ‬اخش ثذ خشعذ ِٓ اٌّغغً ا‪ ٚ‬اٌّزغ‪١‬ش‪ٕ٘ .‬ب رّذ لغّخ اٌّغغً ػً اٌم‪ّ١‬خ ‪ 8‬الٔٗ‬
‫ف‪ ٟ‬وً اصاؽخ ٔمغُ ػٍ‪ٕ٘ٚ 2 ٝ‬ب ػٍّٕب صالس اصاؽبد ارا لغّٕب ػٍ‪8 ٝ‬‬

‫‪.5‬اٌزذ‪٠ٚ‬ش اٌ‪ ٝ‬اٌ‪ِ ٓ١ّ١‬غ اٌشا‪٠‬خ ‪CF‬‬


‫‪RCR OP,1‬‬
‫ٕ٘ب ‪٠‬زُ اػزجبس اٌشا‪٠‬خ ‪ ِٓ CF‬ػّٓ اٌجزبد اٌز‪٠ ٟ‬غت رذ‪٠ٚ‬ش٘ب أظش اٌشىً اٌزبٌ‪:ٟ‬‬

‫‪DATA‬‬ ‫‪CF‬‬

‫‪AL=3DH‬‬ ‫ِضبي‪ِ:‬ؼط‪CF=1 ٝ‬‬


‫ارا ٔفزٔب االِش اٌزبٌ‪:ٟ‬‬
‫‪RCR AL,1‬‬
‫لجً اٌزٕف‪١‬ز‬
‫‪AL‬‬ ‫‪CF‬‬

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

‫ثؼذ اٌزٕف‪١‬ز‪:‬‬
‫‪AL‬‬ ‫‪CF‬‬
‫‪1 0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬
‫‪1‬‬

‫ِالؽظخ‪:‬اٌّظذس ٕ٘ب ػجبسح ػٓ ل‪ّ١‬خ ػذد‪٠‬خ ‪٠ٚ‬غت اْ رى‪ٚ 1 ْٛ‬فمؾ ‪ٚ‬اؽذ ‪ٚ‬ف‪ ٟ‬ؽبٌخ ارا‬
‫اسدٔب رذ‪٠ٚ‬ش اوضش ِٓ ثذ ‪ٚ‬اؽذح ف‪ٕٙ‬بٌه ؽالْ‬
‫اٌؾً اال‪ٚ‬ي اْ ٔغغً االِش ثمذس ػذد ِشاد اٌجزبد اٌّشاد رذ‪٠ٚ‬ش٘ب ِضال‪:‬‬
‫‪RCR AL,1‬‬
‫‪RCR AL,1‬‬
‫‪RCR AL,1‬‬
‫ف‪ٕٙ‬ب رُ رذ‪٠ٚ‬ش صالس ثزبد ‪.‬‬

‫ؽً اخش‪ٔ :‬ؼغ ف‪ CL ٟ‬ػذد ِشاد اٌذ‪ٚ‬ساْ صّب ٔغغً االِش‬


‫ِضبي‪:‬‬
‫‪MOV CL,3‬‬
‫‪RCR AL,CL‬‬

‫‪.6‬اٌزذ‪٠ٚ‬ش اٌ‪ ٝ‬اٌ‪١‬غبس ِغ اٌشا‪٠‬خ ‪CF‬‬


‫‪RCL OP,1‬‬
‫ٕ٘ب ‪٠‬زُ اػزجبس اٌشا‪٠‬خ ‪ ِٓ CF‬ػّٓ اٌجزبد اٌز‪٠ ٟ‬غت رذ‪٠ٚ‬ش٘ب أظش اٌشىً اٌزبٌ‪:ٟ‬‬

‫‪CF‬‬ ‫‪DATA‬‬

‫‪AL=3DH‬‬ ‫ِضبي‪ِ:‬ؼط‪CF=0 ٝ‬‬


‫ارا ٔفزٔب االِش اٌزبٌ‪:ٟ‬‬
‫‪RCL AL,1‬‬
‫لجً اٌزٕف‪١‬ز‬
‫‪CF‬‬ ‫‪AL‬‬

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

‫ثؼذ اٌزٕف‪١‬ز‪:‬‬
‫‪AL‬‬
0 0 1 1 1 1 0 1 0

‫ ؽبٌخ ارا‬ٟ‫ف‬ٚ ‫اؽذ‬ٚ ‫فمؾ‬ٚ 1 ْٛ‫غت اْ رى‬٠ٚ ‫خ‬٠‫ّخ ػذد‬١‫اٌّظذس ٕ٘ب ػجبسح ػٓ ل‬:‫ِالؽظخ‬
ْ‫ٕبٌه ؽال‬ٙ‫اؽذح ف‬ٚ ‫ش اوضش ِٓ ثذ‬٠ٚ‫اسدٔب رذ‬
:‫ش٘ب ِضال‬٠ٚ‫ي اْ ٔغغً االِش ثمذس ػذد ِشاد اٌجزبد اٌّشاد رذ‬ٚ‫اٌؾً اال‬
RCL AL,1
RCL AL,1
RCL AL,1
. ‫ش صالس ثزبد‬٠ٚ‫ٕب رُ رذ‬ٙ‫ف‬

‫ساْ صُ ٔغغً االِش‬ٚ‫ ػذد ِشاد اٌذ‬CL ٟ‫ ٔؼغ ف‬:‫ؽً اخش‬


:‫ِضبي‬
MOV CL,3
RCL AL,CL

‫االخزظبس‬ ‫االِش‬
ROTATE RIGHT ROR
ROTATE LEFT ROL
ROTATE RIGHT WITH CARRY RCR
ROTATE LEFT WITH CARRY RCL
SHIFT ARITHMETIC LOGICAL SAL
LEFT
SHIFT ARITHMETIC LOGICAL SAR
RIGHT

‫انُصىص‬
‫إٌض‪ٛ٘ :‬ػجبسح ػٓ سِض ا‪ ٚ‬اوضش رؾفع ػبدح رؾذ اعُ ف‪ِ ٟ‬ىبْ ِؼ‪ ٓ١‬ف‪ ٟ‬اٌزاوشح‬
‫‪ٚ‬رؾفع اٌشِ‪ٛ‬ص ثغبٔت ثؼؼ‪ٙ‬ب اٌجؼغ‬
‫ِضبي‪:‬‬
‫'‪Str1 db 'this is my first string‬‬
‫'‪Str2 db '12345‬‬
‫'‪Str3 dw 'ad‬‬
‫'‪Str4 dw 'v‬‬
‫ِالؽظخ ٘بِخ ‪ :‬ارا وبْ إٌض ِٓ ٔ‪ٛ‬ع ‪٠ word‬غت اْ ‪٠‬ى‪ ْٛ‬ػذد سِ‪ٛ‬صٖ اطغش ِٓ‬
‫صالصخ سِ‪ٛ‬ص‬
‫ِضال ‪ str4 dw 'abc':‬خطأ الْ ػذد اٌشِ‪ٛ‬ص ٕ٘ب ‪ 3‬سِ‪ٛ‬ص‬

‫اوايز انُصىص‬

‫‪-‬ا‪ٚ‬اِش إٌظ‪ٛ‬ص رؼًّ ػٍ‪ِٕ ٝ‬طمز‪ ٓ١‬ف‪ ٟ‬اٌزاوشح‬


‫إٌّطمخ اال‪ : ٌٝٚ‬رذػ‪ِٕ ٝ‬طمخ اٌّظذس ‪٘ٚ‬زٖ إٌّطمخ ِؼشفخ ثّغبػذح ‪ DS:SI‬ا‪ ٓ٠‬اْ‬
‫اٌّظذس ِ‪ٛ‬ع‪ٛ‬د ف‪ِٕ ٟ‬طمخ ‪ٚ data segment‬اٌّإشش اٌز‪ٔ ٞ‬غزخذِٗ ٘‪si ٛ‬‬
‫إٌّطمخ اٌضبٔ‪١‬خ‪ :‬رذػ‪ِٕ ٝ‬طمخ اٌ‪ٙ‬ذف ‪٘ٚ‬زٖ إٌّطمخ ِؼشفخ ثّغبػذح ‪ ES:DI‬أ‪ ٞ‬أ‪ٙ‬ب‬
‫ِ‪ٛ‬ع‪ٛ‬دح ف‪ِٕ ٟ‬طمخ ‪ٚ extra segment‬اٌّإشش ٕ٘ب ٘‪di ٛ‬‬
‫ِالؽظخ‪ّ٠ :‬ىٓ اْ رى‪ ْٛ‬إٌّطمخ اٌضبٔ‪١‬خ ف‪ِٕ ٟ‬طمخ ‪ data segment‬ثششؽ اْ ٔؼط‪ٟ‬‬
‫اٌّغغً ‪ٔ es‬فظ ل‪ّ١‬خ اٌّغغً ‪ds‬‬
‫‪٠-‬غت اْ ‪٠‬إشش ‪ si‬ػٍ‪ٔ ٝ‬ض اٌّظذس ‪ٚ‬اٌّإشش ‪ di‬ػٍ‪ٔ ٝ‬ض اٌ‪ٙ‬ذف لجً رٕف‪١‬ز ػٍّ‪١‬بد‬
‫إٌظ‪ٛ‬ص‬
‫‪-‬ارا وبْ ‪ DF=0‬اٌّإششاد رىجش ثؼذ وً ػٍّ‪١‬خ ‪ٚ‬ارا وبْ ‪ DF=1‬اٌّإششاد رظغش ثؼذ‬
‫وً ػٍّ‪١‬خ‬
‫‪clear‬‬ ‫‪-‬االِش اٌز‪٠ ٞ‬ؼغ اٌم‪ّ١‬خ طفش ف‪ ٟ‬اٌشا‪٠‬خ ‪ٛ٘ DF‬االِش ‪ CLD‬أ‪ٞ‬‬
‫)‪) direction flag‬‬
‫‪-‬االِش اٌز‪٠ ٞ‬ؼغ اٌم‪ّ١‬خ ‪ 1‬ف‪ ٟ‬اٌشا‪٠‬خ ‪ STD ٛ٘ DF‬أ‪ٞ‬‬
‫)‪(set direction flag‬‬
‫‪ -‬ل‪ّ١‬خ اٌّإشش ‪ٚ si‬اٌّإشش ‪ di‬رزغ‪١‬ش ثشىً رٍمبئ‪ ٟ‬ثؼذ وً ػٍّ‪١‬خ ٔم‪ َٛ‬ث‪ٙ‬ب ػٍ‪ ٝ‬إٌظ‪ٛ‬ص‬
‫ث‪ٛ‬اعطخ اِش ِٓ ا‪ٚ‬اِش إٌظ‪ٛ‬ص‪.‬‬
‫اٌغإاي ٘‪ ٛ‬ثىُ رزغ‪١‬ش ؟‬
‫اٌغ‪ٛ‬اة ؽغت ل‪ّ١‬خ اٌشا‪٠‬خ ‪ٛٔٚ DF‬ع االِش (ٕ٘بٌه ا‪ٚ‬اِش رزُ ػٍ‪ ٝ‬ثب‪٠‬ذ ‪ٕ٘ٚ‬بٌه ا‪ٚ‬اِش‬
‫رزُ ػٍ‪)word ٝ‬‬
‫اال‪ٚ‬اِش‬
‫االِش ‪ٕ٘ : MOVSB‬ب ‪٠‬زُ ٔغخ ثب‪٠‬ذ ِٓ ٔض اٌّظذس اٌ‪ٔ ٝ‬ض اٌ‪ٙ‬ذف ‪٠ٚ .‬زُ رزغ‪١١‬ش‬
‫اٌّإششاد ‪ di ٚ si‬ؽغت ‪ٚ‬ػغ ‪DF‬‬
‫ِضبي‪:‬‬
‫ِؼط‪:ٝ‬‬
‫‪Cld‬‬
‫‪Lea si,string1‬‬
‫‪Lea di,string2‬‬
‫‪Movsb‬‬
‫ٕ٘ب رُ ٔغخ اٌشِض اال‪ٚ‬ي ف‪ٔ ٟ‬ض اٌّظذس (‪ )string1‬اٌ‪ٔ ٝ‬ض اٌ‪ٙ‬ذف (‪)string2‬‬
‫‪ٚ‬ا‪٠‬ؼب رُ رىج‪١‬ش وً ‪ٚ‬اؽذ ِٓ اٌّإششاد ‪ si,di‬ث‪ٛ‬اؽذ‬

‫اٌّمطغ اٌزبٌ‪ ٟ‬رٕفز ٔفظ اٌّ‪ّٙ‬خ اٌز‪ ٟ‬ػٍّ‪ٙ‬ب اٌّمطغ اٌغبثك‬

‫‪Lea si,string1‬‬
‫‪Lea di,string2‬‬
‫]‪Mov al,[si‬‬
‫‪Mov [di],al‬‬
‫‪inc si‬‬
‫‪inc si‬‬
‫ارا اسدٔب اْ ٕٔغخ ِضال ‪ 10‬سِ‪ٛ‬ص ِبرا ٔؼًّ ٔغغً االِش اٌغبثك ‪ِ 10‬شاد اَ ٕ٘بٌه‬
‫ؽش‪٠‬مخ اثغؾ ‪ٚ‬اع‪. ًٙ‬‬
‫اٌغ‪ٛ‬اة ‪ّ٠‬ىٓ اْ ٔغزخذَ االِش ‪)repeat( . rep‬‬
‫االعزؼّبي وّب ‪: ٍٟ٠‬‬
‫‪-‬ػغ ف‪ ٟ‬اٌّغغً ‪ cx‬ػذد اٌشِ‪ٛ‬ص اٌّشاد ٔغخ‪ٙ‬ب‬
‫‪ٔ-‬غغً ‪rep movsb‬‬
‫اٌؾً‪:‬‬
‫‪Cld‬‬
‫‪Lea si,string1‬‬
‫‪Lea di,string2‬‬
‫‪Mov cx,10‬‬
‫‪Rep Movsb‬‬

‫االِش ‪٠ : movsw‬ؼًّ ِضً االِش اٌغبثك ‪ٌٚ‬ىٓ ٕ٘ب ‪٠‬زُ ٔغخ سِض‪ ٓ٠‬ف‪ ٟ‬وً ػٍّ‪١‬خ‬
‫‪ٚ‬اٌّإششاد رٕمض ا‪ٚ‬رض‪٠‬ذ ثـ ‪ 2‬ؽغت اٌشا‪٠‬خ ‪DF‬‬
‫ارا وبْ ‪ DF=0‬ػٕذ٘ب ‪SI=SI+2‬‬
‫‪DI=DI+2‬‬
‫ارا وبْ ‪ DF=1‬ػٕذ٘ب ‪SI=SI-2‬‬
‫‪DI=DI-2‬‬
‫االِش ‪ٕ٘ : LOADSB‬ب ‪٠‬زُ ‪ٚ‬ػغ ٔغخخ ِٓ اٌشِضاٌز‪٠ ٞ‬إشش ػٍ‪ ٗ١‬اٌّإشش ‪ si‬ف‪ٟ‬‬
‫اٌّغغً ‪٠ٚ AL‬زُ رغ‪١١‬ش اٌّإشش ‪ SI‬ث‪ٛ‬اؽذ ؽغت ‪ٚ‬ػغ ‪. DF‬‬
‫ارا وبْ ‪ DF=0‬ػٕذ٘ب ‪SI=SI+1‬‬
‫ارا وبْ ‪ DF=1‬ػٕذ٘ب ‪SI=SI-1‬‬

‫االِش ‪ٕ٘ : LOADSW‬ب ‪٠‬زُ ٔغخ سِض‪ٔ ِٓ ٓ٠‬ض اٌ‪ٙ‬ذف اٌ‪ ٝ‬اٌّغغً ‪٠ٚ AX‬زُ رغ‪١١‬ش‬
‫اٌّإشش ‪ SI‬ثـ ‪ 2‬ؽغت ‪ٚ‬ػغ اٌشا‪٠‬خ ‪DF‬‬
‫ارا وبْ ‪ DF=0‬ػٕذ٘ب ‪SI=SI+2‬‬
‫ارا وبْ ‪ DF=1‬ػٕذ٘ب ‪SI=SI-2‬‬

‫االِش ‪ٕ٘ STOSB‬ب ‪٠‬زُ ‪ٚ‬ػغ ٔغخخ ِٓ اٌشِضاٌّ‪ٛ‬ع‪ٛ‬د ف‪ ٟ‬اٌّغغً ‪ AL‬ف‪ٔ ٟ‬ض‬
‫اٌ‪ٙ‬ذف ف‪ ٟ‬اٌّىبْ اٌز‪٠ ٞ‬إشش ػٍ‪ ٗ١‬اٌّإشش ‪٠ٚ DI‬زُ رغ‪١١‬ش اٌّإشش ‪ DI‬ث‪ٛ‬اؽذ ؽغت‬
‫‪ٚ‬ػغ ‪. DF‬‬
‫ارا وبْ ‪ DF=0‬ػٕذ٘ب ‪DI=DI+1‬‬
‫ارا وبْ ‪ DF=1‬ػٕذ٘ب ‪DI=DI-1‬‬

‫االِش ‪ٕ٘ STOSW‬ب ‪٠‬زُ ٔغخ اٌّغغً ‪ AX‬اٌ‪ٔ ٝ‬ض اٌ‪ٙ‬ذف ‪٠ٚ‬زُ رغ‪١١‬ش اٌّإشش ‪ DI‬ثـ‬
‫‪ 2‬ؽغت ‪ٚ‬ػغ اٌشا‪٠‬خ ‪DF‬‬
‫ارا وبْ ‪ DF=0‬ػٕذ٘ب ‪DI=DI+2‬‬
‫ارا وبْ ‪ DF=1‬ػٕذ٘ب ‪DI=DI-2‬‬

‫االِش ‪ٕ٘ SCASB‬ب ‪٠‬زُ ِمبسٔخ ‪ِ AL‬غ اٌشِضاٌز‪٠ ٞ‬إشش ػٍ‪ ٗ١‬اٌّإشش‪ DI‬ف‪ٔ ٟ‬ض‬
‫اٌ‪ٙ‬ذف ‪٠ٚ‬زُ رغ‪١١‬ش اٌّإشش ‪ DI‬ث‪ٛ‬اؽذ ؽغت ‪ٚ‬ػغ ‪. DF‬‬
‫ارا وبْ ‪ DF=0‬ػٕذ٘ب ‪DI=DI+1‬‬
‫ارا وبْ ‪ DF=1‬ػٕذ٘ب ‪DI=DI-1‬‬

‫ِالؽظخ‪ٕ٘ :‬ب اٌّظذس ‪ٚ‬اٌ‪ٙ‬ذف ال ‪٠‬زأصشاْ ‪ٌٚ‬ىٓ اٌشا‪٠‬بد رزأصش‬


‫أ‪ ٞ‬اْ فؾ‪ ٜٛ‬اٌّغغً ‪ٚ AL‬اٌشِض اٌز‪ ٞ‬رّذ ِمبسٔزٗ ال ‪٠‬زغ‪١‬شاْ‬

‫االِش ‪ٕ٘ SCASW‬ب ‪٠‬زُ ِمبسٔخ ‪ِ AX‬غ اٌشِضاٌز‪٠ ٞ‬إشش ػٍ‪ ٗ١‬اٌّإشش‪ٚ DI‬اٌشِض‬
‫اٌز‪ ٗ١ٍ٠ ٞ‬ف‪ٔ ٟ‬ض اٌ‪ٙ‬ذف ‪٠ٚ‬زُ رغ‪١١‬ش اٌّإشش ‪ DI‬ثـ ‪2‬د ؽغت ‪ٚ‬ػغ ‪. DF‬‬
‫ارا وبْ ‪ DF=0‬ػٕذ٘ب ‪DI=DI+2‬‬
‫ارا وبْ ‪ DF=1‬ػٕذ٘ب ‪DI=DI-2‬‬

‫ِالؽظخ‪ٕ٘ :‬ب اٌّظذس ‪ٚ‬اٌ‪ٙ‬ذف ال ‪٠‬زأصشاْ ‪ٌٚ‬ىٓ اٌشا‪٠‬بد رزأصش‬


‫أ‪ ٞ‬اْ فؾ‪ ٜٛ‬اٌّغغً ‪ٚ AX‬اٌشِ‪ٛ‬ص اٌز‪ ٞ‬رّذ ِمبسٔز‪ٙ‬ب ال رزغ‪١‬ش‬

‫االِش ‪ٕ٘ CMPSB‬ب ‪٠‬زُ ِمبسٔخ اٌشِضاٌز‪٠ ٞ‬إشش ػٍ‪ ٗ١‬اٌّإشش ‪ SI‬ف‪ٔ ٟ‬ض اٌّظذس ِغ‬
‫اٌشِض اٌز‪٠ ٞ‬إشش ػٍ‪ ٗ١‬اٌّإشش ‪ DI‬ف‪ٔ ٟ‬ض اٌ‪ٙ‬ذف ‪٠ٚ‬زُ رغ‪١١‬ش اٌّإشش ‪ٚ DI‬اٌّإشش‬
‫‪ SI‬ث‪ٛ‬اؽذ ؽغت ‪ٚ‬ػغ ‪. DF‬‬
‫ارا وبْ ‪ DF=0‬ػٕذ٘ب ‪DI=DI+1‬‬
‫‪SI=SI+1‬‬
‫ارا وبْ ‪ DF=1‬ػٕذ٘ب ‪DI=DI-1‬‬
‫‪SI=SI-1‬‬
‫ِالؽظخ‪ٕ٘ :‬ب اٌّظذس ‪ٚ‬اٌ‪ٙ‬ذف ال ‪٠‬زأصشاْ ‪ٌٚ‬ىٓ اٌشا‪٠‬بد رزأصش‬
‫ِالؽظخ‪ٕ٘ :‬ب ‪٠‬زُ ؽشػ اٌ‪ٙ‬ذف ِٓ اٌّظذس ثؼىظ االِش ‪ CMP‬اٌز‪٠ ٞ‬طشػ اٌّظذس ِٓ‬
‫اٌ‪ٙ‬ذف‬

‫االِش ‪ٕ٘ CMPSW‬ب ‪٠‬زُ ِمبسٔخ اٌشِضاٌز‪٠ ٞ‬إشش ػٍ‪ ٗ١‬اٌّإشش ‪ٚ SI‬اٌشِض اٌزبٌ‪ ٟ‬ف‪ٟ‬‬
‫ٔض اٌّظذس ِغ اٌشِض اٌز‪٠ ٞ‬إشش ػٍ‪ ٗ١‬اٌّإشش ‪ٚ DI‬اٌشِض اٌزٍ‪ ٟ‬ف‪ٔ ٟ‬ض اٌ‪ٙ‬ذف‬
‫‪٠ٚ‬زُ رغ‪١١‬ش اٌّإشش ‪ٚ DI‬اٌّإشش ‪ SI‬ثـ ‪ 2‬ؽغت ‪ٚ‬ػغ ‪. DF‬‬
‫ارا وبْ ‪ DF=0‬ػٕذ٘ب ‪DI=DI+2‬‬
‫‪SI=SI+2‬‬
‫ارا وبْ ‪ DF=1‬ػٕذ٘ب ‪DI=DI-2‬‬
‫‪SI=SI-2‬‬
‫ِالؽظخ‪ٕ٘ :‬ب اٌّظذس ‪ٚ‬اٌ‪ٙ‬ذف ال ‪٠‬زأصشاْ ‪ٌٚ‬ىٓ اٌشا‪٠‬بد رزأصش‬
‫ِالؽظخ‪ٕ٘ :‬ب ‪٠‬زُ ؽشػ اٌ‪ٙ‬ذف ِٓ اٌّظذس ثؼىظ االِش ‪ CMP‬اٌز‪٠ ٞ‬طشػ اٌّظذس ِٓ‬
‫اٌ‪ٙ‬ذف‬

‫انحهقبث وانُصىص‬

‫ارا اسدٔب رٕف‪١‬ز اِش ِٓ ا‪ٚ‬اِش إٌظ‪ٛ‬ص ػذح ِشاد ‪ّ٠‬ىٓ اعزخذاَ ا‪ٚ‬اِش اٌؾٍمبد‬
‫االِش ‪rep‬‬
‫‪ٕ٠‬فز اِش ٔظ‪ٛ‬ص ػذدِٓ اٌّشاد ثمذس اٌم‪ّ١‬خ اٌّخضٔخ ف‪ ٟ‬اٌّغغً ‪cx‬‬
‫ِضال‪:‬‬
‫‪Mov cx,20‬‬
‫‪Rep stosb‬‬
:ٓ٠‫رّش‬
‫ب إٌض‬٠‫ خال‬ٟ‫ ف‬C ‫ٕغخ اٌشِض‬٠ ‫ سِضا اوزت ثشٔبِغب‬15 ‫ي‬ٛ‫ ثط‬str3 ُ‫ ٔض ثبع‬ٝ‫ِؼط‬
:ً‫اٌؾ‬
.MODEL SMALL
.STACK 20H
.DATA
STR3 DB 15 DUP ('0')
.CODE
START:
MOV AX,@DATA
MOV DS,AX
MOV ES,AX ;ES=DS ْ‫ي ٌٍّؼبٌظ ا‬ٛ‫ ٔم‬ٝ‫ُ ؽز‬ِٙ ‫٘زا‬

; STR3 ‫د إٌض‬ٚ‫َ ثطجبػخ ؽذ‬ٛ‫ف ٔم‬ٛ‫ ٌٍفؾض ع‬ٌٟ‫اٌّمطغ اٌزب‬


MOV CX,15
MOV SI,0
T11:MOV DL,STR3[SI]
MOV AH,2
INT 21H
INC SI
LOOP T11
; STR3 ‫د إٌض‬ٚ‫ ؽذ‬ٟ‫ ف‬C ‫ ٌٕغخ اٌشِض‬ٌٟ‫اٌّمطغ اٌزب‬
CLD
MOV CX,15
MOV AL,'C'
LEA DI,STR3
REP STOSB
; STR3 ‫د إٌض‬ٚ‫َ ثطجبػخ ؽذ‬ٛ‫ف ٔم‬ٛ‫ ٌٍفؾض ع‬ٌٟ‫اٌّمطغ اٌزب‬
MOV CX,15
MOV SI,0
T1:MOV DL,STR3[SI]
MOV AH,2
INT 21H
INC SI
‫‪LOOP T1‬‬
‫أ‪ٙ‬بءاٌجشٔبِظ ‪ٚ‬اػطبء اٌغ‪١‬طشح ٌٕظبَ اٌزشغ‪; ً١‬‬
‫‪MOV AH,4CH‬‬
‫‪INT 21H‬‬

‫‪END START‬‬

‫االِش ‪ٔ : REPZ‬فز اٌؾٍمخ وً اٌ‪ٛ‬لذ اٌز‪٠ ٞ‬زؾمك ثٗ ِب ‪:ٍٟ٠‬‬


‫‪ٚ CX<>0‬ا‪٠‬ؼب ‪ZF=1‬‬

‫‪٠‬غزخذَ ٘زا االِش ػبدح ٌٍجؾش ػٓ سِض ِخزٍف ف‪ ٟ‬إٌض‪.‬‬


‫ٌّؼشفخ ارا وبْ اٌخش‪ٚ‬ط ِٓ اٌؾٍمخ ثغت ‪ CX=0‬أ‪ ٞ‬اْ إٌض لذ أز‪ٔ ٝٙ‬غزخذَ االِش‬
‫‪٘ JCXZ‬زا ‪٠‬ؼٕ‪ ٟ‬الفضارا وبْ ‪ CX=0‬ارا ٌُ ‪٠‬زُ اٌمفض ٔؼشف اْ أز‪ٙ‬بء اٌؾٍمخ وبْ‬
‫ثغجت ‪ ZF=0‬أ‪ ٞ‬إٔب ‪ٚ‬عذٔب سِض ِخزٍف‬
‫ِضال ارا اسدٔب اْ ٔفؾض ارا وبْ ٔظب ِؼ‪ٕ١‬ب ‪٠‬ؾز‪ ٞٛ‬ػٍ‪ ٝ‬سِض ‪٠‬خزٍف ػٓ اٌشِض ‪D‬‬
‫‪.MODEL SMALL‬‬
‫‪.STACK 20H‬‬
‫‪.DATA‬‬
‫'‪STR3 DB 'DDDDADDD‬‬
‫'‪NO DB 'NOT FOUND$‬‬
‫'‪YES DB ' FOUND$‬‬
‫‪.CODE‬‬
‫‪START:‬‬
‫‪MOV AX,@DATA‬‬
‫‪MOV DS,AX‬‬
‫٘زا ِ‪ ُٙ‬ؽز‪ٔ ٝ‬م‪ٛ‬ي ٌٍّؼبٌظ اْ ‪MOV ES,AX ;ES=DS‬‬

‫اٌّمطغ اٌزبٌ‪ٌٍ ٟ‬فؾض ارا وبْ ٕ٘بٌه سِض ِخزٍف ػٓ ‪; D‬‬


‫‪CLD‬‬
‫‪MOV CX,9‬‬
‫'‪MOV AL,'D‬‬
‫‪LEA DI,STR3‬‬
‫‪REPZ SCASB‬‬
‫٘زا ‪٠‬ؼٕ‪ ٟ‬اْ إٌض أز‪ٔ ٌُٚ ٝٙ‬غذ سِضا ِخزٍفب ‪JCXZ T1; JUMP IF CX=0‬‬
‫ٕ٘ب ‪٠‬ؼٕ‪ ٟ‬اْ ا‪٠‬مبف ػٍّ‪١‬خ اٌجؾش ثغجت إٔب ‪ٚ‬عذٔب سِضا ِخزٍفب ; ‪LEA DX,YES‬‬
‫‪MOV AH,9‬‬
‫‪INT 21H‬‬
‫‪JMP FINISH‬‬
‫‪T1:LEA DX,NO‬‬
‫‪MOV AH,9‬‬
‫‪INT 21H‬‬

‫أ‪ٙ‬بءاٌجشٔبِظ ‪ٚ‬اػطبء اٌغ‪١‬طشح ٌٕظبَ اٌزشغ‪; ً١‬‬


‫‪FINISH:MOV AH,4CH‬‬
‫‪INT 21H‬‬

‫‪END START‬‬

‫االِش ‪REPNZ‬‬

‫ٔفز اٌؾٍمخ وً اٌ‪ٛ‬لذ اٌز‪٠ ٞ‬زؾمك ثٗ ِب ‪:ٍٟ٠‬‬


‫‪ٚ CX<>0‬ا‪٠‬ؼب ‪ZF=0‬‬

‫‪٠‬غزخذَ ٘زا االِش ػبدح ٌٍجؾش ػٓ سِض ِؼ‪ ٓ١‬ف‪ ٟ‬إٌض‪ِ .‬ضال ارا اسدٔب اْ ٔفؾض ارا‬
‫وبْ ٔظب ِؼ‪ٕ١‬ب ‪٠‬ؾز‪ ٞٛ‬ػٍ‪ ٝ‬اٌشِض ‪.D‬‬

‫اوايز يخفزقت‬

‫ٕ٘بٌه ثؼغ اال‪ٚ‬اِش اٌّزفشلخ ف‪ٌ ٟ‬غخ االعّجٍ‪ ٟ‬اٌز‪ ٟ‬ال ثذ ِٓ اٌزطشق اٌ‪ٙ١‬ب‬
‫اال‪ٚ‬ي ‪seg‬‬
‫‪٠‬غزخذَ ٘زا ٌّؼشفخ ػٕ‪ٛ‬اْ اٌّمطغ اٌّ‪ٛ‬ع‪ٛ‬د ف‪ ٗ١‬اٌّزغ‪١‬ش (‪ )variable‬ا‪ ٚ‬اٌؼٕ‪ٛ‬اْ‬
‫اٌّطٍ‪ٛ‬ة (‪)lable‬‬
‫ِضبي‪:‬‬
‫‪.model small‬‬
‫‪.data‬‬
‫‪x1 db 10‬‬
‫)?( ‪student db 5 dup‬‬
‫‪.code‬‬
‫‪start:‬‬
‫‪mov ax,@data‬‬
‫‪mov ds,ax‬‬
‫ٕ٘ب ٔش‪ ٜ‬رُ رخض‪ ٓ٠‬ػٕ‪ٛ‬اْ ثذا‪٠‬خ ِمطغ اٌج‪١‬بٔبد ‪ data‬ف‪ِ ٟ‬غغً اٌّمطغ ‪ds‬‬
‫ِالؽظخ‪ @data :‬ػجبسح ػٓ ػٕ‪ٛ‬اْ ا‪ ٞ‬ل‪ّ١‬خ ػذد‪٠‬خ رذي ػٍ‪ ٝ‬ثذا‪٠‬خ ِمطغ اٌج‪١‬بٔبد ‪data‬‬
‫‪ٚ segment‬وّب ٔؼٍُ ال ‪٠‬ؾك اْ ٔخضْ ل‪ّ١‬خ ػذد‪٠‬خ ثظ‪ٛ‬سح ِجبششح ف‪ِ ٟ‬غغً ِمطغ‬
‫ٌزٌه اعزخذِٕب اٌّغغً ‪ٚ ax‬ػؼٕب اٌم‪ّ١‬خ اٌؼذد‪٠‬خ ف‪ ٟ‬داخٍٗ صُ ٔغخٕب فؾ‪ ٜٛ‬اٌّغغً ‪ax‬‬
‫اٌ‪ ٝ‬اٌّغغً ‪ds‬‬

‫‪ّ٠‬ىٓ اْ ٔؾظً ػٍ‪ٔ ٝ‬فظ إٌز‪١‬غخ ثّغبػذح ‪seg‬‬


‫‪.model small‬‬
‫‪.data‬‬
‫‪x1 db 10‬‬
‫)?( ‪student db 5 dup‬‬
‫‪.code‬‬
‫‪start:‬‬
‫‪mov ax,seg x1‬‬
‫‪mov ds,ax‬‬
‫ٌمذ ؽظٍٕب ػٍ‪ ٝ‬ػٕ‪ٛ‬اْ ِمطغ اٌج‪١‬بٔبد ػٓ ؽش‪٠‬ك اعُ ِزغ‪١‬ش ف‪ ٟ‬داخٍٗ ‪seg ٚ‬‬

‫االيز ‪xlat‬‬

‫ف‪ ٟ‬ثؼغ االؽ‪١‬بْ ٔش‪٠‬ذ اْ ٔزشعُ عذ‪ٚ‬ي ِؼ‪ ٓ١‬اٌ‪ ٝ‬عذ‪ٚ‬ي اخش (ِضال ٌ‪ ٛ‬اسدٔب اْ ٔغ‪١‬ش‬
‫ل‪ّ١‬خ االعى‪ ٟ‬و‪ٛ‬د ف‪ ٟ‬اٌشِض اٌز‪٠ ٞ‬الئّٗ) ف‪٘ ٟ‬زٖ اٌؾبالد ٔغزخذَ االِش ‪XLAT‬‬
‫لجً اعزخذاَ االِش ‪ XLAT‬ػٍ‪ٕ١‬ب ِشاػبح اٌشش‪ٚ‬ؽ اٌزبٌ‪١‬خ‪:‬‬
‫‪.1‬ػٍ‪ٕ١‬ب رخض‪ ٓ٠‬اٌجب‪٠‬ذ اٌّشاد رشعّزٗ ف‪ ٟ‬اٌّغغً ‪ٚ AL‬فمؾ ف‪٘ ٟ‬زا اٌّغغً‬
‫‪.2‬اٌّغغً ‪٠ BX‬غت اْ ‪٠‬ؾز‪ ٞٛ‬ػٍ‪ ٝ‬ػٕ‪ٛ‬اْ عذ‪ٚ‬ي اٌزشعّخ‬

‫صُ ٔغغً االِش ‪ XLAT‬ػٕذ٘ب ‪٠‬م‪٘ َٛ‬زا االِش ثبالِ‪ٛ‬س اٌزبٌ‪١‬خ‪:‬‬


‫‪٠.1‬غّغ فؾ‪ ٜٛ‬اٌّغغً ‪ٚ AL‬اٌّغغً ‪ٚ BX‬ػٕذ٘ب ٔؾظً ػٍ‪ ٝ‬ػٕ‪ٛ‬اْ داخً عذ‪ٚ‬ي‬
‫اٌزشعّخ (ا‪ ٞ‬إٔب ٔإشش ػٍ‪ ٝ‬ثب‪٠‬ذ ِؼ‪ ٓ١‬ف‪ ٟ‬عذ‪ٚ‬ي اٌزشعّخ ‪ٚ‬اٌز‪ ٞ‬ػٕ‪ٛ‬أٗ ػجبسح ػٓ‬
‫‪BX+AL‬‬
‫‪٠.2‬ؼغ فؾ‪ ٜٛ‬اٌجب‪٠‬ذ اٌز‪ ٞ‬ػٕ‪ٛ‬أٗ ‪ BX+AL‬ف‪ ٟ‬اٌّغغً ‪AL‬‬
‫ِضبي‪ :‬ف‪٘ ٟ‬زا اٌّضبي ‪ٛ٠‬عذ عذ‪ِ( ٓ١ٌٚ‬ظ‪ٛ‬فز‪ )ٓ١‬فغ‪ٛ‬ف ٔم‪ َٛ‬ثزشعّخ ؽذ‪ٚ‬د اٌّظف‪ٛ‬فخ‬
‫اال‪( ٌٝٚ‬اٌغذ‪ٚ‬ي اال‪ٚ‬ي) ػٓ ؽش‪٠‬ك عذ‪ٚ‬ي اٌزشعّخ اٌغذ‪ٚ‬ي اٌضبٔ‪:ٟ‬‬
‫‪. model small‬‬
‫‪.stack 10h‬‬
‫‪.data‬‬
‫‪table1 db‬‬
‫‪1,13,4,1,2,8,13,14,11,8,13,3,5,5,8,7,10,4,6,13,4,3,9,12,0,3,12,8‬‬
‫'‪table2 db 'u','i','k','a','l','s','y','m','e','n','b','h','g',' ','t‬‬
‫‪.code‬‬
‫‪start:mov ax,@data‬‬
‫‪mov ds,ax‬‬
‫ٕ٘ب ع‪ٛ‬ف ٔم‪ َٛ‬ثّغؼ اٌشبشخ;‬
‫‪mov ax,3‬‬
‫‪int 10h‬‬
‫ٔؼغ ف‪ ٟ‬اٌّغغً ‪ bx‬ػٕ‪ٛ‬اْ عذ‪ٚ‬ي اٌزشعّخ;‬
‫‪lea bx,table2‬‬
‫;‬ ‫اٌّغغً ‪ si‬ع‪ٛ‬ف ٔغزؼٍّٗ وّإشش ػٍ‪ ٝ‬ؽذ‪ٚ‬د اٌغذ‪ٚ‬ي اال‪ٚ‬ي ٌالٔزمبي ث‪ ٓ١‬اٌؾذ‪ٚ‬د‬

‫‪mov si,0‬‬
‫ٕ٘ب اٌّغغً ‪٠ cx‬ؾز‪ ٞٛ‬ػٍ‪ ٝ‬ػذد ؽذ‪ٚ‬د اٌغذ‪ٚ‬ي اٌز‪ٔ ٞ‬ش‪٠‬ذ اْ ٔزشعّٗ;‬
‫‪mov cx,28‬‬
‫ٕ٘ب ع‪ٛ‬ف رزُ ػٍّ‪١‬خ اٌزشعّخ ٌىً ؽذ ‪ ِٓٚ‬صُ ؽجبػخ اٌؾذ اٌز‪٠ ٞ‬الئّٗ ف‪ ٟ‬اٌغذ‪ٚ‬ي اٌضبٔ‪;ٟ‬‬
‫]‪next_item:mov al,table1[si‬‬
‫‪xlat‬‬
‫‪mov dl,al‬‬
‫‪mov ah,2‬‬
‫‪int 21h‬‬
‫‪inc si‬‬
‫‪loop next_item‬‬
‫أ‪ٙ‬بء اٌجشٔبِظ ‪ٚ‬اػطبء ٔظبَ اٌزشغ‪ ً١‬اٌغ‪١‬طشح;‬
‫‪mov ah,4ch‬‬
‫‪int 21h‬‬
‫‪end start‬‬

‫االيز ‪ )input( in‬وااليز ‪)output( out‬‬


‫ِٓ اٌّؼش‪ٚ‬ف أٗ ‪ّ٠‬ىٓ سثؾ اٌّؼبٌظ ‪ِ 8086‬غ ‪ 64‬و‪ ٍٛ١‬اع‪ٙ‬ضح ادخبي ‪ٚ‬اخشاط داخٍ‪١‬خ‪.‬‬
‫ٌىً ‪ٚ‬اؽذ ‪ٛ٠‬عذ ػٕ‪ٛ‬اْ ؽز‪٠ ٝ‬زّىٓ اٌّؼبٌظ ِٓ اٌزّ‪١١‬ض ث‪ٕٙ١‬ب‪.‬‬
‫‪ّ٠‬ىٓ ادخبي ‪ٚ‬اخشاط ث‪١‬بٔبد فمؾ ػٓ ؽش‪٠‬ك اٌّغغً ‪ AL‬ا‪ ٚ‬اٌّغغً ‪AX‬‬
‫ػٕذ اعزخذاَ االِش ‪ in‬ا‪ ٚ‬االِش ‪٠ OUT‬غت اْ ٔغغً ػٕ‪ٛ‬اْ اٌغ‪ٙ‬بصاٌّطٍ‪ٛ‬ة‬

‫اِضٍخ‪:‬‬
‫‪In AL,50H‬‬
‫٘زا ‪٠‬ؼٕ‪ ٟ‬ادخً اٌ‪ ٝ‬اٌّغغً ‪ AL‬فؾ‪ ٜٛ‬ع‪ٙ‬بص االدخبي اٌز‪ ٞ‬ػٕ‪ٛ‬أٗ ‪50H‬‬

‫‪OUT 50H,AL‬‬
‫٘زا ‪٠‬ؼٕ‪ ٟ‬اخشط فؾ‪ ٜٛ‬اٌّغغً ‪ٌ AL‬غ‪ٙ‬بص االخشاط اٌز‪ ٞ‬ػٕ‪ٛ‬أٗ ‪50H‬‬
‫‪IN AX,80H‬‬
‫٘زا ‪٠‬ؼٕ‪ ٟ‬ادخً فؾ‪ ٜٛ‬ع‪ٙ‬بص االدخبي طبؽت ػٕ‪ٛ‬اْ ‪ٌٍّ 80H‬غغً ‪ٚ AL‬فؾ‪ٜٛ‬‬
‫ع‪ٙ‬بص االدخبي طبؽت ػٕ‪ٛ‬اْ ‪ٌٍّ 81H‬غغً ‪AH‬‬
‫‪OUT 90H,AX‬‬
‫٘زا ‪٠‬ؼٕ‪ ٟ‬اخشط فؾ‪ ٜٛ‬اٌّغغً ‪ٌ AL‬غ‪ٙ‬بص االخشاط طبؽت اٌؼٕ‪ٛ‬اْ ‪ٚ 90H‬فؾ‪ٜٛ‬‬
‫اٌّغغً ‪ٌ AH‬غ‪ٙ‬بص االخشاط طبؽت ػٕ‪ٛ‬اْ ‪91H‬‬
‫ف‪ ٟ‬ؽبٌخ ارا وبْ ػٕ‪ٛ‬اْ اٌغ‪ٙ‬بصاٌّطٍ‪ٛ‬ة اوجش ِٓ ‪ 255‬ا‪ FFH ٞ‬ػٕذ٘ب ٔغزخذَ‬
‫اٌّغغً ‪ DX‬وّإشش‬
‫ِضبي‪:‬‬
‫‪MOV DX,301H‬‬
‫‪IN AL,DX‬‬
‫ٕ٘ب ‪٠‬زُ ادخبي فؾ‪ ٜٛ‬ع‪ٙ‬بصاالدخبي طبؽت ػٕ‪ٛ‬اْ ‪ 301H‬اٌ‪ ٝ‬اٌّغغً ‪AL‬‬

‫االِش ‪ٚ PUSHF‬االِش ‪POPF‬‬


‫االِش ‪٠ : PUSHF‬م‪ َٛ‬ثزخض‪ ٓ٠‬فؾ‪ِ ٜٛ‬غغً اٌشا‪٠‬بد ف‪ِ ٟ‬مطغ اٌّىذعخ ( ‪STACK‬‬
‫‪)SEGMENT‬‬

‫االِش ‪٠ : POPF‬م‪٘ َٛ‬زا االِش ثٕغخ اٌىٍّخ اٌّ‪ٛ‬ع‪ٛ‬دح ف‪ ٟ‬ساط اٌّىذعخ اٌ‪ِ ٝ‬غغً‬
‫اٌشا‪٠‬بد‬
‫‪ّ٠‬ىٓ اعزخذاَ ٘زٖ اال‪ٚ‬اِش ػٕذِب ٔش‪٠‬ذ اْ ٔغأي ػٓ ل‪ّ١‬خ سا‪٠‬خ ِؼ‪ٕ١‬خ ثذ‪ ْٚ‬اْ ٔؼًّ‬
‫ػٍّ‪١‬خ رإصش ػٍ‪ ٝ‬اٌشا‪٠‬خ ‪ٚ‬ثم‪١‬خ اٌشا‪٠‬بد‬
‫ِضبي‪:‬‬
‫‪PUSHF‬‬
‫‪POP AX‬‬
‫‪ٚ‬االْ ‪ّ٠‬ىٓ اٌز‪ٛ‬عٗ اٌ‪ ٝ‬ا‪ ٞ‬سا‪٠‬خ ٔش‪٠‬ذ٘ب ػٓ ؽش‪٠‬ك اٌّغغً ‪AX‬‬
‫‪ٚ‬ا‪٠‬ؼب ‪ّ٠‬ىٓ اعزخذاَ ٘زٖ اال‪ٚ‬اِش ارا اسدٔب اْ ٔؼط‪ ٟ‬اٌشا‪٠‬بد ل‪ّ١‬خ ثذائ‪١‬خ‪ٔ .‬ؼغ ِضال ف‪ٟ‬‬
‫اٌّغغً ‪ BX‬اٌم‪ ُ١‬اٌّطٍ‪ٛ‬ثخ صُ ٔخضٔ‪ٙ‬ب ف‪ ٟ‬اٌّىذعخ ‪ٚ‬ثؼذ٘ب ٕٔغخ‪ٙ‬ب اٌ‪ِ ٝ‬غغً اٌشا‪٠‬بد‬
‫ِضال‪:‬‬
‫‪MOV BX,0000000001010001B‬‬
‫‪PUSH BX‬‬
‫‪POPF‬‬
‫ٕ٘ب رُ اٌزؾىُ ف‪ ٟ‬اٌشا‪٠‬بد ‪ٚ CF=AF=ZF=1‬ثبل‪ ٟ‬اٌشا‪٠‬بد ل‪ّ١‬ز‪ٙ‬ب طفش‬

‫اٌ‪ ٝ‬اٌٍمبء ف‪ ٟ‬اٌذسط اٌمبدَ‬

‫انسالو عهُكى‬

‫ف‪٘ ٟ‬زا اٌذسط ع‪ٛ‬ف ٔزطشق اٌ‪ِٛ ٝ‬ػ‪ٛ‬ع اٌّبوش‪ٚ‬‬


‫اٌّبوش‪ٛ٘ : ٚ‬ػجبسح ػٓ ِغّ‪ٛ‬ػخ ا‪ٚ‬اِش ٌ‪ٙ‬ب اعُ ‪ّ٠ٚ‬ىٓ اعزذػبء ٘زٖ ِغّ‪ٛ‬ػخ اال‪ٚ‬اِش‬
‫ػٓ ؽش‪٠‬ك رغغ‪ ً١‬اعُ اٌّبوش‪ّ٠ .ٚ‬ىٓ اعزذػبء اٌّبوش‪ ٚ‬اوضش ِٓ ِشح ف‪ ٟ‬اٌجشٔبِظ‪.‬‬
‫ف‪ّ١‬ىٓ اٌم‪ٛ‬ي اْ العزخذاَ اٌّبوش‪ ٚ‬ػذح ف‪ٛ‬ائذ ِٕ‪ٙ‬ب‪:‬‬
‫‪.1‬رمٍ‪ ً١‬االخطبء ف‪ّ١‬ىٓ رغغ‪ ً١‬اعُ اٌّبوش‪ ٚ‬ثذال ِٓ وزبثخ اال‪ٚ‬اِش ِشح صبٔ‪١‬خ ‪٘ٚ‬زا ‪٠‬مًٍ‬
‫ِٓ اٌ‪ٛ‬ل‪ٛ‬ع ف‪ ٟ‬اخطبء اِالئ‪١‬خ‬
‫‪.2‬ص‪٠‬بدح اٌجشٔبِظ ‪ٚ‬ػ‪ٛ‬ؽب ‪ .‬فجذال ِٓ وزبثخ ا‪ٚ‬اِش فبٕٔب ٔغغً وٍّبد ػبد‪٠‬خ ِف‪ِٛٙ‬خ ‪ٟ٘ٚ‬‬
‫اعّبء اٌّبوش‪ٚ ٚ‬رذي ػٍ‪ِ ٝ‬ب ‪٠‬ؼٍّٗ ٘زا اٌّبوش‪ٚ‬‬
‫‪.3‬عشػخ اٌزغ‪١١‬ش‪ :‬ارا اسدٔب اْ ٔؼ‪١‬ف ا‪ٔ ٚ‬ؾزف ا‪ٚ‬اِش ِؼ‪ٕ١‬خ فجذال ِٓ اعشاء ٘زٖ‬
‫اٌزغ‪١١‬شاد ف‪ ٟ‬عّ‪١‬غ االِبوٓ اٌز‪ ٟ‬رز‪ٛ‬اعذ ث‪ٙ‬ب ٘زٖ اال‪ٚ‬اِش فؼٕذ اعزخذاَ اٌّبوش‪٠ ٚ‬ىف‪ ٟ‬اْ‬
‫ٔغ‪١‬ش ف‪ ٟ‬اٌّبوش‪.ٚ‬‬
‫‪.4‬ص‪٠‬بدح عشػخ اٌجشٔبِظ الْ اٌّبوش‪٠ ٚ‬ضسع اال‪ٚ‬اِش اٌز‪٠ ٟ‬ؾز‪ٙ٠ٛ‬ب ف‪ ٟ‬اٌّىبْ اٌز‪ٞ‬‬
‫ٔغزذػ‪ ٗ١‬ف‪ٗ١‬‬
‫ِالؽظخ‪ :‬اٌّبوش‪٠ ٚ‬ىجش ؽغُ اٌجشٔبِظ ‪٘ٚ‬زا ‪٠‬ؼذ طفخ عٍج‪١‬خ ٌٍّبوش‪ٚ‬‬
‫أ‪ٛ‬اع اٌّبوش‪ٚ‬‬
‫‪ّ٠‬ىٓ رمغ‪ ُ١‬اٌّبوش‪ ٚ‬ؽغت ػذح ِ‪ٛ‬اطفبد ٔأخز اٌزمغ‪ ُ١‬اال‪ٚ‬ي‬
‫‪ٕ٘.1‬بٌه أ‪ٛ‬اع ال رأخز ثشاِزشاد‬
‫‪ٕ٘.2‬بٌه أ‪ٛ‬اع رأخز ثشاِزشاد‬
‫ِبوش‪ ٚ‬ثذ‪ ْٚ‬ثشاِزشاد‬
‫اٌّجٕ‪ ٝ‬اٌؼبَ ٌٍّبوش‪ ٚ‬اٌز‪ ٞ‬ال ‪٠‬أخز ثشاِزشاد ٘‪ٛ‬وّب ‪:ٍٟ٠‬‬
‫‪Macro name macro‬‬
‫اال‪ٚ‬اِش‬
‫‪Endm‬‬
‫ِضبي ‪ :‬اوزت ِبوش‪٠ ٚ‬م‪ َٛ‬ثّغؼ اٌشبشخ‪:‬‬
‫اٌؾً‪:‬‬
‫‪Clear_screen macro‬‬
‫‪Mov ax,3‬‬
‫‪Int 10h‬‬
‫‪Endm‬‬
‫ِضبي اخش‬
‫اوزت ِبوش‪٠ ٚ‬طجغ ‪٠‬غزمجً ِٓ ٌ‪ٛ‬ؽخ اٌّفبر‪١‬ؼ سِضا‬
‫اٌؾً‪:‬‬
‫‪Read_char macro‬‬
‫‪Mov ah,1‬‬
‫‪Int 21h‬‬
‫‪Endm‬‬
‫ِضبي اخش‬
‫اوزت ِبوش‪٠ ٚ‬طجغ ٔغّخ ػٍ‪ ٝ‬اٌشبشخ‬
‫اٌؾً‪:‬‬
‫‪Print_star macro‬‬
‫'*'‪Mov dl,‬‬
‫‪Mov ah,2‬‬
‫‪Int 21h‬‬
‫‪Endm‬‬
‫ِالؽظبد‪ :‬ػٍ‪١‬ه االٔزجبٖ اٌ‪ِ ٝ‬ب ‪:ٍٟ٠‬‬
‫‪.1‬ػٍ‪١‬ه اْ رؾفع ل‪ ُ١‬اٌّغغالد اٌز‪ ٟ‬ع‪ٛ‬ف رغزخذِ‪ٙ‬ب ف‪ ٟ‬اٌّبوش‪ ٚ‬ارا وبٔذ رؾز‪ ٞٛ‬ػٍ‪ٝ‬‬
‫ل‪ِّٙ ُ١‬خ ثبٌٕغجخ ٌه ‪ٚ‬أذ ثؾبعخ اٌ‪ٙ١‬ب الْ ا‪ٚ‬اِش اٌّبوش‪ ٚ‬ع‪ٛ‬ف رغ‪١‬ش اٌم‪ٕ٘ .ُ١‬بٌه ػذح‬
‫ؽشق ٌؾفع ل‪ ُ١‬اٌّغغالد ٔزوش ِٕ‪ٙ‬ب‪:‬‬
‫أ‪.‬لجً اعزذػبء اٌّبوش‪ٔ ٚ‬م‪ َٛ‬ثزخض‪ ٓ٠‬اٌم‪ ُ١‬ف‪ِ ٟ‬غغالد صبٔ‪١‬خ ا‪ٔ ٚ‬خضٔ‪ٙ‬ب ف‪ ٟ‬اٌزاوشح ‪ٚ‬ثؼذ‬
‫االٔز‪ٙ‬بء ِٓ اٌّبوش‪ٔ ٚ‬شعغ اٌم‪ُ١‬‬
‫ِضبي‪:‬‬
‫‪Mov bx,ax‬‬
‫‪Clear_screen‬‬
‫‪Mov ax,bx‬‬
‫ٔالؽع ٕ٘ب إٔب لّٕب ثؾفع ل‪ّ١‬خ اٌّغغً ‪ ax‬ف‪ ٟ‬اٌّغغً ‪ bx‬لجً اعزذػبء اٌّبوش‪ٚ ٚ‬ثؼذ‬
‫اعزذػبء اٌّبوش‪ ٚ‬رّذ ػٍّ‪١‬خ اسعبع اٌم‪ّ١‬خ اٌ‪ ٝ‬اٌّغغً ‪ax‬‬
‫ة‪ّ٠.‬ىٓ اْ ٔؾفظ‪ٙ‬ب ف‪ ٟ‬داخً اٌّبوش‪ ٚ‬لجً اٌم‪١‬بَ ف‪ ٟ‬اال‪ٚ‬اِش اٌشئ‪١‬غ‪١‬خ ِضال‬
‫‪Clear_screen macro‬‬
‫‪Push ax‬‬
‫‪Mov ax,3‬‬
‫‪Int 10h‬‬
‫‪Pop ax‬‬
‫‪Endm‬‬
‫ٔالؽع ف‪ ٟ‬اٌزّش‪ ٓ٠‬اٌغبثك إٔب ؽفظٕب اٌّبوش‪ ٚ‬ف‪ ٟ‬اٌّىذعخ (‪ ) stack segment‬لجً اْ‬
‫ٔم‪ َٛ‬ثؼٍّ‪١‬خ ِغؼ اٌشبشخ ‪ٚ‬لجً اٌخش‪ٚ‬ط ِٓ اٌّبوش‪ ٚ‬رّذ ػٍّ‪١‬خ اسعبع اٌم‪ ِٓ ُ١‬اٌّىذعخ‬
‫‪ّ٠.2‬ىٓ اعزذػبء ِبوش‪ ِٓ ٚ‬داخً ِبوش‪ ٚ‬اخش‬
‫ِضبي‪:‬‬
‫ؽ‪ٛ‬س ِبوش‪٠ ٚ‬م‪ َٛ‬ثّغؼ اٌشبشخ ‪ٚ‬اعزمجبي سِض ِٓ ٌ‪ٛ‬ؽخ اٌّفبر‪١‬ؼ صُ ‪٠‬طجغ اٌشِض‬
‫اٌؾً‪:‬‬
‫‪Print_mac macro‬‬
‫‪Clear_screen‬‬
‫‪Read_char‬‬
‫‪Mov dl,al‬‬
‫‪Mov ah,2‬‬
‫‪Int 21h‬‬
‫‪Endm‬‬
‫ٕ٘ب رُ اعزذػبء اٌّبوش‪ٚ clear_screen ٚ‬اٌّبوش‪readl_char ٚ‬‬
‫‪.3‬ػٕذِب ٔغزخذَ ‪( LEBLE‬ػٕ‪ٛ‬اْ) ف‪ ٟ‬اٌّبوش‪٠ ٚ‬غت اْ ٔؼشف‪ٙ‬ب ثّغبػذح اٌىٍّخ‬
‫اٌّؾف‪ٛ‬ظخ ‪ LOCAL‬أ‪ ٞ‬إٔب ٔم‪ٛ‬ي ٌجشٔبِظ اٌزشعّخ ثبْ ٘زا اٌؼٕ‪ٛ‬اْ ٘‪ ٛ‬ػجبسح ػٓ‬
‫ػٕ‪ٛ‬اْ ِؾٍ‪ِ ٟ‬ؼش‪ٚ‬ف ف‪ ٟ‬اٌّبوش‪ ٚ‬فمؾ ‪.‬‬
‫ِالؽظخ‪ :‬ػٕذ اعزخذاَ ػٕ‪ٛ‬اْ ‪ٚ‬اٌز‪ٛ‬عٗ اٌ‪ ٗ١‬اوضش ِٓ ِشح ػٓ ؽش‪٠‬ك ا‪ٚ‬اِش اٌّبوش‪ ٚ‬ا‪ٚ‬‬
‫اعزذػبء اٌّبوش‪ٚ‬اوضش ِٓ ِشح فبْ ثشٔبِظ اٌزشعّخ ع‪ٛ‬ف ‪٠‬ؼٍٓ ػٓ خطأ‬
‫ِضبي‪:‬‬
‫اوزت ِبوش‪٠ ٚ‬طجغ االسلبَ ِٓ ‪ 0‬اٌ‪9 ٝ‬‬
‫اٌؾً‪:‬‬
‫‪Print_numbers macro‬‬
‫‪Local t1‬‬
‫‪Mov cx,10‬‬
Mov dl,'0'
T1:mov ah,2
Int 21h
Inc dl
Loop t1
Endm
ٓ١‫ٔفظً ث‬ٚ ٓ٠ٚ‫ ٔغغً اٌؼٕب‬ٚ‫ اٌّبوش‬ٟ‫ ف‬ٍٟ‫اْ ِؾ‬ٕٛ‫ٕب اوضش ِٓ ػ‬٠‫ ارا وبْ ٌذ‬:‫ِالؽظخ‬
‫ٓ ثّغبػذح فبطٍخ‬٠ٚ‫اٌؼٕب‬
Local t1,t2,t3
exitm ‫ ٔغزخذَ االِش‬ٚ‫خ اٌّبوش‬٠‫ب‬ٙٔ ً‫ لج‬ٞ‫ذ٘ب أ‬٠‫ ٔمطخ ٔش‬ٞ‫ ِٓ أ‬ٚ‫ط ِٓ اٌّبوش‬ٚ‫ٌٍخش‬.4
:‫ِضبي‬
Check macro
Local t1,t2
Mov cx,10
T1:Mov ah,1
Int 21h
Cmp al,'B'
Jz t2
Inc dh
exitm
T2:dec dh
loop t1
endm
exitm َ‫ْ اعزخذا‬ٚ‫ؽً اخش ثذ‬

Check macro
Local t1,t2,t3
Mov cx,10
T1:Mov ah,1
Int 21h
Cmp al,'B'
Jz t2
Inc dh
Jmp t3
T2:dec dh
loop t1
t3:nop
endm
ٓ١‫ؽخ ِشر‬ٛ‫ ٔغزخذَ اٌفبطٍخ إٌّم‬ٚ‫ داخً اٌّبوش‬ٟ‫ ارا اسدٔب اْ ٔغغً ِالؽظبد ف‬.5
:‫ِضبي‬
Print_char macro
Mov ah,1 ;;put 1 in ah
Int 21h
Mov dl,al ;;put the ascii_code of the char in dl
Mov ah,2
Int 21h
Endm
:ٍٟ٠ ‫ٕفز ِب‬٠ ‫اوزت ثشٔبِغب‬
‫ٕظف اٌشبشخ‬٠.1
enter a char ‫ اٌشبشخ اٌغٍّخ‬ٍٝ‫طجغ ػ‬٠.2
‫ؼ‬١‫ؽخ اٌّفبر‬ٌٛ ِٓ ‫غزمجً سِضا‬٠.3
‫ذ‬٠‫ٕضي عطش عذ‬٠.4
[0..9] ُ‫ارا وبْ اٌشِضػجبسح ػٓ سل‬.5
‫ اٌجشٔبِظ‬ٟٙ‫ٕز‬٠ٚ ‫طجغ اٌشِض‬٠ ‫ػٕذ٘ب‬
2 ‫ اٌفشع‬ٌٝ‫شعغ ا‬٠ٚ ‫طجغ ٔغّخ‬٠ٚ ‫ٕظف اٌشبشخ‬٠ ‫اال‬ٚ

:ً‫اٌؾ‬
.model small
.stack 20h
.data
NL db 10,13,'$'
msg db 'enter a char$'
clear_screen macro
mov ax,3
int 10h
endm
print_char macro
mov dl,al
mov ah,2
int 21h
endm
read_char macro
mov ah,1
int 21h
endm
new_line macro
lea dx,NL
mov ah,9
int 21h
endm
print_msg macro
lea dx,msg
mov ah,9
int 21h
endm
.code
start: mov ax,@data
mov ds,ax
clear_screen
t2:print_msg
read_char
mov bl,al
new_line
sub bl,30h
cmp bl,9
ja t1
add bl,30h
mov al,bl
print_char
jmp finish
t1:clear_screen
mov al,'*'
print_char
jmp t2
finish:mov ah,4ch
‫‪int 21h‬‬
‫‪end start‬‬

‫اٌغالَ ػٍ‪١‬ىُ‬
‫٘زا اٌذسط اٌغضء اٌضبٔ‪ ِٓ ٟ‬دسط اٌّبوش‪ٚ‬‬
‫اٌّبوش‪ ٚ‬اٌز‪٠ ٞ‬أخز ثشاِزشاد‬
‫اٌّجٕ‪ ٝ‬اٌؼبَ ٌٍّبوش‪ِ ٚ‬غ ثشاِزشاد‬
‫‪Macro name macro p1,p2,….,pn‬‬
‫اال‪ٚ‬اِش‬
‫‪Endm‬‬
‫‪ ٟ٘ : P1,p2,…pn‬اٌجشاِزشاد‬
‫ِضبي ‪:‬‬
‫اوزت ِبوش‪٠ ٚ‬زٍم‪ ٝ‬ثشاِزش‪ٛٔ ِٓ ٓ٠‬ع ‪٠ٚ byte‬ؾفع ثبٌّغغً ‪ al‬اٌجشاِزش االوجش‬
‫‪Max_num macro x,y‬‬
‫‪Local t1,finish‬‬
‫‪Mov al,x‬‬
‫‪Cmp y,al‬‬
‫‪Jg t1‬‬
‫‪Jmp finish‬‬
‫‪T1:mov al,y‬‬
‫‪Finish:‬‬
‫‪Endm‬‬
‫ِالؽظخ‪ :‬ػٕذِب ٔش‪٠‬ذ اعزخذاَ اٌّبوش‪ ٚ‬ف‪ِٛ ٟ‬لغ ِؼ‪ ٓ١‬ف‪ ٟ‬اٌجشٔبِظ ٔغغً اعُ‬
‫اٌّبوش‪ٔٚٚ‬غغً اٌجشاِزشاد اٌّطٍ‪ٛ‬ثخ‪.‬‬
‫ِضال ف‪ ٟ‬ؽبٌخ اعزذػبء اٌّبوش‪ٚ‬اٌغبثك ٔغغً‬
‫‪Max_num DH,DL‬‬
‫ٕ٘ب رُ اػطبء اٌّبوش‪ ٚ‬اٌّغغالد ‪ DL ٚ DH‬وجشاِزشاد‬

‫‪Max_num 7,9‬‬
‫ٕ٘ب رُ اػطبء اٌّبوش‪ ٚ‬اٌم‪ 9 ، 7 ُ١‬وجشاِزشاد‬
‫‪Max_num x1,x2‬‬
‫ٕ٘ب رُ اػطبء اٌّبوش‪ِ ٚ‬زغ‪١‬ش‪ x1 , x2 ٓ٠‬وجشِزشاد‬
‫ف‪ ٟ‬وض‪١‬ش ِٓ اٌؾبالد ‪٠‬فؼً اعزخذاَ اٌّبوش‪ِ ٚ‬غ ثشاِزشاد الٔٗ ‪٠‬ؼط‪ٕ١‬ب اِىبٔ‪١‬خ اعزخذاَ‬
‫اٌّبوش‪ٌ ٚ‬ؼذح ػٍّ‪١‬بد‪.‬‬
‫بٔبد‬١‫ ِمطغ اٌج‬ٟ‫ ف‬ٝ‫ِؼط‬:‫ِضبي‬
.data
NL db 10,13,'$'
Msg1 db 'enter the first number….$'
Msg2 db 'enter the second number..$'
Msg3 db 'your number is out the range$'
‫ْ ثشاِزشاد‬ٚ‫ٌىٓ ثذ‬ٚ ‫ثخ‬ٍٛ‫اد اٌّط‬ٚ‫االْ ٔغغً اٌّبوش‬
‫ذ‬٠‫ عطش عذ‬ٌٝ‫ي ا‬ٚ‫ي ػٓ إٌض‬ٚ‫ ِغإ‬ٚ‫٘زا اٌّبوش‬
New_line macro
Lea dx,NL
Mov ah,9
Int 21h
Endm
ٌٝٚ‫ي ػٓ ؽجبػخ اٌغٍّخ اال‬ٚ‫ ِغإ‬ٚ‫٘زا اٌّبوش‬
Print_msg1 macro
Lea dx,msg1
Mov ah,9
Int 21h
Endm
‫خ‬١ٔ‫ي ػٓ ؽجبػخ اٌغٍّخ اٌضب‬ٚ‫ ِغإ‬ٚ‫٘زا اٌّبوش‬
Print_msg2 macro
Lea dx,msg2
Mov ah,9
Int 21h
Endm
‫ي ػٓ ؽجبػخ اٌغٍّخ اٌضبٌضخ‬ٚ‫ ِغإ‬ٚ‫٘زا اٌّبوش‬
Print_msg3 macro
Lea dx,msg3
Mov ah,9
Int 21h
Endm

ً‫ داخً اٌجشٔبِظ ٔغغ‬ٟ‫ف‬ٚ

New_line
‫‪Print_msg1‬‬
‫‪Print_msg2‬‬
‫‪Print_msg3‬‬
‫ٔالؽع ِٓ اٌؼٍّ‪١‬بد اٌغبثمخ إٔب ثؾبعخ اٌ‪ِ ٝ‬بوش‪ٌ ٚ‬ىً ػٍّ‪١‬خ‬
‫اٌؾً االِضً ٘‪ ٛ‬اعزخذاَ ِبوش‪ِ ٚ‬غ ثشاِزشاد‬
‫اٌؾً‪:‬‬
‫‪Print_mac macro x‬‬
‫‪Lea dx,x‬‬
‫‪Mov ah,9‬‬
‫‪Int 21h‬‬
‫‪Endm‬‬

‫‪ٚ‬ف‪ ٟ‬داخً اٌجشٔبِظ ٔغغً‬

‫‪Print_mac NL‬‬
‫‪Print_mac msg1‬‬
‫‪Print_mac msg2‬‬
‫‪Print_mac msg3‬‬
‫وّب ٔالؽع أٗ ثّغبػذح ِبوش‪ٚ ٚ‬اؽذ ِٓ ٔ‪ٛ‬ع ِبوش‪ِ ٚ‬غ ثشاِزشاد رُ اعشاء عّ‪١‬غ‬
‫اٌؼٍّ‪١‬بد اٌغبثمخ‪.‬‬
‫االْ ٕٔزمً اٌ‪ٛٔ ٝ‬ع عذ‪٠‬ذ ‪ٛ٘ٚ‬اٌّبوش‪ ٚ‬اٌّزىشس‬
‫‪ِ ٛ٘ٚ‬بوش‪٠ ٚ‬م‪ َٛ‬ثزٕف‪١‬ز ِغّ‪ٛ‬ػخ اال‪ٚ‬اِش اٌّ‪ٛ‬ع‪ٛ‬دح ف‪ ٗ١‬ػذد ِشاد ِؼش‪ٚ‬فخ ِغجمب‬
‫‪٠‬غغً ٘زا اٌّبوش‪ ٚ‬ثشىً ػبَ داخً ِمطغ اٌج‪١‬بٔبد‬
‫اٌّجٕ‪ ٝ‬اٌؼبَ ٌ‪ٙ‬زا اٌّبوش‪ٚ‬‬
‫‪Rept n‬‬
‫اال‪ٚ‬اِش‬
‫‪Endm‬‬
‫ثؾ‪١‬ش ‪ n‬ػجبسح ػٓ ل‪ّ١‬خ ػذد‪٠‬خ ا‪ ٚ‬رؼج‪١‬شا ‪٠‬شعغ ل‪ّ١‬خ ػذد‪٠‬خ ا‪ ٚ‬اعُ صبثذ ِٓ اٌض‪ٛ‬اثذ‬
‫اٌّؼشفخ ف‪ ٟ‬اٌجشٔبِظ ا‪ ٚ‬اِش ‪٠‬شعغ ل‪ّ١‬خ ػذد‪٠‬خ ‪ .‬ثبالخزظبس اٌّ‪ ُٙ‬اْ ‪٠‬ى‪ ْٛ‬ل‪ّ١‬خ ػذد‪٠‬خ‬
‫ِضبي‪:‬‬
‫اوزت ِبوش‪٠ ٚ‬طجغ إٌغّخ ‪ِ 5‬شاد‬
‫‪Rept 5‬‬
‫'*'‪Mov dl,‬‬
‫‪Mov ah,2‬‬
‫‪Int 21h‬‬
Endm
:ٌٟ‫ اٌزب‬ٚ‫ٕفز اٌّبوش‬٠ ‫ ِبرا‬:‫عإاي‬
Rept 4
Add ax,2
Endm
‫خ‬١ٌ‫اِش اٌزب‬ٚ‫شٖ ثبال‬١١‫ّىٓ رغ‬٠ ‫ اٌغبثك‬ٚ‫ اٌّبوش‬:‫اة‬ٛ‫اٌغ‬
Add ax,2
Add ax,2
Add ax,2
Add ax,2
ax ً‫ ٌٍّغغ‬8 ‫غّغ‬٠ ٗٔ‫ ا‬ٞ‫أ‬
ٚ‫ ٔفظ اٌغطش ثّغبػذح اٌّبوش‬ٍٝ‫خ ػ‬٠‫ض‬١ٍ‫َ ثطجبػخ االؽشف االٔغ‬ٛ‫م‬٠ ٌٟ‫اٌّضبي اٌزب‬
.‫اٌّزىشس‬
.model small
.stack 20h
.data
Clear_screen macro
Mov ax,3
Int 10h
Endm
.code
start: mov ax,@data
mov ds,ax
clear_screen
mov dl,'A'
rept 26
mov ah,2
int 21h
inc dl
endm
finish:mov ah,4ch
int 21h
end start
َ‫زُ اعزخذا‬٠ ‫ٌىٓ ٕ٘ب‬ٚ ‫ ِزىشس‬ٚ‫ؼب ِبوش‬٠‫ ا‬ٛ٘ٚ ٚ‫ع اخش ِٓ اٌّبوش‬ٛٔ ٌٝ‫االْ ٕٔزمً ا‬
‫س‬ٚ‫ٗ اٌذ‬١ٌ‫ظً ا‬٠ ٞ‫سح ٔغزخذَ ثشاِزش اٌز‬ٚ‫ وً د‬ٟ‫غ اٌجشاِزشاد ف‬١ّ‫ع‬
َ‫ اٌؼب‬ٕٝ‫اٌّج‬
Irp name1, <arg1,arg2,arg3,….,argN>
‫اِش اٌّشاد رىشاس٘ب‬ٚ‫ػخ اال‬ّٛ‫ِغ‬
Endm
:‫ِضبي‬
Irp num , <10,20,30>
Add ax,num
Endm
‫خ‬١ٌ‫اِش اٌزب‬ٚ‫ٕفز اال‬٠ ‫ اٌغبثك‬ٚ‫اٌّبوش‬
Add ax,10
Add ax,20
Add ax,30
ax ً‫ ٌٍّغغ‬60 ‫ثبالخزظبس رُ اػبفخ‬
‫ِضبي اخش‬
Irp push_reg, <ax,bx,cx,dx>
Push push_reg
Mov push_reg,0
End
:‫خ‬١ٌ‫اِش اٌزب‬ٚ‫ٕفز اال‬٠ ‫اٌغبثك‬ٚ‫اٌّبوش‬
Push ax
Mov ax,0
Push bx
Mov bx,0
Push cx
Mov cx,0
Push dx
Mov dx,0
‫اٌذ‪ٚ‬اي‬
‫رغزخذَ اٌذ‪ٚ‬اي ٌزغ‪ ً١ٙ‬ػٍّ‪١‬خ اٌجشِغخ ‪ٚ‬اعشاء اٌزغ‪١١‬شاد اٌغش‪٠‬ؼخ ‪ٚ‬رمٍ‪ٔ ً١‬غجخاٌ‪ٛ‬ل‪ٛ‬ع ف‪ٟ‬‬
‫أظش ِبدح اٌّبوش‪. ٚ‬االخطبء اٌىزبث‪١‬خ‬
‫اٌفشق ث‪ ٓ١‬اٌذاٌخ ‪ٚ‬اٌّبوش‪ٚ‬‬
‫اٌّبوش‪٠ ٚ‬إد‪ ٞ‬اٌ‪ ٝ‬عشػخ اٌجشٔبِظ ث‪ّٕ١‬ب اٌذ‪ٚ‬اي رخفف ِٓ عشػخ اٌجشٔبِظ الْ اٌّؼبٌظ ‪1.‬‬
‫‪٠‬م‪ َٛ‬ثبٌز‪ٛ‬عٗ اٌ‪ ٝ‬ا‪ٚ‬اِش اٌذاٌخ ثؼذاعزذػبئ‪ٙ‬ب ث‪ّٕ١‬ب اٌّبوش‪٠ ٚ‬ضسع ا‪ٚ‬اِشٖ ف‪ ٟ‬االِبوٓ‬
‫اٌّطٍ‪ٛ‬ثخ لجً اْ ‪٠‬ز‪ٛ‬عٗ اٌ‪ ٗ١‬اٌّؼبٌظ ٌزٕف‪١‬ز ا‪ٚ‬اِشٖ أ‪ ٞ‬أ‪ٙ‬ب عب٘ضح ٌٍزٕف‪١‬ز‬
‫اٌّبوش‪٠ ٚ‬ىجش ِٓ ؽغُ اٌجشٔبِظ الٔٗ ‪٠‬ضسع اال‪ٚ‬اِش ِٓ اٌجذا‪٠‬خ ث‪ّٕ١‬ب اٌذاٌخ فمؾ ػٕذ ‪2.‬‬
‫االعزذػبء رم‪ َٛ‬ثضسع اال‪ٚ‬اِش‬
‫اٌذاٌخ ثؾبعخ اٌ‪ِ ٝ‬ىذط ٌؾفع ػٕ‪ٛ‬اْ اٌؼ‪ٛ‬دح ث‪ّٕ١‬ب اٌّبوش‪١ٌ ٚ‬ظ ثؾبعخاٌ‪ ٝ‬اٌّىذط‪3.‬‬

‫٘‪ ٛ‬اِش ‪٠‬إد‪ ٞ‬اٌ‪ ٝ‬اٌمفض ٌؼٕ‪ٛ‬اْ ِؼ‪ ٓ١‬ف‪ ٟ‬اٌجشٔبِظ ثذ‪ ْٚ‬سع‪ٛ‬ع ‪ٌٚ‬ىٓ ػٕذ ‪jmp‬االِش‬
‫اعزذػبء داٌخ ِؼ‪ٕ١‬خ ف‪ٕٙ‬ب ‪٠‬زُ اٌمفضاٌ‪ِ ٝ‬غّ‪ٛ‬ػخ ا‪ٚ‬اِش ثؾ‪١‬ش ‪٠‬م‪ َٛ‬اٌّؼبٌظ ثزٕف‪١‬ز٘ب ‪ٚ‬ثؼذ‬
‫االٔز‪ٙ‬بء ِٓ رٕف‪١‬ز ٘زٖ اال‪ٚ‬اِش ‪٠‬زُ اٌشع‪ٛ‬ع اٌ‪ ٝ‬االِش اٌّ‪ٛ‬ع‪ٛ‬د ثؼذ االِش اٌز‪ ٞ‬اد‪ ٜ‬اٌ‪ٝ‬‬
‫‪.‬اعزذػبء اٌذاٌخ‬

‫٘‪ ٟ‬ػجبسح ػٓ ِمطغ ثشٔبِظ ‪٠‬زُ االٔزمبي اٌ‪ ٗ١‬ػٕذِب ٔم‪ َٛ‬ثبعزذػبء اٌذاٌخ ‪ٚ‬ف‪ٙٔ ٟ‬ب‪٠‬خ ‪:‬اٌذاٌخ‬
‫اٌّمطغ ‪٠‬غت اْ ‪٠‬ى‪ٕ٘ ْٛ‬بٌه اِش أ‪ٙ‬بء ٌٍّمطغ اٌز‪٠ ٞ‬شعغ اٌّؼبٌظ اٌ‪ ٝ‬االِش اٌز‪ٍٟ٠ ٞ‬‬
‫اِش االعزذػبء ٌزٌه ‪٠‬غت ػٍ‪ ٝ‬اٌّؼبٌظ اْ ‪٠‬ؾفع ػٕ‪ٛ‬اْ االِش اٌز‪٠ ٞ‬غت اٌشع‪ٛ‬ع اٌ‪ٗ١‬‬
‫‪٠stack segment .‬خضْ ػٕ‪ٛ‬اْ اٌشع‪ٛ‬ع ف‪ ٟ‬اٌّىذط ‪.‬لجً اْ ‪٠‬م‪ َٛ‬ثؼٍّ‪١‬خ اٌمفض‬

‫‪.‬ثّغبػذح ٘زا االِش ‪٠‬زُ اعزذػبء اٌذاٌخ ‪call :‬االِش‬


‫‪:‬اٌّجٕ‪ ٝ‬اٌؼبَ ٌالِش‬
‫اعُ اٌذاٌخ ‪Call‬‬
‫ػٕ‪ٛ‬اْ اٌشع‪ٛ‬ع ‪٠(stack segment).‬ؼغ ػٕ‪ٛ‬اْ اٌشع‪ٛ‬ع ف‪ ٟ‬اٌّىذط ‪call‬االِش‬
‫‪.‬ؽغت ٔ‪ٛ‬ع اٌذاٌخ ‪32bit‬ا‪16bit ٚ‬ثط‪ٛ‬ي‬

‫رأخز ػٕ‪ٛ‬اْ اٌذاٌخ اٌّشاد رٕف‪١‬ز٘ب ػٕذ اعزذػبء اٌذاٌخ ‪cs ٚip‬أ‪ip ٚ‬اٌّغغالد‬
‫ال ‪٠‬إصش ػٍ‪ِ ٝ‬غغً اٌشا‪٠‬بد ‪call‬االِش ‪ِ:‬الؽظخ‬

‫‪ret‬االِش‬
‫‪٠.‬غزخذَ ٘زا االِش ٌٍشع‪ٛ‬ع ِٓ اٌذاٌخ ‪ret‬االِش‬
‫‪ِret‬جٕ‪ ٝ‬االِش‬
‫‪Ret n‬‬
‫اٌز‪٠ ٟ‬غت رٕظ‪١‬ف‪ٙ‬ب ف‪ ٟ‬اٌّىذط ػٕذ اٌشع‪ٛ‬ع ِٓ )‪ّ٠(bytes‬ضً ػذد اٌجب‪٠‬زبد ‪n‬اٌشِض‬
‫‪.‬اٌذاٌخ‬
‫اٌّمظ‪ٛ‬د ثؼٍّ‪١‬خ اٌزٕظ‪١‬ف ٘‪ ٛ‬اٌمفض ػٓ اٌجب‪٠‬زبد ‪ٚ‬رٌىؼٓ ؽش‪٠‬ك رغ‪١١‬ش سأط اٌّىذط‬
‫‪SP‬اٌّغغً‬
‫‪n‬ثذ‪ret ْٚ‬ارا اسدٔب اْ ال ٔم‪ َٛ‬ثؼٍّ‪١‬خ رٕظ‪١‬ف ثب‪٠‬زبد ف‪ ٟ‬اٌّىذط ٔغغً االِش ‪ِ:‬الؽظخ‬
‫ال ‪٠‬إصش ػٍ‪ِ ٝ‬غغً اٌشا‪٠‬بد ‪ret‬االِش ‪ِ:‬الؽظخ‬
‫أ‪ٛ‬اع اٌذ‪ٚ‬اي‬
‫ٕ٘بٌه ٔ‪ٛ‬ػبْ ِٓ اٌذ‪ٚ‬اي‬
‫)‪ ٟ٘ٚ(code segment‬داٌخ اٌّ‪ٛ‬ع‪ٛ‬دح ف‪ٔ ٟ‬فظ ِمطغ اال‪ٚ‬اِش ‪:‬داٌخ لش‪٠‬جخ ‪1.‬‬
‫اٌشئ‪١‬غ‪ٟ‬‬
‫‪ ٟ٘ٚ.‬اٌذاٌخ اٌّ‪ٛ‬ع‪ٛ‬دح ف‪ِ ٟ‬مطغ ا‪ٚ‬اِش اخش ‪:‬اٌذاٌخ اٌجؼ‪١‬ذح ‪2.‬‬

‫اٌّجٕ‪ ٝ‬اٌؼبَ ٌذاٌخ لش‪٠‬جخ‬


‫‪Function_name proc near‬‬
‫ا‪ٚ‬اِش اٌذاٌخ‬
‫‪Function_name endp‬‬
‫‪ّ٠near‬ىٓ االعزغٕبء ػٓ اٌىٍّخ ‪ِ:‬الؽظخ‬
‫‪Function_name proc‬‬
‫ا‪ٚ‬اِش اٌذاٌخ‬
‫‪Function_name endp‬‬

‫‪ِ:‬ضبي‬
‫‪ٚ‬رفؾض ارا وبٔذ إٌز‪١‬غخ عبٌجخ ارا رؾمك ‪ٌٍّal‬غغً ‪10‬أوزت داٌخ لش‪٠‬جخ اٌز‪ ٟ‬رؼ‪١‬ف‬
‫‪ٚbl‬اال فبٔ‪ٙ‬ب رؼغ طفشف‪ ٟ‬اٌّغغً ‪bl‬ف‪ ٟ‬اٌّغغً ‪1‬اٌششؽ رؼغ‬
‫‪:‬اٌؾً‬
‫‪Add_num proc near‬‬
‫‪Add al,10‬‬
‫‪Cmp al,-1‬‬
‫‪Jg t1‬‬
‫‪Mov bl,1‬‬
‫‪Jmp t2‬‬
‫‪T1:mov bl,0‬‬
‫‪T2: Ret‬‬
‫‪Add_num endp‬‬

‫‪ِ:‬ضبي اخش‬
‫‪ٚ‬رفؾض ارا وبٔذ إٌز‪١‬غخ اوجش ِٓ ‪10‬ف‪ ٟ‬اٌؼذد ‪bl‬أوزت داٌخ اٌز‪ ٟ‬رؼشة اٌّغغً‬
‫ف‪ٚ0 ٟ‬اال فبٔ‪ٙ‬ب رؼ‪ٛ‬ع ‪dl‬ف‪ ٟ‬اٌّغغً ‪2‬ارا رؾمك اٌششؽ رؼغ ف‪ ٟ‬اٌم‪ّ١‬خ ‪50H‬‬
‫ف‪ٙٔ ٟ‬ب‪٠‬خ اٌذاٌخ ‪ ِٓstack‬اٌّىذط ‪4 bytes‬ػٍ‪١‬ه رٕظ‪١‬ف ‪dl .‬اٌّغغً‬
‫‪:‬اٌؾً‬
‫‪mul_num proc near‬‬
‫‪mov al,bl‬‬
‫‪mov cl,10‬‬
‫‪imul cl‬‬
‫‪cmp ax,50H‬‬
‫‪Jg t1‬‬
‫‪Mov dl,0‬‬
‫‪Jmp t2‬‬
‫‪T1:mov dl,2‬‬
‫‪T2: Ret 4‬‬
‫‪mul_num endp‬‬
‫اٌّجٕ‪ ٝ‬اٌؼبَ ٌذاٌخ ثؼ‪١‬ذح‬
‫‪Func_name proc far‬‬
‫ا‪ٚ‬اِش اٌذاٌخ‬
‫‪Func_name endp‬‬
‫اػطبء اٌجشاِزشاد ٌٍذ‪ٚ‬اي‬

‫‪ّ٠:‬ىٓ اػطبء اٌذاٌخ ثشاِزشاد ف‪ ٟ‬شىٍ‪ٓ١‬‬


‫ف‪٘ ٟ‬زٖ اٌؾبٌخ ٔؼط‪ ٟ‬اٌذاٌخ ط‪ٛ‬سح ِٓ اٌّزغ‪١‬ش ‪ٚ‬رم‪ َٛ‬اٌذاٌخ ثبعشاء ‪.by value :‬أ‬
‫اٌؼٍّ‪١‬بد اٌؾغبث‪١‬خ ‪ٚ‬اٌزغ‪١١‬شاد ػٍ‪ ٝ‬إٌغخخ ‪١ٌٚ‬ظ ػٍ‪ ٝ‬االطً ‪ٚ‬ف‪٘ ٟ‬زٖ اٌؾبٌخ ل‪ّ١‬خ‬
‫‪.‬اٌّزغ‪١‬ش االطٍ‪١‬خ ال رزغ‪١‬ش‬

‫ف‪٘ ٟ‬زٖ اٌؾبٌخ ٔؼط‪ ٟ‬اٌذاٌخ ػٕ‪ٛ‬اْ اٌّزغ‪١‬ش فؼٕذِب رم‪ َٛ‬اٌذاٌخ ‪.by reference :‬ة‬
‫‪.‬ثبعشاء رغ‪١١‬شاد ػٍ‪ ٝ‬اٌّزغ‪١‬ش فبٔ‪ٙ‬ب رإصش ػٍ‪ ٝ‬ل‪ّ١‬خ اٌّزغ‪١‬ش االطٍ‪١‬خ ا‪٠‬ؼب‬

‫ؽشق اسعبي اٌم‪ٌٍ ُ١‬ذاٌخ‬


‫‪ّ٠‬ىٓ اسعبي ل‪ٌٍ ُ١‬ذاٌخ ثطش‪٠‬مز‪ٓ١‬‬
‫ف‪٘ ٟ‬زٖ اٌؾبٌخ لجً اعزذػبء اٌذاٌخ ٔم‪ َٛ‬ثؾفع اٌم‪ ُ١‬ف‪ِ ٟ‬غغالد ‪:‬ثّغبػذ ِغغالد‪1.‬‬
‫‪ِ.‬ؼ‪ٕ١‬خ ‪ٚ‬ثؼذ٘ب ٔغزذػ‪ ٟ‬اٌذاٌخ ‪ٚ‬رز‪ٛ‬عٗ اٌذاٌخ اٌ‪٘ ٝ‬زٖ اٌّغغالد ‪ٚ‬رأخز اٌم‪ ُ١‬اٌّطٍ‪ٛ‬ثخ‬
‫‪ِ:‬ضبي‬
‫‪BX‬اوزت داٌخ رم‪ َٛ‬ثؼشة ل‪ّ١‬ز‪ٚ ٓ١‬ؽفع إٌز‪١‬غخ ف‪ ٟ‬اٌّغغً‬
‫‪:‬اٌؾً‬
‫‪mul_numbers proc near‬‬
‫‪mov al,bl‬‬
‫‪imul cl‬‬
‫‪mov bx,ax‬‬
‫‪Ret‬‬
‫‪mul_numbers endp‬‬
‫‪ٕ٘bl , cl‬ب ٔش‪ ٜ‬اْ اٌذاٌخ ع‪ٛ‬ف رأخز اٌم‪ ِٓ ُ١‬اٌّغغالد‬
‫‪:‬ف‪ ٟ‬اٌجشٔبِظ اٌشئ‪١‬غ‪ٔ ٟ‬غغً ِضال ِب ‪ٍٟ٠‬‬
‫‪Mov bl,5‬‬
‫‪Mov cl,8‬‬
‫‪Call mul_numbers‬‬
‫‪ٚ‬رُ اسعبي اٌجشاِزشاد ٌٍذاٌخ ػٓ ‪8‬ثبٌم‪ّ١‬خ ‪5‬ف‪ٕٙ‬ب اعزخذِٕب اٌذاٌخ اٌغبثمخ ٌؼشة اٌم‪ّ١‬خ‬
‫ؽش‪٠‬ك اٌّغغالد‬

‫ٕ٘ب لجً اعزذػبء اٌذاٌخ ٔم‪ َٛ‬ثبسعبي اٌم‪ ُ١‬اٌ‪ ٝ‬اٌّىذط ‪ٚ‬ثؼذ٘ب ‪(stack):‬اٌّىذط ‪2.‬‬
‫‪ٚmov‬االِش ‪ٔbp‬غزذػ‪ ٟ‬اٌذاٌخ ‪ٚ‬رم‪ َٛ‬اٌذاٌخ ثبخز اٌم‪ ِٓ ُ١‬اٌّىذط ثّغبػذح اٌّغغً‬

‫‪٠‬م‪ َٛ‬ثبعزذػبء اٌذاٌخ اٌّطٍ‪ٛ‬ثخ ‪ٚ‬ا‪٠‬ؼب ‪٠‬م‪ َٛ‬ثبدخبي ػٕ‪ٛ‬اْ ‪call‬رزوش اْ االِش ‪ِ:‬الؽظخ‬
‫داٌخ (ثذ ‪32‬ا‪) ٚ‬داٌخ لش‪٠‬جخ(ثذ ‪16‬اٌشع‪ٛ‬ع ا‪٠‬ؼب ف‪ ٟ‬اٌّىذط ‪٘ٚ‬زا اٌؼٕ‪ٛ‬اْ ثط‪ٛ‬ي‬
‫ارا اٌم‪ِٛ ُ١‬ع‪ٛ‬دح ف‪ ٟ‬اٌخال‪٠‬ب اٌز‪ ٟ‬رؾذ اٌخال‪٠‬ب اٌز‪ ٟ‬رؾز‪ ٞٛ‬ػٍ‪ ٝ‬ػٕ‪ٛ‬اْ اٌؼ‪ٛ‬دح ا‪) ٚ‬ثؼ‪١‬ذح‬
‫اٌشع‪ٛ‬ع‬

‫‪:‬رّش‪ٓ٠‬‬
‫ػٓ ؽش‪٠‬ك اٌّىذط رم‪(word) َٛ‬اوزت داٌخ لش‪٠‬جخ اٌز‪ ٟ‬رزٍم‪ ٝ‬ل‪ّ١‬ز‪ ٓ١‬وً ل‪ّ١‬خ ثىجش وٍّخ‬
‫‪DX .‬اٌذاٌخ ثغّغ ٘زٖ اٌم‪ٚ ُ١‬رؾفع اٌذاٌخ إٌز‪١‬غخ ف‪ ٟ‬اٌّغغً‬
‫ػٍ‪ ٝ‬اٌذاٌخ اْ رخشط ٘زٖ اٌم‪ِٕ ِٓ ُ١‬طمخ اٌّىذط ف‪ٙٔ ٟ‬ب‪٠‬خ اٌذاٌخ ‪ِ:‬الؽظخ‬
‫‪:‬اٌؾً‬
‫‪Test_proc proc near‬‬
‫‪Mov bp,sp‬‬
Add bp,2
Mov ax,[bp]
Add bp,2
Mov dx,[bp]
Add dx,ax
Ret 4
Test_proc endp

ٓ٠‫رّش‬:
ٝ‫خ رزٍم‬١ٔ‫ف اٌشبشخ اٌذاٌخ اٌضب‬١‫ ٌزٕظ‬ٌٝٚ‫ٓ اٌذاٌخ اال‬١‫ داٌز‬ٍٝ‫ ػ‬ٞٛ‫ؾز‬٠ ‫اوزت ثشٔبِغب وبِال‬
ً‫ اٌّغغ‬ٟ‫غخ ف‬١‫ؽفع إٌز‬ٚ ٓ١‫ّز‬١‫َ ثغّغ اٌم‬ٛ‫رم‬ٚ ‫ك اٌّىذط‬٠‫ٓ ػٓ ؽش‬١‫ّز‬١‫ل‬DX .
ً‫اٌؾ‬:
.model small
.stack 20h
.Data
.code
Start:mov ax,@data
Mov ds,ax
call clean
Mov bx,3
Push bx
Mov bx,6
Push bx
Call test_proc

Mov ah,4ch
Int 21h
clean proc near
mov ax,3
int 10h
ret
clean endp
Test_proc proc near
Mov bp,sp
Add bp,2
‫]‪Mov ax,[bp‬‬
‫‪Add bp,2‬‬
‫]‪Mov dx,[bp‬‬
‫‪Add dx,ax‬‬
‫‪Ret 4‬‬
‫‪Test_proc endp‬‬
‫‪End start‬‬

‫اٌؼٍّ‪١‬بد اٌؾغبث‪١‬خ ػٍ‪ ٝ‬إٌظ‪ٛ‬ص‬

‫و‪ٛ‬د ‪BCD‬‬
‫‪BCD-CODE: binary coded decimal code‬‬
‫ِؼظُ اٌّذخالد اٌؼذد‪٠‬خ ٘‪ٛٔ ِٓ ٟ‬ع ٔض ‪ٚ‬اٌز‪ ٟ‬رّضً اػذاد ػشش‪٠‬خ‪ .‬اؽذ‪ٜ‬‬
‫اٌطشق ٌّؼبٌغخ ٘زٖ اٌّذخالد ٘‪ ٟ‬رشعّخ ٘زا إٌض ٌؼذد ف‪ ٟ‬اٌّ‪١‬ضاْ اٌضٕبئ‪ٟ‬‬
‫‪ٚ‬ثؼذ٘ب اٌم‪١‬بَ ثبٌؼٍّ‪١‬بد اٌؾغبث‪١‬خ اٌّطٍ‪ٛ‬ثخ ‪ٚ‬ارا اسدٔب اْ ٔؼشع إٌز‪١‬غخ ٔم‪َٛ‬‬
‫ثزؾ‪ ً٠ٛ‬إٌز‪١‬غخ ِٓ ل‪ّ١‬خ ػذد‪٠‬خ اٌ‪ٔ ٝ‬ض صُ ٔؼشع إٌض ػٍ‪ ٝ‬اٌشبشخ ِضال‪.‬‬
‫ػٍّ‪١‬خ اٌزشعّخ اٌّضد‪ٚ‬عخ ِٓ ٔض اٌ‪ ٝ‬ل‪ّ١‬خ ػذد‪٠‬خ ‪ ِٓٚ‬ل‪ّ١‬خ ػذد‪٠‬خ اٌ‪ٔ ٝ‬ض‬
‫ثؾبعخ اٌ‪ٚ ٝ‬لذ أ‪ ٞ‬إٔب ٔخغش ‪ٚ‬لزب ؽ‪٠ٛ‬ال ف‪ ٟ‬ػٍّ‪١‬بد اٌزشعّخ‪.‬‬
‫ؽش‪٠‬مخ صبٔ‪١‬خ ٌّؼبٌغخ إٌظ‪ٛ‬ص ٘‪ ٟ‬اْ ٔم‪ َٛ‬ثبعشاء اٌؼٍّ‪١‬بد اٌؾغبث‪١‬خ ػٍ‪ٝ‬‬
‫إٌظ‪ٛ‬ص ‪ٚ‬ثؼذ٘ب ٔم‪ َٛ‬ثزظؾ‪١‬ؼ إٌز‪١‬غخ ثّغبػذح اِش ِؼ‪ٌٍ ٓ١‬ؾظ‪ٛ‬ي ػٍ‪ٝ‬‬
‫شىً ل‪ّ١‬خ ػشش‪٠‬خ‪ .‬ؽز‪٠ ٝ‬ى‪ ْٛ‬اٌزظؾ‪١‬ؼ ثغ‪١‬طب لبِ‪ٛ‬ا ثبٔشبء و‪ٛ‬د ‪BCD‬‬
‫ِب ‪١ّ٠‬ض ٘زا اٌى‪ٛ‬د ٘‪ ٛ‬اْ‪:‬‬
‫اٌشِ‪ٛ‬ص اٌّغزؼٍّخ ف‪٘ ٟ‬زا اٌى‪ٛ‬د ٘‪0 ,1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ٟ‬‬
‫ٕ٘بٌه ٔ‪ٛ‬ػبْ ٌزّض‪ٌٙ ً١‬زا اٌى‪ٛ‬د‬
‫‪ : packed BCD.1‬ف‪٘ ٟ‬زٖ اٌؾبٌخ وً ثب‪٠‬ذ ‪٠‬ؾز‪ ٞٛ‬ػٍ‪ ٝ‬خبٔز‪ ٓ١‬أ‪ ٞ‬وً خبٔخ‬
‫ثؾبعخ اٌ‪ 4 ٝ‬ثزبد‬
‫‪ : unpacked BCD.2‬ف‪٘ ٟ‬زٖ اٌؾبٌخ وً ثب‪٠‬ذ ‪٠‬ؾز‪ ٞٛ‬ػٍ‪ ٝ‬خبٔخ ‪ٚ‬اؽذح فمؾ‬
‫أ‪ ٞ‬وً خبٔخ ثؾبعخ اٌ‪ 8 ٝ‬ثزبد‬
‫اٌ‪١‬ىُ اٌغذ‪ٚ‬ي اٌزبٌ‪ ٟ‬اٌز‪٠ ٞ‬ظ‪ٙ‬ش ثؼغ االػذاد ف‪ ٟ‬اٌّ‪١‬ضاْ اٌؼشش‪ٚ ٞ‬و‪ٛ‬د‬
‫‪BCD‬‬
‫‪Unpacked BCD‬‬ ‫اٌّ‪١‬ضاْ اٌؼشش‪Packed BCD ٞ‬‬
‫‪00H‬‬ ‫‪0H‬‬ ‫‪0‬‬
‫‪01H‬‬ ‫‪1H‬‬ ‫‪1‬‬
‫‪02H‬‬ ‫‪2H‬‬ ‫‪2‬‬
‫‪03H‬‬ ‫‪3H‬‬ ‫‪3‬‬
‫‪04H‬‬ ‫‪4H‬‬ ‫‪4‬‬
‫‪05H‬‬ ‫‪5H‬‬ ‫‪5‬‬
‫‪06H‬‬ ‫‪6H‬‬ ‫‪6‬‬
‫‪07H‬‬ ‫‪7H‬‬ ‫‪7‬‬
‫‪08H‬‬ ‫‪8H‬‬ ‫‪8‬‬
‫‪09H‬‬ ‫‪9H‬‬ ‫‪9‬‬
‫‪0101H‬‬ ‫‪11H‬‬ ‫‪11‬‬
‫‪0102H‬‬ ‫‪12H‬‬ ‫‪12‬‬
‫‪0508H‬‬ ‫‪58H‬‬ ‫‪58‬‬
‫‪020105H‬‬ ‫‪215H‬‬ ‫‪215‬‬

‫ػٍّ‪١‬بد رظؾ‪١‬ؼ إٌز‪١‬غخ‬


‫االْ ٕٔظش اٌ‪ ٝ‬اٌؼٍّ‪١‬بد اٌؾغبث‪١‬خ اٌزبٌ‪١‬خ‪:‬‬
‫‪BCD-code‬‬ ‫اٌّ‪١‬ضاْ اٌؼشش‪ٞ‬‬
‫‪12H‬‬ ‫‪12‬‬
‫‪+11H‬‬ ‫‪+11‬‬
‫‪-----‬‬ ‫‪---‬‬
‫‪23H‬‬ ‫‪23‬‬

‫إٌز‪١‬غخ اٌغبثمخ طؾ‪١‬ؾخ ارا ف‪٘ ٟ‬زٖ اٌؾبٌخ إٌز‪١‬غخ ٌ‪١‬غذ ثؾبعخ اٌ‪ ٝ‬رظؾ‪١‬ؼ‬
‫ٕٔظش اٌ‪ ٝ‬اٌؼٍّ‪١‬خ اٌزبٌ‪١‬خ‪:‬‬

‫‪BCD-code‬‬ ‫اٌّ‪١‬ضاْ اٌؼشش‪ٞ‬‬


‫‪12H‬‬ ‫‪12‬‬
‫‪+19H‬‬ ‫‪+19‬‬
‫‪-----‬‬ ‫‪---‬‬
‫‪2BH‬‬ ‫‪31‬‬

‫ارا ٔظشٔب اٌ‪ ٝ‬إٌز‪١‬غخ فبْ إٌز‪١‬غخ رؾز‪ ٞٛ‬ػٍ‪ ٝ‬سِض ‪٘ٚ B‬زا اٌشِضغ‪١‬ش ِغّ‪ٛ‬ػ‬
‫ف‪ ٗ١‬ف‪BCD-CODE ٟ‬‬
‫اٌؾً‪:‬‬
‫ارا اػفٕب اٌم‪ّ١‬خ ‪ 6‬اٌ‪ ٝ‬اٌخبٔخ اٌغ‪١‬ش ِٕطم‪١‬خ ف‪ ٟ‬إٌز‪١‬غخ رزُ ػٍّ‪١‬خ اٌزظؾ‪١‬ؼ‬
‫أظش اٌؾً‪:‬‬
‫‪2BH+06H=31H‬‬
‫أظش اٌ‪ ٝ‬اٌزّش‪ ٓ٠‬اٌزبٌ‪:ٟ‬‬

‫‪BCD-code‬‬ ‫اٌّ‪١‬ضاْ اٌؼشش‪ٞ‬‬


‫‪18H‬‬ ‫‪18‬‬
‫‪+19H‬‬ ‫‪+19‬‬
‫‪-----‬‬ ‫‪---‬‬
‫‪31H‬‬ ‫‪37‬‬

‫ارا ٔظشٔب اٌ‪ ٝ‬إٌز‪١‬غخ ٔش‪ ٜ‬اْ خبٔبد إٌز‪١‬غخ ِٓ اٌشِ‪ٛ‬ص اٌّغّ‪ٛ‬ػ ف‪ٙ١‬ب ‪ٌٚ‬ىٓ‬
‫اٌز‪١‬غخ ثؾبعخ اٌ‪ ٝ‬رؼذ‪ٌٍ ً٠‬ؾظ‪ٛ‬ي ػٍ‪ ٝ‬اٌشىً اٌّطٍ‪ٛ‬ة‪.‬‬
‫اٌؾً اْ ٔؼ‪١‬ف ٌٍٕز‪١‬غخ ‪6‬‬
‫‪31H+06H=37H‬‬
‫اٌغجت ٕ٘ب ٘‪ ٛ‬اْ اٌخبٔخ اال‪ ٌٝٚ‬ثؼذ ػٍّ‪١‬خ اٌغّغ اػطذ اٌخبٔخ اٌضبٔ‪١‬خ اٌم‪ّ١‬خ ‪1‬‬
‫‪ .‬أ‪ ٞ‬اْ ‪( AF=1‬أظش ِغغً اٌشا‪٠‬بد)‬
‫ثبالخزظبس ٕ٘بٌه ؽبٌزبْ ‪٠‬غت اْ ٔظؾؼ إٌز‪١‬غخ ف‪ّٙ١‬ب‬
‫‪.1‬ارا وبٔذ إٌز‪١‬غخ رؾز‪ ٞٛ‬ػٍ‪ ٝ‬سِض ٌ‪١‬ظ ِٓ اٌشِ‪ٛ‬ص اٌّغّ‪ٛ‬ػ ف‪ٙ١‬ب ف‪ٟ‬‬
‫‪ BCD-CODE‬ثبالخزظبس ارا وبٔذ اؽذ‪ ٜ‬اٌخبٔبد اوجش ِٓ ‪9‬‬
‫‪ .2‬ارا وبْ ‪AF=1‬‬
‫ٌزظؾ‪١‬ؼ إٌز‪١‬غخ رغزخذَ اال‪ٚ‬اِش اٌزبٌ‪١‬خ‪:‬‬
‫ِالؽظخ‪ ِٓ :‬إٌفؼً اْ ٔطٍت رظؾ‪١‬ؼ إٌز‪١‬غخ ثؼذ وً ػٍّ‪١‬خ الٕٔب ال ٔؼشف‬
‫ارا وٕب ثؾبعخ ا‪ ٚ‬ال ‪ٌٚ‬ىٓ اٌّؼبٌظ ‪ّ٠‬ىٕٗ اْ ‪١ّ٠‬ض ارا ٔؾٓ ٌغٕب ثؾبعخ اٌ‪ٝ‬‬
‫فؾض إٌز‪١‬غخ ‪ٚ‬ثؼذ٘ب ٔمشس ‪ٚ‬أّب ٔطٍت ِٓ اٌّؼبٌظ اْ ‪٠‬ظؾؼ ثؼذ وً ػٍّ‪١‬خ‬
‫‪ٛ٘ٚ‬اٌز‪٠ ٞ‬مشس ارا وبٔذ ٕ٘بٌه ؽبعخ اَ ال‬
‫‪1)AAA‬‬
‫‪ASCII adjust after addition‬‬
‫‪٠-‬م‪٘ َٛ‬زا االِش ثزظؾ‪١‬ؼ إٌز‪١‬غخ اٌّ‪ٛ‬ع‪ٛ‬دح ف‪ ٟ‬اٌّغغً ‪ AL‬اٌ‪ ٝ‬اٌشىً‬
‫اٌؼشش‪ ٞ‬ف‪ ٟ‬و‪ٛ‬د ‪ٚ unpaked BCD‬رؼغ إٌز‪١‬غخ اٌغذ‪٠‬ذح ف‪ ٟ‬اٌّغغً ‪AX‬‬
‫‪٠-‬غزخذَ ٘زا االِش ثؼذ ػٍّ‪١‬خ عّغ ث‪ ٓ١‬ل‪ّ١‬ز‪ٛٔ ِٓ ٓ١‬ع ‪ unpaked BCD‬ا‪ٚ‬‬
‫ثى‪ٛ‬د ‪ASCII‬‬

‫ِضبي‪:‬‬
‫‪MOV ax,0‬‬
‫‪Mov al,5‬‬
‫‪Add al,8‬‬
‫‪AAA‬‬
‫ثؼذ ٘زٖ اٌؼٍّ‪١‬خ‬
‫‪AX=0103H‬‬
‫رّش‪ ٓ٠‬اخش‪:‬‬
‫‪Mov ax,0108H‬‬
‫'‪add al,'7‬‬
‫‪AAA‬‬
‫ثؼذ ٘زٖ اٌؼٍّ‪١‬خ‪:‬‬
‫‪AX=0205H‬‬

‫‪2)DAA‬‬
‫‪decimal adjust after addition‬‬
‫‪٠‬م‪٘ َٛ‬زا االِش ثزظؾ‪١‬ؼ إٌز‪١‬غخ اٌّ‪ٛ‬ع‪ٛ‬دح ف‪ ٟ‬اٌّغغً ‪ٌ AL‬خبٔز‪ ٓ١‬ف‪ٟ‬‬
‫‪. packed BCD‬‬
‫ٔغزخذَ ٘زا االِش ثؼذ ػٍّ‪١‬خ عّغ ث‪ ٓ١‬ل‪ّ١‬ز‪ٛٔ ِٓ ٓ١‬ع ‪packed BCD‬‬
‫ِضبي‪:‬‬
‫‪Mov ax,0‬‬
‫‪Mov al,45H‬‬
Add al ,28H
DAA
‫ثؼذ ٘زا اٌّمطغ‬
AX=0073H

3)AAS
ASCII ADJUST AFTER SUBTRACTION
‫ئخ‬١٘ ٟ‫ ف‬ٞ‫ ٌؼذد ػشش‬AL ً‫ اٌّغغ‬ٟ‫غخ ف‬١‫ؼ إٌز‬١‫َ ثزظؾ‬ٛ‫م‬٠ ‫٘زا االِش‬
unpacked BCD
‫ع‬ٛٔ ِٓ ٓ١‫ّز‬١‫ٓ ل‬١‫خ ؽشػ ث‬١ٍّ‫ٔغزخذَ ٘زا االِش ثؼذ ػ‬
ASCII-code ٚ‫ ا‬unpacked BCD
:‫ِضبي‬
Mov ax , 0105H
Sub al,08H
AAS
‫ثؼذ ٘زا اٌّمطغ‬
AX=0007

4)DAS
decimal adjust after subtraction

‫خ‬٠‫ٓ ػشش‬١‫ ٌخبٔز‬AL ً‫ اٌّغغ‬ٟ‫دح ف‬ٛ‫ع‬ٌّٛ‫غخ ا‬١‫ؼ إٌز‬١‫َ ٘زا االِش ثزظؾ‬ٛ‫م‬٠
. packed BCD ‫ئخ‬١٘ ٟ‫ف‬
packed BCD ‫ع‬ٛٔ ِٓ ٓ١‫ّز‬١‫ٓ ل‬١‫خ ؽشػ ث‬١ٍّ‫ٔغزخذَ ٘زا االِش ثؼذ ػ‬
:‫ِضبي‬
Mov ax,0
Mov al,45H
sub al ,28H
DAS
‫ثؼذ ٘زا اٌّمطغ‬
‫‪AX=0017H‬‬

‫‪5)AAM‬‬
‫‪ASCII adjust after multiply‬‬
‫٘زا االِش ‪٠‬م‪ َٛ‬ثزظؾ‪١‬ؼ اٌم‪ّ١‬خ اٌّ‪ٛ‬ع‪ٛ‬دح ف‪ ٟ‬اٌّغغً ‪ AL‬اٌ‪ ٝ‬خبٔز‪ ٓ١‬ف‪١٘ ٟ‬ئخ‬
‫‪ٔ . unpacked BCD‬ز‪١‬غخ اٌزظؾ‪١‬ؼ رخضْ ف‪ ٟ‬اٌّغغً ‪ AX‬وٍٗ ثؾ‪١‬ش خبٔخ‬
‫اٌؼششاد رخضْ ف‪ ٟ‬اٌّغغً ‪ٚ AH‬خبٔخ االؽبد ف‪ ٟ‬اٌّغغً ‪. AL‬‬
‫ٔغزخذَ ٘زا االِش ثؼذ ػٍّ‪١‬خ اٌؼشة‬
‫‪Mov al,04H‬‬
‫‪Mov CL , 08H‬‬
‫‪MUL CL‬‬
‫‪AAM‬‬
‫ثؼذ ٘زا اٌّمطغ‬
‫‪AX=0302H‬‬
‫ِالؽظخ‪ٔ:‬غزخذَ ٘زا االِش اؽ‪١‬بٔب ثذ‪ ْٚ‬أ‪ ٞ‬طٍخ ٌٍؼشة ٌزؾ‪ ً٠ٛ‬ػذد ِٓ‬
‫اٌّ‪١‬ضاْ اٌغبدط ػشش اٌ‪ ٝ‬ػذد ف‪ ٟ‬و‪ٛ‬د ‪ unpacked BCD‬ثششؽ اْ ال ‪٠‬ى‪ْٛ‬‬
‫اٌؼذد اوجش ِٓ ‪99‬‬
‫ِضبي‪:‬‬
‫‪Mov ax,0013H‬‬
‫‪AAM‬‬
‫ٕ٘ب ٔؾظً ػٍ‪ٝ‬‬
‫‪AX=0109H‬‬

‫‪6)AAD‬‬
‫‪ASCII adjust for Division‬‬
‫‪٠‬م‪٘ َٛ‬زا االِش ثزظؾ‪١‬ؼ اٌم‪ّ١‬خ اٌّ‪ٛ‬ع‪ٛ‬دح ف‪ ٟ‬اٌّغغً ‪ٚ AX‬اٌز‪ ٟ٘ ٟ‬ػٍ‪ٝ‬‬
‫‪unpacked BCD‬لجً ػٍّ‪١‬خ اٌمغّخ اٌ‪ ٝ‬ل‪ّ١‬خ ف‪ ٟ‬اٌّ‪١‬ضاْ اٌغبدط ػشش ‪hex‬‬
‫‪.‬‬
‫ِضبي‪:‬‬
‫‪Mov CL,06H‬‬
‫‪Mov ax,0109H‬‬
‫‪AAD‬‬
‫‪DIV CL‬‬
‫ثؼذ االِش ‪ AAD‬رظجؼ ل‪ّ١‬خ اٌّغغً ‪AX=0013H‬‬
‫‪ٚ‬ثؼذ ػٍّ‪١‬خ اٌمغّخ ‪DIV CL‬‬
‫‪AL=03‬‬ ‫‪,‬‬ ‫‪AH=01‬‬
‫أ‪ ٞ‬اْ ‪AX=0103H‬‬

‫ِالؽظخ‪ٔ:‬غزخذَ ٘زا االِش اؽ‪١‬بٔب ثذ‪ ْٚ‬أ‪ ٞ‬طٍخ ٌٍمغّخ ٌزؾ‪ ً٠ٛ‬ػذد ف‪ ٟ‬و‪ٛ‬د‬
‫‪ unpacked BCD‬اٌ‪ ٝ‬ػذد ف‪ ٟ‬اٌّ‪١‬ضاْ اٌغبدط ػشش ثششؽ اْ ال ‪٠‬ى‪ْٛ‬‬
‫اٌؼذد اوجش ِٓ ‪99‬‬
‫ِضبي‪:‬‬
‫‪Mov ax,0201H‬‬
‫‪AAD‬‬
‫ٕ٘ب ٔؾظً ػٍ‪ٝ‬‬
‫‪AX=0015H‬‬

You might also like