Professional Documents
Culture Documents
تعلم لغة التجميع و إحترفها
تعلم لغة التجميع و إحترفها
تعلم لغة التجميع و إحترفها
اﻟﺠﺰء اﻷول
ﻣﻘﺪﻣﺔ ﻓﻲ ﻟﻐﺔ اﻷﺳﻤﺒﻠﻲ
Ahmed.ALrefaie@yahoo.com -1-
إﻟﻰ ﻃﻼب اﻟﻤﺮﻛﺰ اﻟﻌﺎﻟﻲ ﻟﺘﻘﻨﯿﺎت اﻟﺤﺎﺳﻮب
ﺗﺠﻤﯿﻊ أﺣﻤﺪ اﻟﺮﻓﺎﻋﻲ ﺗﻢ ﺗﺠﻤﯿﻌﻪ ﻣﻦ ﻣﻨﺘﺪﻳﺎت اﻟﻔﺮﻳﻖ اﻟﻌﺮﺑﻲ ﻟﻠﺒﺮﻣﺠﺔ
ﻣﺜﺎل : 1ﺣﻮل اﻟﺮﻗﻢ اﻟﺜﻨﺎﺋﻲ اﻟﺘﺎﻟﻲ 0100إﻟﻰ ﻣﻘﺎﺑﻠﮫ ﻓﻲ ﻧﻈﺎم اﻟﻌﺪ اﻟﻌﺸﺮي:
(0100)b 0 2 0 2 1 2 2 0 2 3 0 0 4 0 4
0 1
ﻣﺜﺎل: 2ﺣﻮل اﻟﻌﺪد اﻟﺴﺖ ﻋﺸﺮي اﻟﺘﺎﻟﻲ 33Aإﻟﻰ ﻣﻘﺎﺑﻠﮫ ﻓﻲ ﻧﻈﺎم اﻟﻌﺪ اﻟﻌﺸﺮي:
(33 A)h 10 16 3 161 3 16 2 10 48 768 826
0
Ahmed.ALrefaie@yahoo.com -3-
إﻟﻰ ﻃﻼب اﻟﻤﺮﻛﺰ اﻟﻌﺎﻟﻲ ﻟﺘﻘﻨﯿﺎت اﻟﺤﺎﺳﻮب
ﺗﺠﻤﯿﻊ أﺣﻤﺪ اﻟﺮﻓﺎﻋﻲ ﺗﻢ ﺗﺠﻤﯿﻌﻪ ﻣﻦ ﻣﻨﺘﺪﻳﺎت اﻟﻔﺮﻳﻖ اﻟﻌﺮﺑﻲ ﻟﻠﺒﺮﻣﺠﺔ
ﻟﻤﺤﺔ ﻋﻦ اﻟﺤﺎﺳﺐ
ﯾُﻌﺮﱠف اﻟﺤﺎﺳﺐ اﻟﺮﻗﻤﻲ ﺑﺄﻧﮫ ﻧﻈﺎم إﻟﻜﺘﺮوﻧﻲ ﻟﻤﻌﺎﻟﺠﺔ اﻟﻤﻌﻄﯿﺎت ،و ﯾﺘﺄﻟﻒ ﻣﻦ ﻗﺴﻤﯿﻦ أﺳﺎﺳﯿﯿﻦ:
اﻟﻘﺴﻢ اﻷول :اﻟﺒﺮﻣﺠﯿﺎت . SOFTWARE
وﺣﺪة اﻟﺬاﻛﺮة اﻟﻘﺴﻢ اﻟﺜﺎﻧﻲ :اﻟﻜﯿﺎن اﻟﺼﻠﺐ HARDWARE
و ﯾﻘﺴﻢ اﻟﻜﯿﺎن اﻟﺼﻠﺐ إﻟﻰ أﻗﺴﺎم رﺋﯿﺴﯿﺔ ھﻲ :
(1وﺣ ﺪة اﻟ ﺪﺧﻞ :ﺗ ﺘﻢ ﻣ ﻦ
وﺣﺪة اﻟﺪﺧﻞ C.P.U وﺣﺪة اﻟﺨﺮج
ﺧﻼﻟﮭ ﺎ إدﺧ ﺎل اﻟﻤﻌﻄﯿ ﺎت
اﻟﺮﻗﻤﯿﺔ.
(2وﺣﺪة اﻟﺨﺮج :ﺗﺘﻢ ﻣﻦ ﺧﻼﻟﮭﺎ إﻇﮭﺎر اﻟﻨﺘﺎﺋﺞ ﺑﻌﺪ ﻣﻌﺎﻟﺠﺔ اﻟﻤﻌﻄﯿﺎت.
(3وﺣﺪة اﻟﻤﻌﺎﻟﺠﺔ اﻟﻤﺮﻛﺰﯾﺔ :ھﻲ اﻟﻤﺴﺆوﻟﺔ ﻋﻦ اﻟﻌﻤﻠﯿﺎت اﻟﺤﺴﺎﺑﯿﺔ و اﻟﻤﻨﻄﻘﯿﺔ و ﻣﻌﺎﻟﺠﺔ اﻟﺒﯿﺎﻧﺎت.
(4وﺣﺪة اﻟﺬاﻛﺮة :ﺗﺨﺰن اﻟﺒﺮاﻣﺞ و اﻟﻤﻌﻄﯿﺎت.
اﻟﺒﻨﯿﺔ اﻟﺪاﺧﻠﯿﺔ ﻟﻠﻤﻌﺎﻟﺞ 8086
ADDRESS BUS
15 8 7 1 )(20 BITS
AH AL
BH BL
GENERAL
REGISTERS CH CL DATA BUS
SP CS
BP DS BUS
CONTROL
DI SS LOGIC
ALU DATA BUS
SI ES
)(16 BITS
IP
INTERNAL
TEMPORARY REGISTERS COMUNICATION
REGISTERS
Ahmed.ALrefaie@yahoo.com -4-
إﻟﻰ ﻃﻼب اﻟﻤﺮﻛﺰ اﻟﻌﺎﻟﻲ ﻟﺘﻘﻨﯿﺎت اﻟﺤﺎﺳﻮب
ﺗﺠﻤﯿﻊ أﺣﻤﺪ اﻟﺮﻓﺎﻋﻲ ﺗﻢ ﺗﺠﻤﯿﻌﻪ ﻣﻦ ﻣﻨﺘﺪﻳﺎت اﻟﻔﺮﻳﻖ اﻟﻌﺮﺑﻲ ﻟﻠﺒﺮﻣﺠﺔ
ﺑﻨﯿﺔ اﻟﺬاﻛﺮة
ﺗﺘﺄﻟﻒ اﻟﺬاﻛﺮة ﻣﻦ ﺣﺠﺮات ﻣﺘﺴﻠﺴﻠﺔ ﺳﻌﺔ ﻛﻞ ﻣﻨﮭﺎ 8ﺑﺖ )واﺣ ﺪ ﺑﺎﯾ ﺖ( ،ﺗ ﺮﻗﻢ ھ ﺬه اﻟﺤﺠ ﺮات ﻣ ﻦ اﻟ ﺼﻔﺮ و
ﺣﺘﻰ ﻧﮭﺎﯾﺔ اﻟ ﺬاﻛﺮة و ﯾ ﺴﺘﺨﺪم اﻟﻨﻈ ﺎم اﻟ ﺴﺖ ﻋ ﺸﺮي ﻋ ﺎدة ﻓ ﻲ ﻋﻤﻠﯿ ﺔ اﻟﺘ ﺮﻗﯿﻢ و ﺑ ﺬﻟﻚ ﯾﻜ ﻮن ﻟﻜ ﻞ ﺣﺠ ﺮة رﻗ ﻢ
ﯾﻤﯿﺰھﺎ ﻋﻦ ﻏﯿﺮھﺎ ،ﯾﺪﻋﻰ ھﺬا اﻟﺮﻗﻢ ﺑﻌﻨﻮان ﺗﻠﻚ اﻟﺤﺠﺮة.
Ahmed.ALrefaie@yahoo.com -5-
إﻟﻰ ﻃﻼب اﻟﻤﺮﻛﺰ اﻟﻌﺎﻟﻲ ﻟﺘﻘﻨﯿﺎت اﻟﺤﺎﺳﻮب
ﺗﺠﻤﯿﻊ أﺣﻤﺪ اﻟﺮﻓﺎﻋﻲ ﺗﻢ ﺗﺠﻤﯿﻌﻪ ﻣﻦ ﻣﻨﺘﺪﻳﺎت اﻟﻔﺮﻳﻖ اﻟﻌﺮﺑﻲ ﻟﻠﺒﺮﻣﺠﺔ
ﯾﻮﺿﻊ داﺧﻞ ﻛﻞ ﺣﺠﺮة رﻗﻢ ﺳﺖ ﻋﺸﺮي ﯾﺘﺮاوح ﺑﯿﻦ 0و FFو ﯾﺪﻋﻰ ھﺬا اﻟﺮﻗﻢ ﺑﻤﺤﺘﻮى ﺗﻠﻚ اﻟﺤﺠﺮة.
ﯾﻮﺟﺪ ﺑﯿﻦ اﻟﻤﻌﺎﻟﺞ و اﻟﺬاﻛﺮة ﻣﻤﺮان ھﻤﺎ ﻣﻤﺮ اﻟﻤﻌﻄﯿﺎت ﺑﻌﺮض 16ﺑﺖ و ﻣﻤﺮ اﻟﻌﻨﺎوﯾﻦ ﺑﻌﺮض 20ﺑﺖ.
ﻓﻤﺜﻼً ﻋﻨﺪﻣﺎ ﯾﺤﺘ ﺎج اﻟﻤﻌ ﺎﻟﺞ إﻟ ﻰ اﻟﻘﯿﻤ ﺔ اﻟﻤﺨﺰﻧ ﺔ ﻓ ﻲ اﻟﺤﺠ ﺮة ذات اﻟ ﺮﻗﻢ ) 100ﻋﻨﻮاﻧﮭ ﺎ ( 100ﻓ ﺈن اﻟ ﺮﻗﻢ
100ﯾﻤﺜ ﻞ ﺑ ﺸﻜﻞ ﺛﻨ ﺎﺋﻲ و ﯾﻮﺿ ﻊ ﻋﻠ ﻰ ﻣﻤ ﺮ اﻟﻌﻨ ﺎوﯾﻦ و ﯾﺮﺳ ﻞ إﻟ ﻰ اﻟ ﺬاﻛﺮة ،و ﺣﺎﻟﻤ ﺎ ﺗ ﺴﺘﻠﻢ اﻟ ﺬاﻛﺮة ھ ﺬا
اﻟﻌﻨﻮان ﻓﺈن ﻣﺤﺘﻮى اﻟﺤﺠﺮة 100ﯾﺮﺳﻞ إﻟﻰ اﻟﻤﻌﺎﻟﺞ ﻋﻦ ﻃﺮﯾﻖ ﻣﻤﺮ اﻟﻤﻌﻄﯿﺎت.
إن ﻛﻮن ﻣﻤ ﺮ اﻟﻌﻨ ﺎوﯾﻦ ذو ﻋ ﺮض 20ﺑ ﺖ ) 20ﺧ ﻂ ﻧﻘ ﻞ( ھ ﺬا ﯾﻌﻨ ﻲ أﻧ ﮫ ﯾ ﺴﺘﻄﯿﻊ ﻧ ـﻘﻞ رﻗ ﻢ ﺛﻨ ﺎﺋﻲ ذو 20
ﺧﺎﻧﺔ أي أن أﻛﺒﺮ ﻗﯿﻤﺔ ﯾﻤﻜﻦ وﺿﻌﮭﺎ ﻋﻠﻰ ﻣﻤﺮ اﻟﻌﻨﺎوﯾﻦ ھﻲ :
2 20 1048576 1MB
و ﺑﺬﻟﻚ ﯾﺴﺘﻄﯿﻊ اﻟﻤﻌﺎﻟﺞ 8086ﻋﻨﻮﻧﺔ واﺣﺪ ﻣﯿﻐﺎ ﻣﻦ اﻟﺬاﻛﺮة ﻓﻘﻂ.
ﻣﻌﻠﻮﻣﺔ ﻣﻦ اﻟﻤﻜﺪس ﻓﺈن ﻗﻤﺘﮫ ﺗﺒﺘﻌﺪ ﻋﻦ ﺑﺪاﯾﺔ اﻟﺬاﻛﺮة و ﺑ ﺬﻟﻚ ﺗﺰﯾ ﺪ SPﺑﻤﻘ ﺪار 2ﻷن إﻓ ﺮاغ اﻟﻤﻜ ﺪس ﯾﻌﻨ ﻲ
اﻻﻗﺘﺮاب ﻣﻦ اﻟﻌﻨﻮان اﻷﻛﺒﺮ.
(4ﻣﻘﻄﻊ اﻟﻤﻌﻄﯿﺎت اﻹﺿﺎﻓﻲ Extra Segment ES
ﯾﺴﺘﺨﺪم ﻋﻨﺪ اﻟﺤﺎﺟﺔ إﻟﻰ اﺳﺘﺨﺪام ﻣﻘﻄﻌﻲ ﻣﻌﻄﯿﺎت ﺑﻨﻔﺲ اﻟﻮﻗ ﺖ و ﺑ ﺬﻟﻚ ﻧ ﺴﺘﻄﯿﻊ اﻻﺳ ﺘﻔﺎدة ﻣ ﻦ ﻣ ﺴﺎﺣﺔ أﻛﺒ ﺮ
ﻓﻲ اﻟ ﺬاﻛﺮة .و ﯾ ﺴﺎﻋﺪه اﻟﻤ ﺴﺠﻞ Destination Index DIاﻟﻤﻮﺟ ﻮد ﻓ ﻲ اﻟﻤﻌ ﺎﻟﺞ و اﻟ ﺬي ﯾ ﺸﯿﺮ إﻟ ﻰ اﻹزاﺣ ﺔ
ﺑﺎﻟﻨﺴﺒﺔ إﻟﻰ ﺑﺪاﯾﺘﮫ.
ﻣﻼﺣﻈﺔ :ﯾﺠﺐ اﻟﺘﻤﯿﯿﺰ ﺑﯿﻦ اﻟﻤﻘﻄﻊ و ﻣﺴﺠﻞ اﻟﻤﻘﻄﻊ ﺣﯿﺚ اﻟﻤﻘﻄﻊ ھﻮ ﺟﺰء ﻣﻦ اﻟ ﺬاﻛﺮة ﺑﯿﻨﻤ ﺎ ﻣ ﺴﺠﻞ اﻟﻤﻘﻄ ﻊ
ﯾﺘﺄﻟﻒ ﻣﻦ ﺑﺎﯾﺘﯿﻦ و ھﻮ ﻣﻮﺟﻮد ﻓﻲ اﻟﻤﻌﺎﻟﺞ.
اﻟﻤﺴﺠﻼت Registers
ﯾﻤﻠﻚ اﻟﻤﻌﺎﻟﺞ 8086أرﺑﻌﺔ ﻣﺠﻤﻮﻋﺎت ﻣﻦ اﻟﻤﺴﺠﻼت ذات 16ﺑﺖ ﯾﺴﺘﻄﯿﻊ اﻟﻤﺒﺮﻣﺞ اﻟﻮﺻﻮل إﻟﯿﮭﺎ و ھﻲ:
(1ﻣﺆﺷﺮ اﻟﺘﻌﻠﯿﻤﺔ IP
(2أرﺑﻌﺔ ﻣﺴﺠﻼت ﻣﻌﻄﯿﺎت . AX,BX,CX,DX
(3أرﺑﻌﺔ ﻣﺴﺠﻼت ﺗﺄﺷﯿﺮ و ﻓﮭﺮﺳﺔ . SI,DI,BP,SP
(4أرﺑﻌﺔ ﻣﺴﺠﻼت ﻣﻘﺎﻃﻊ . CS,DS,SS,ES
ﺑﺎﻹﺿﺎﻓﺔ إﻟﻰ ذﻟﻚ ﯾﻮﺟﺪ ﻣﺴﺠﻞ آﺧﺮ ھﻮ ﻣﺴﺠﻞ اﻷﻋ ﻼم و ﯾ ﺪﻋﻰ أﯾ ﻀﺎً ﻣ ﺴﺠﻞ اﻟﺤﺎﻟ ﺔ و ھ ﻮ ﻣ ﺴﺠﻞ ذو 16
ﺑﺖ و ﻟﻜﻦ ﻧﺴﺘﺨﺪم ﻣﻨﮫ 9ﺧﺎﻧﺎت ﻓﻘﻂ.
ﺳﻨﺸﺮح ﻛﻞٍ ﻣﻦ ھﺬه اﻟﻤﺴﺠﻼت ﺑﺎﻟﺘﻔﺼﯿﻞ :
00000h
15 0 ﻣﻘﻄﻊ اﻟﺸﯿﻔﺮة CS
CS
FFFFFh
Ahmed.ALrefaie@yahoo.com -7-
إﻟﻰ ﻃﻼب اﻟﻤﺮﻛﺰ اﻟﻌﺎﻟﻲ ﻟﺘﻘﻨﯿﺎت اﻟﺤﺎﺳﻮب
ﺗﺠﻤﯿﻊ أﺣﻤﺪ اﻟﺮﻓﺎﻋﻲ ﺗﻢ ﺗﺠﻤﯿﻌﻪ ﻣﻦ ﻣﻨﺘﺪﻳﺎت اﻟﻔﺮﻳﻖ اﻟﻌﺮﺑﻲ ﻟﻠﺒﺮﻣﺠﺔ
Ahmed.ALrefaie@yahoo.com -8-
إﻟﻰ ﻃﻼب اﻟﻤﺮﻛﺰ اﻟﻌﺎﻟﻲ ﻟﺘﻘﻨﯿﺎت اﻟﺤﺎﺳﻮب
ﺗﺠﻤﯿﻊ أﺣﻤﺪ اﻟﺮﻓﺎﻋﻲ ﺗﻢ ﺗﺠﻤﯿﻌﻪ ﻣﻦ ﻣﻨﺘﺪﻳﺎت اﻟﻔﺮﻳﻖ اﻟﻌﺮﺑﻲ ﻟﻠﺒﺮﻣﺠﺔ
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
O D C
IF TF SF ZF AF PF
F F F
و ﻛﻤﺎ ﻧﻼﺣ ﻆ ﻣ ﻦ اﻟ ﺸﻜﻞ اﻟ ﺴﺎﺑﻖ أﻧ ﮫ ﯾﻮﺟ ﺪ ﺳ ﺘﺔ أﻋ ﻼم ﻟﻠﺤﺎﻟ ﺔ ھ ﻲ ، CF, PF, AF, ZF, SF, OFو ﻛ ﺬﻟﻚ
ﯾﻮﺟﺪ ﺛﻼﺛﺔ أﻋﻼم ﻟﻠﺘﺤﻜﻢ . DF, IF, TF
أ( أﻋﻼم اﻟﺤﺎﻟﺔ
ﺗﺸﯿﺮ إﻟﻰ اﻟﺤﺎﻻت اﻟﻨﺎﺗﺠﺔ ﻛﻨﺘﯿﺠ ﺔ ﻟﺘﻨﻔﯿ ﺬ ﺗﻌﻠﯿﻤ ﺔ ﻣﻨﻄﻘﯿ ﺔ أو رﯾﺎﺿ ﯿﺔ ﺣﯿ ﺚ ﺗﻜ ﻮن إﻣ ﺎ ﻓ ﻲ ﺣﺎﻟ ﺔ واﺣ ﺪ ﻣﻨﻄﻘ ﻲ
Setأو ﺗﻜﻮن ﻓﻲ ﺣﺎﻟﺔ ﺻﻔﺮ ﻣﻨﻄﻘﻲ ، Resetو ﺳﻨﻠﺨﺺ ﻓﯿﻤﺎ ﯾﻠﻲ ﻋﻤﻞ ﻛﻞٍ ﻣﻨﮭﺎ:
أوﻻً :ﻋﻠﻢ اﻹﻧﺰﯾﺎح Carry Flag
ﯾﻜﻮن ﻓﻲ ﺣﺎﻟﺔ اﻟﻮاﺣﺪ اﻟﻤﻨﻄﻘﻲ إذا وﺟﺪ اﻧﺰﯾﺎح ﺧﺎرﺟﻲ ) ﺣﻤﻞ ( أو اﺳﺘﻌﺎرة ﻣﻦ أﺟ ﻞ اﻟﺨﺎﻧ ﺔ اﻷﺧﯿ ﺮة )اﻟﺒ ﺖ
اﻷﺧﯿﺮ( و ذﻟﻚ أﺛﻨﺎء ﺗﻨﻔﯿﺬ اﻟﺘﻌﻠﯿﻤﺎت اﻟﺮﯾﺎﺿﯿﺔ.
و ﯾﻜﻮن ﻓﻲ ﺣﺎﻟﺔ اﻟﺼﻔﺮ اﻟﻤﻨﻄﻘﻲ إذا ﻟﻢ ﯾﻮﺟﺪ ﺣﻤﻞ أو اﺳﺘﻌﺎرة ﻣﻦ أﺟﻞ اﻟﺒﺖ اﻷﺧﯿﺮ.
أﻣﺜﻠﺔ:
أوﻻً :ﺣﺎﻟﺔ اﻹﻧﺰﯾﺎح
7 6 5 4 3 2 1 0
ﻻﺣﻆ ﺑﺄن اﻟﻨﺘﯿﺠﺔ ﻟﻢ ﺗﺘﺴﻊ ﻓﻲ ﺛﻤﺎﻧﯿﺔ ﺑﺘﺎت و إﻧﻤﺎ
1 1 0 0 0 1 1 0 ﺗﺤﺘﺎج إﻟﻰ ﺗﺴﻊ ﺑﺘﺎت و ﻧﻌﺒﺮ ﻋﻦ ذﻟﻚ ﺑﺜﻤﺎﻧﯿﺔ ﺑﺘﺎت
1 1 0 0 0 1 1 1 + و CF=1أي أﻧﮫ ﻟﺪﯾﻨﺎ ﻓﻲ اﻟﯿﺪ واﺣﺪ.
ﺑﺒﺴﺎﻃﺔ :ﻓﻤﮭﻤﺎ ﻛَﺒُﺮَ اﻟﻌﺪدان ﻓﺈن ﺗﺴﻌﺔ ﺑﺘﺎت ﯾﻤﻜﻦ
أن ﺗﺴﺘﻮﻋﺒﮭﺎ.
1 0 0 0 1 1 0 1
CF=1
ﺛﺎﻧﯿﺎً :ﺣﺎﻟﺔ اﻻﺳﺘﻌﺎرة
7 6 5 4 3 2 1 0 ﻻﺣﻆ ﺑﺄن اﻟﻌﺪد اﻷول اﻟﻤﻤﺜﻞ ﺛﻨﺎﺋﯿﺎً أﺻﻐﺮ ﻣﻦ اﻟﻌﺪد
1 0 1 0 1 1 0 1 1 اﻟﺜﺎﻧﻲ اﻟﻤﻤﺜﻞ ﺛﻨﺎﺋﯿﺎً أﯾﻀﺎً ،ﻟﺬﻟﻚ ﻓﻌﻨﺪ إﺟﺮاء ﻋﻤﻠﯿﺔ
1 1 1 1 1 0 0 0 - اﻟﻄﺮح و ﻓﻲ ﻣﺜﺎﻟﻨﺎ ھﺬا ﺗﺨﯿﻠﻨﺎ ﺑﺖ ﺗﺎﺳﻊ ﻓﯿﮫ اﻟﻘﯿﻤﺔ
واﺣﺪ )اﺳﺘﻌﺮﻧﺎ( و ﺑﺎﻟﺘﺎﻟﻲ ﻓﺈن CF=1أي ﻟﺪﯾﻨﺎ
اﺳﺘﻌﺎرة ﻣﻦ أﺟﻞ اﻟﺒﺖ اﻷﻋﻠﻰ رﺗﺒﺔ.
0 1 1 0 0 0 1 1
و ﻓﻲ اﻟﻤﺜﺎﻟﯿﻦ اﻟﺴﺎﺑﻘﯿﻦ ﻧﻄﺒﻖ ﻧﻔﺲ اﻟﻜﻼم ﻣ ﻦ أﺟ ﻞ 2ﺑﺎﯾ ﺖ و ﻟﻜ ﻦ اﻹﻧﺰﯾ ﺎح اﻟﺨ ﺎرج و اﻻﺳ ﺘﻌﺎرة ﺗﻜ ﻮن ﻣ ﻦ
أﺟﻞ اﻟﺒﺖ اﻟﺨﺎﻣﺲ ﻋﺸﺮ )اﻷﺧﯿﺮ(.
ﺛﺎﻧﯿﺎً :ﻋﻠﻢ اﻻزدواﺟﯿﺔ Parity Flag PF
ﯾﺼﺒﺢ ﻓﻲ ﺣﺎﻟﺔ واﺣﺪ ﻣﻨﻄﻘﻲ إذا ﻛﺎﻧﺖ ﻧﺘﯿﺠﺔ آﺧ ﺮ ﺗﻌﻠﯿﻤ ﺔ ﺗﺤ ﻮي ﻋﻠ ﻰ ﻋ ﺪداً زوﺟﯿ ﺎً ﻣ ﻦ اﻟﺨﺎﻧ ﺎت اﻟﻮاﺣﺪﯾ ﺔ )
ﺑﻌﺪ اﻟﺘﺤﻮﯾﻞ إﻟﻰ اﻟﻨﻈﺎم اﻟﺜﻨﺎﺋﻲ ﻃﺒﻌﺎً ( و إﻻ ﯾﻜﻮن ﻓﻲ ﺣﺎﻟﺔ اﻟﺼﻔﺮ اﻟﻤﻨﻄﻘﻲ.
ﻧﻼﺣﻆ أن ﻋﻠﻢ PFﯾﻔﺤﺺ اﻟﺒﺎﯾﺖ اﻟﺴﻔﻠﻲ ﻓﻘﻂ ﺣﺘﻰ ﻟﻮ ﻛﻨﺎ ﻧﺘﻌﺎﻣﻞ ﻣ ﻊ ﻛﻠﻤ ﺔ ) 2ﺑﺎﯾ ﺖ ( ،أﻣ ﺎ ﻋﻨ ﺪﻣﺎ ﻧﺘﻌﺎﻣ ﻞ
ﻣﻊ ﺑﺎﯾﺖ واﺣﺪ ﻓﻘﻂ ﻓﺈﻧﮫ ﯾﻔﺤﺼﮫ ﻛﻠﮫ.
ﺛﺎﻟﺜﺎً :ﻋﻠﻢ اﻹﻧﺰﯾﺎح اﻟﻤﺴﺎﻋﺪ Auxiliary Flag AF
ﯾﻜ ﻮن ﻓ ﻲ ﺣﺎﻟ ﺔ اﻟﻮاﺣ ﺪ اﻟﻤﻨﻄﻘ ﻲ إذا وﺟ ﺪ إﻧﺰﯾ ﺎح ﻣ ﻦ اﻟﻨ ﺼﻒ اﻟ ﺴﻔﻠﻲ إﻟ ﻰ اﻟﻨ ﺼﻒ اﻟﻌﻠ ﻮي أو اﺳ ﺘﻌﺎرة ﻣ ﻦ
اﻟﻨﺼﻒ اﻟﻌﻠﻮي إﻟﻰ اﻟﻨﺼﻒ اﻟﺴﻔﻠﻲ و ذﻟﻚ ﻣﻦ أﺟﻞ اﻟﺒﺎﯾﺖ اﻟﺴﻔﻠﻲ ﻣﻦ اﻟﻜﻠﻤ ﺔ ) 2ﺑﺎﯾ ﺖ ( و ﺑﻤﻌﻨ ﻰ آﺧ ﺮ أﻧ ﮫ
Ahmed.ALrefaie@yahoo.com -9-
إﻟﻰ ﻃﻼب اﻟﻤﺮﻛﺰ اﻟﻌﺎﻟﻲ ﻟﺘﻘﻨﯿﺎت اﻟﺤﺎﺳﻮب
ﺗﺠﻤﯿﻊ أﺣﻤﺪ اﻟﺮﻓﺎﻋﻲ ﺗﻢ ﺗﺠﻤﯿﻌﻪ ﻣﻦ ﻣﻨﺘﺪﻳﺎت اﻟﻔﺮﻳﻖ اﻟﻌﺮﺑﻲ ﻟﻠﺒﺮﻣﺠﺔ
إذا ﻛﺎن ﻟﺪﯾﻨﺎ إﻧﺰﯾﺎح ﻣﻦ اﻟﺨﺎﻧﺔ 3إﻟﻰ اﻟﺨﺎﻧﺔ 4ﻓ ﺈن AF=1و ذﻟ ﻚ ﻓ ﻲ ﺣ ﺎل ﻛﺎﻧ ﺖ اﻟﻤﻌﻄﯿ ﺎت ﺑﺎﯾ ﺖ واﺣ ﺪ أو
ﺑﺎﯾﺘﯿﻦ )ﻛﻠﻤﺔ( ،و ﻓﯿﻤﺎ ﻋﺪا ذﻟﻚ ﯾﻜﻮن . AF=0
ﻣﺜﺎل:
7 6 5 4 3 2 1 0
1 1 0 0 0 1 1 0
1 1 0 0 0 1 1 1 +
ﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ ﯾﻜﻮن AF=0ﻷﻧﮫ
ﻟﻢ ﯾﻜﻦ ﻣﻌﻨﺎ ﺑﺎﻟﯿﺪ واﺣﺪ ﻋﻨﺪ اﻻﻧﺘﻘﺎل
1 0 0 0 1 1 0 1 ﻣﻦ اﻟﺨﺎﻧﺔ اﻟﺜﺎﻟﺜﺔ إﻟﻰ اﻟﺨﺎﻧﺔ اﻟﺮاﺑﻌﺔ
ﻓﻲ اﻟﻨﺎﺗﺞ
اﻟﺤﻞ:
PA = ( CS x 10h ) + IP = 1B6C x 10h + A0 = 1B760
1B6C
A0 ﻣﺤﺘﻮى IP
ﺟﺎﻣﻊ
اﻟﻌﻨﺎوﯾﻦ
00000h
IP
ﻣﻘﻄﻊ اﻟﺸﯿﻔﺮة
64KB
CS
DS
SS
SP
BP
ﻣﻘﻄﻊ اﻟﻤﻌﻄﯿﺎت
SI اﻹﺿﺎﻓﻲ 64KB
DI
FFFFFh
ﻣﺴﺠﻞ اﻷﻋﻼم
اﻟﺬاﻛﺮة اﻟﺨﺎرﺟﯿﺔ
MPU 8086
أﺳﺎﻟﯿﺐ اﻟﻌﻨﻮﻧﺔ
ﻣﻘﺪﻣﺔ:
إن ﺣﯿ ﺰ اﻟ ﺬاﻛﺮة ﻣ ﻨﻈﻢ ﻋﻠ ﻰ ﺷ ﻜﻞ ﺑﺎﯾﺘ ﺎت ﻣﻌﻨﻮﻧ ﺔ ﻣ ﻦ 00000hإﻟ ﻰ FFFFFhﻟ ﺬﻟﻚ ﻣ ﻦ أﺟ ﻞ ﻛﻠﻤ ﺎت
اﻟﻤﻌﻄﯿﺎت 16ﺑﺖ ﯾﺘﻢ ﺗﺨﺰﯾﻦ اﻟﺒﺎﯾﺖ اﻟﺴﻔﻠﻲ ﻓ ﻲ اﻟﻌﻨ ﻮان اﻷﺻ ﻐﺮ و اﻟﺒﺎﯾ ﺖ اﻟﻌﻠ ﻮي ﻓ ﻲ اﻟﻌﻨ ﻮان اﻷﻛﺒ ﺮ ﻛﻤ ﺎ
ﻧﻌﻠ ﻢ أن اﻟ ﺬاﻛﺮة ﺗﺤﺘ ﻮي أرﺑ ﻊ ﻣﻘ ﺎﻃﻊ ﻛ ﻞ ﻣﻨﮭ ﺎ 64KBو ھ ﻲ ﻣﻘﻄ ﻊ اﻟ ﺸﯿﻔﺮة و ﻣﻘﻄ ﻊ اﻟﻤﻌﻄﯿ ﺎت و ﻣﻘﻄ ﻊ
اﻟﻤﻜﺪس و ﻣﻘﻄﻊ اﻟﻤﻌﻄﯿﺎت اﻹﺿﺎﻓﻲ ،ﺣﯿﺚ ﯾﺘﻢ اﻟﺮﺟﻮع إﻟ ﻰ ھ ﺬه اﻟﻤﻘ ﺎﻃﻊ ﺑﻤ ﺴﺎﻋﺪة ﻣ ﺴﺠﻼت اﻟﻤﻘ ﺎﻃﻊ ذات
اﻟ ـ 16ﺑ ﺖ و ھ ﻲ CS, DS, SS, ESو ﻛ ﻞ ﻣ ﻦ ھ ﺬه اﻟﻤ ﺴﺠﻼت ﯾﺤﺘ ﻮي ﻋﻨﻮاﻧ ﺎً ﻗﺎﻋ ﺪﯾﺎً ذا 16ﺑ ﺖ و اﻟ ﺬي
ﯾﺴﺘﺨﺪم ﻓﻲ ﺗﻮﻟﯿﺪ اﻟﻌﻨﻮان اﻟﻔﯿﺰﯾﺎﺋﻲ ﻟﻠﺬاﻛﺮة و اﻟﺬي ﯾﺸﯿﺮ إﻟﻰ ﺑﺪاﯾﺔ اﻟﻤﻘﻄﻊ اﻟﻤﻄﺎﺑﻖ ﻓﻲ اﻟﺬاﻛﺮة.
ﯾﺴﺘﻄﯿﻊ اﻟﻤﺒﺮﻣﺞ ﺗﺒﺪﯾﻞ اﻟﻘﯿﻢ ﻓﻲ ﻣﺴﺠﻼت اﻟﻤﻘﺎﻃﻊ ﺑﺮﻣﺠﯿﺎً ،ﻓﻤﺜﻼً :ﯾﻤﻜﻦ ﺗﮭﯿﺌﺔ ﻣﻘﻄﻊ ﻣﻌﻄﯿﺎت ﺟﺪﯾ ﺪ ﺑﺒ ﺴﺎﻃﺔ
و ذﻟﻚ ﺑﺘﺒﺪﯾﻞ ﻗﯿﻤﺔ اﻟﻤﺴﺠﻞ DSﻋﻦ ﻃﺮﯾﻖ ﺗﻨﻔﯿﺬ اﻟﺘﻌﻠﯿﻤﺘﯿﻦ اﻟﺘﺎﻟﯿﺘﯿﻦ :
Mov AX,A000
Mov DS,AX
و ﺳﺒﺐ وﺟﻮد ھﺎﺗﯿﻦ اﻟﺘﻌﻠﯿﻤﺘﯿﻦ ھﻮ ﻋﺪم وﺟﻮد ﺗﻌﻠﯿﻤﺔ واﺣﺪة ﻟﺘﺤﻤﯿﻞ ﻣﺴﺠﻞ ﻣﻘﻄﻊ ﺑﻌﺪد ﺛﺎﺑﺖ.
إن اﻟﻤﻌﺎﻟﺞ 8086ﻣﺰود ﺑﺘﺴﻌﺔ أﻧﻈﻤﺔ ﻋﻨﻮﻧﺔ ﻣﺨﺘﻠﻔﺔ ،و ھﻲ :اﻟﻌﻨﻮﻧﺔ ﺑﺎﻟﻤﺴﺠﻞ – اﻟﻌﻨﻮﻧﺔ اﻟﻔﻮرﯾﺔ – اﻟﻌﻨﻮﻧ ﺔ
اﻟﻤﺒﺎﺷ ﺮة – اﻟﻌﻨﻮﻧ ﺔ ﻏﯿ ﺮ اﻟﻤﺒﺎﺷ ﺮة ﺑﺎﻟﻤ ﺴﺠﻞ – اﻟﻌﻨﻮﻧ ﺔ اﻟﻘﺎﻋﺪﯾ ﺔ – اﻟﻌﻨﻮﻧ ﺔ اﻟﻤﻔﮭﺮﺳ ﺔ -اﻟﻌﻨﻮﻧ ﺔ اﻟﻘﺎﻋﺪﯾ ﺔ
اﻟﻤﻔﮭﺮﺳﺔ – اﻟﻌﻨﻮﻧﺔ ﺑﺎﻟﺴﻠﺴﻠﺔ – اﻟﻌﻨﻮﻧﺔ ﺑﺎﻟﻨﺎﻓﺬة.
و ھﺬه اﻷﻧﻈﻤﺔ اﻟﺘ ﺴﻌﺔ ﻋ ﺪا اﻟﻌﻨﻮﻧ ﺔ ﺑﺎﻟﻤ ﺴﺠﻞ و اﻟﻌﻨﻮﻧ ﺔ اﻟﻔﻮرﯾ ﺔ ﺗﺘﻄﻠ ﺐ اﻟﺮﺟ ﻮع إﻟ ﻰ اﻟﻤﺘﺤ ﻮل اﻟﻤﺨ ﺰن ﻓ ﻲ
اﻟﺬاﻛﺮة ﻟﺬﻟﻚ ﻧﺤﺘﺎج ﻷن ﺗﺒﺪأ وﺣﺪة ﻣﻼﺋﻤﺔ اﻟﻤﻤﺮات BIUﺑﺪورة ﻣﻤﺮ ﻟﻘﺮاءة أو ﻛﺘﺎﺑﺔ ﻓﻲ اﻟﺬاﻛﺮة و ھﻜ ﺬا ﻓ ﺈن
ﻛ ﻞ ﻧﻈ ﺎم ﻋﻨﻮﻧ ﺔ ﻟ ﮫ ﻃﺮﯾﻘ ﺔ ﻣﺨﺘﻠﻔ ﺔ ﻟﺤ ﺴﺎب ﻋﻨ ﻮان اﻟﻤﺘﺤ ﻮل اﻟ ﺬي ﺳ ﯿﺨﺮج ﻋﻠ ﻰ ﻣﻤ ﺮ اﻟﻌﻨ ﺎوﯾﻦ أﺛﻨ ﺎء دورة
اﻟﻤﻤﺮ ،و ﺳﻨﺪرس اﻵن ﻛﻼً ﻣﻦ ھﺬه اﻷﻧﻈﻤﺔ ﺑﺎﻟﺘﻔﺼﯿﻞ:
ﻣﻼﺣﻈﺔ :ﺟﻤﯿﻊ اﻟﺘﻌﻠﯿﻤﺎت ﺳﺘﺸﺮح ﻻﺣﻘﺎً.
ﻧﻼﺣﻆ ﻣﻦ اﻟﺸﻜﻠﯿﻦ اﻟﺴﺎﺑﻘﯿﻦ و ﻓﻲ اﻟﺸﻜﻞ اﻷول ﻧﺠﺪ أﻧﮫ ﻗﺪ ﺗﻢ ﺗﻮﻟﯿﺪ اﻟﻌﻨﻮان اﻟﻔﯿﺰﯾﺎﺋﻲ ﻟﻠﺘﻌﻠﯿﻤ ﺔ ﺑﻮاﺳ ﻄﺔ اﻟ ـIP
و اﻟـ CSﺣﯿﺚ ﯾﺘﻢ إﺣﻀﺎر اﻟﺘﻌﻠﯿﻤﺔ إﻟﻰ اﻟﻤﻌﺎﻟﺞ و ﺗﺘﻢ ﻓﻚ ﺷﯿﻔﺮﺗﮭﺎ ) 8BC3ﻣﻦ اﻟﺠﺪول ( .
ﺛﺎﻧﯿﺎً :ﻧﻈﺎم اﻟﻌﻨﻮﻧﺔ اﻟﻔﻮرﯾﺔ
ﻓﻲ ھﺬا اﻟﻨﻈﺎم ﯾﻜﻮن اﻟﻤﺘﺤﻮل ﺟﺰء ﻣﻦ اﻟﺘﻌﻠﯿﻤﺔ و ﻟﯿﺲ ﻣ ﻀﻤﻮن ﺳ ﺠﻞ أو ﻋﻨ ﻮان ﺣﺠ ﺮة ذاﻛ ﺮة ﺣﯿ ﺚ ﯾ ﺪﻋﻰ
ھﺬا اﻟﻤﺘﺤﻮل ﺑﺎﻟﻤﺘﺤﻮل اﻟﻔﻮري و اﻟﻤﺘﺤﻮﻻت اﻟﻔﻮرﯾﺔ ﺗﻤﺜﻞ ﻣﻌﻄﯿﺎت ﺛﺎﺑﺘﺔ ﯾﻤﻜ ﻦ أن ﺗﻜ ﻮن ﺑﺎﯾ ﺖ أو ﻛﻠﻤ ﺔ ) 2
ﺑﺎﯾﺖ (.
ﻣﺜ ﺎل MOV AL,15 :ﻧﺠ ﺪ أن ﻣﺘﺤ ﻮل اﻟﻤ ﺼﺪر ھ ﻮ 15hو ھ ﻮ ﻣﺘﺤ ﻮل ﻣ ﺼﺪر ﻓ ﻮري ذو ﺑﺎﯾ ﺖ واﺣ ﺪ و
اﻟﺸﻜﻼن اﻟﺘﺎﻟﯿﺎن ﯾﻮﺿﺤﺎن ﺣﺎﻟﺔ اﻟﻤﻌﺎﻟﺞ ﻗﺒﻞ و ﺑﻌﺪ ﺗﻨﻔﯿﺬ اﻟﺘﻌﻠﯿﻤﺔ اﻟﺴﺎﺑﻘﺔ.
BE BE
ﻣﺜﺎل:
إن اﻟﺘﻌﻠﯿﻤﺔ اﻟﺘﻲ ﺗﺴﺘﺨﺪم ﻧﻈﺎم اﻟﻌﻨﻮﻧﺔ ﻏﯿﺮ اﻟﻤﺒﺎﺷ ﺮة ﺑﺎﻟﻤ ﺴﺠﻞ ھ ﻲ ] MOV AX,[SIﺣﯿ ﺚ ﯾ ﺘﻢ ﺗﻮﻟﯿ ﺪ اﻟﻌﻨ ﻮان
اﻟﻔﯿﺰﯾ ﺎﺋﻲ ﻟﻠﻤﺘﺤ ﻮل ﺑﺎﻻﺳ ﺘﻨﺎد إﻟ ﻰ SIو . DSﻋ ﻦ ﻃﺮﯾ ﻖ اﻟﻌﻼﻗ ﺔ ، PA = ( DS x 10h ) + SIو ﺑﻔ ﺮض
ﻛﺎﻧ ﺖ SI = 1234و DS = 200ﻓ ﺈن PA = ( 0200 x 10 ) + 1234 = 03234و ھ ﻮ ﻣﻌﺎﻣ ﻞ اﻟﻤ ﺼﺪر
ﺣﯿﺚ ﯾﺬھﺐ اﻟﻤﻌﺎﻟﺞ إﻟﻰ اﻟﺤﺠﺮة 03234و ﯾﺄﺧﺬ ﻣﻨﮭﺎ ﻗﯿﻤﺘﮭﺎ و ﯾﻀﻌﮭﺎ ﻓﻲ ALأﻣ ﺎ ﻗﯿﻤ ﺔ اﻟﺤﺠ ﺮة اﻟﺘ ﻲ ﺗﻠﯿﮭ ﺎ
ﻓﯿﺘﻢ وﺿﻌﮭﺎ ﻓﻲ AHو ﯾﺒﯿﻦ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ﺣﺎﻟﺔ اﻟﻤﻌﺎﻟﺞ ﻗﺒﻞ و ﺑﻌﺪ ﺗﻨﻔﯿﺬ اﻟﺘﻌﻠﯿﻤﺔ اﻟﺴﺎﺑﻘﺔ:
… …
ھﺬا اﻟﻌﻨﻮان اﻟﻔﯿﺰﯾﺎﺋﻲ ﺗﺤﺴﺒﮫ اﻟـ BIUو ﻣﻦ ﺛﻢ ﺗﻄﻠﺐ اﻟـ EUﺑﺪء دورة ﻣﻤﺮ ﻛﺘﺎﺑﺔ ﻓ ﻲ اﻟ ﺬاﻛﺮة و ھﻜ ﺬا ﯾﻜﺘ ﺐ
ﻣﺘﺤﻮل اﻟﻤﺼﺪر ALﻓﻲ ﺣﺠﺮة اﻟﺬاﻛﺮة ذات اﻟﻌﻨ ﻮان اﻟﻔﯿﺰﯾ ﺎﺋﻲ 04234hأي ﺑﻌ ﺪ ﺗﻨﻔﯿ ﺬ اﻟﺘﻌﻠﯿﻤ ﺔ ﺗ ﺼﺒﺢ ﺣﺎﻟ ﺔ
اﻟﻤﻌﺎﻟﺞ ﻛﻤﺎ ھﻮ واﺿﺢ ﻓﻲ اﻟﺸﻜﻞ اﻟﺴﺎﺑﻖ.
Ahmed.ALrefaie@yahoo.com - 16 -
إﻟﻰ ﻃﻼب اﻟﻤﺮﻛﺰ اﻟﻌﺎﻟﻲ ﻟﺘﻘﻨﯿﺎت اﻟﺤﺎﺳﻮب
ﺗﺠﻤﯿﻊ أﺣﻤﺪ اﻟﺮﻓﺎﻋﻲ ﺗﻢ ﺗﺠﻤﯿﻌﻪ ﻣﻦ ﻣﻨﺘﺪﻳﺎت اﻟﻔﺮﻳﻖ اﻟﻌﺮﺑﻲ ﻟﻠﺒﺮﻣﺠﺔ
… …
06234 BE ﻣﻌﺎﻣﻞ اﻟﻤﺼﺪر 06234 BE ﻣﻌﺎﻣﻞ اﻟﻤﺼﺪر
ﺣﯿﺚ ﻧﻼﺣﻆ أﻧﮫ ﺑﻌﺪ ﺗﻨﻔﯿﺬ اﻟﺘﻌﻠﯿﻤﺔ ﺗﺼﺒﺢ ﻣﺤﺘﻮﯾﺎت AH = BEhو اﻟﺘ ﻲ ﺗﻤﺜ ﻞ ﻣﺤﺘﻮﯾ ﺎت ﺣﺠ ﺮة اﻟ ﺬاﻛﺮة ذات
اﻟﻌﻨﻮان اﻟﻔﯿﺰﯾﺎﺋﻲ . 06234h
اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﺗﻌﻠﯿﻤﺎت اﻟﻤﻌﺎﻟﺞ 8086
اﻟﮭﺪف D اﻟﻤﺼﺪر S و ﯾﺒ ﯿﻦ اﻟﺠ ﺪول اﻟﺘ ﺎﻟﻲ ﻣﺨﺘﻠ ﻒ أﻧ ﻮاع ﻣﺘﺤ ﻮﻻت اﻟﻤ ﺼﺪر و
Acc Reg16 اﻟﮭﺪف ﻟﺘﻌﻠﯿﻤﺔ . XCHG
Mem Reg ﻣﺜﺎل:
Reg Reg
XCHG AX,BX
ﻓﻲ ھﺬا اﻟﻤﺜﺎل ﯾﺘﻢ اﻟﺘﺒﺪﯾﻞ ﺑﯿﻦ ﻣﺤﺘﻮﯾﺎت AXو .BX
XCHG [SUM],BX
ﯾﺘﻢ اﻟﺘﺒﺪﯾﻞ ﺑﯿﻦ ﻣﺤﺘﻮى اﻟﺤﺠﺮة SUMﻓﻲ اﻟﺬاﻛﺮة و ﺑﯿﻦ اﻟﻤﺴﺠﻞ . BX
(3ﺗﻌﻠﯿﻤﺔ XLAT
ﺗﺘﻌﺎﻣﻞ ھﺬه اﻟﺘﻌﻠﯿﻤﺔ ﻣﻊ ALﻓﻘﻂ ،إن ﺗﻌﺎﻣﻞ ھﺬه اﻟﺘﻌﻠﯿﻤﺔ ﯾﺘﻢ ﻣﻊ اﻟﺠﺪاول اﻟﻤﺨﺰﻧ ﺔ ﻓ ﻲ اﻟ ﺬاﻛﺮة ﻓﻠ ﻮ وﺿ ﻌﻨﺎ
ﻓ ﻲ BXإزاﺣ ﺔ ﺑﺪاﯾ ﺔ اﻟﺠ ﺪول ﻧ ﺴﺒﺔ إﻟ ﻰ ﻣﻘﻄ ﻊ اﻟﻤﻌﻄﯿ ﺎت DSو وﺿ ﻌﻨﺎ ﻓ ﻲ ALإزاﺣ ﺔ اﻟﻌﻨ ﺼﺮ ﻧ ﺴﺒﮫ إﻟ ﻰ
ﺑﺪاﯾﺔ اﻟﺠﺪول ،ﻋﻨﺪھﺎ ﺗﻘﻮم ﺗﻌﻠﯿﻤ ﺔ XLATﺑﺠﻤ ﻊ ﻣﺤﺘﻮﯾ ﺎت اﻟﻤ ﺴﺠﻞ ALﻣ ﻊ ﻣﺤﺘﻮﯾ ﺎت اﻟﻤ ﺴﺠﻞ BXو ﺗﻌﺘﺒ ﺮ
اﻟﻨﺎﺗﺞ إزاﺣﺔ ﺑﺎﻟﻨﺴﺒﺔ إﻟﻰ ﻣﻘﻄﻊ اﻟﻤﻌﻄﯿﺎت ،ﺛﻢ ﺗﻘﻮم ﺑﻮﺿﻊ ﻗﯿﻤﺔ اﻟﺤﺠﺮة اﻟﻤﻌﻄﻰ إزاﺣﺘﮭﺎ ﻓﻲ . AL
اﻷﻋﻼم
اﻟﻜﻠﻤﺔ اﻟﻤﺨﺘﺰﻟﺔ اﻟﻤﻌﻨﻰ اﻟﺼﯿﻐﺔ اﻟﻌﻤﻠﯿﺔ
اﻟﻤﺘﺄﺛﺮة
( DS x 10h ) +
XLAT ﺗﺮﺟﻤﺔ ﺟﺪول اﻟﻤﺼﺪر XLAT ﻻ ﯾﻮﺟﺪ
[AL+BX] → AL
ﻣﺜﺎل:
ﺑﻔﺮض أﻧﮫ ﻟﺪﯾﻨﺎ ﺟﺪول ﻓ ﻲ اﻟ ﺬاﻛﺮة ﯾﺤﺘ ﻮي ﻋﻠ ﻰ ﻣﺮﺑﻌ ﺎت اﻷﻋ ﺪاد ﻣ ﻦ 1إﻟ ﻰ 9أي أﻧ ﮫ ﻓ ﻲ أول ﺣﺠ ﺮة ﻣ ﻦ
اﻟﺠﺪول ﯾﻮﺿﻊ ﻣﺮﺑﻊ اﻟﻌﺪد 1و ﻓ ﻲ اﻟﺤﺠ ﺮة اﻟﺜﺎﻧﯿ ﺔ ﯾﻮﺿ ﻊ ﻣﺮﺑ ﻊ اﻟﻌ ﺪد ) 2أي ، (4و
DS ھﻜﺬا … وﻣﻦ ھﺬا ﻧﺮى أن اﻟﺠﺪول ﻃﻮﻟﮫ ﺗﺴﻊ ﺑﺎﯾﺘﺎت إزاﺣﺔ ﺑﺪاﯾﺘﮫ ﻋﻦ ﺑﺪاﯾ ﺔ
ﻣﻘﻄﻊ اﻟـ DSھﻲ . 100
100 ﻋﻨﺪﻣﺎ ﯾﻄﻠﺐ ﻣﻨﺎ اﻟﺤﺼﻮل ﻋﻠ ﻰ ﻣﺮﺑ ﻊ أﺣ ﺪ ھ ﺬه اﻷﻋ ﺪاد و ﻟ ﯿﻜﻦ اﻟﻌ ﺪد 4أي
1
4
أن اﻟﻤﻄﻠﻮب ھﻮ أن ﺗﺼﺒﺢ ﻗﯿﻤﺔ AL = 16ﻟﺬﻟﻚ ﻧﻘﻮم ﺑﻤﺎ ﯾﻠﻲ:
9 (1ﻧﻀﻊ AL = 3و . BX = 100
16 (2ﻧﻌﻄﻲ اﻟﺘﻌﻠﯿﻤﺔ . XLAT
و ﺑﻌﺪ ﺗﻨﻔﯿﺬھﺎ ﯾﺼﺒﺢ AL = 16و ھﻮ اﻟﻤﻄﻠﻮب.
أﻣﺜﻠﺔ:
100 00
LEA SI,[100] => SI = 1000
10
300 30
40
00
30
ﻣﺜﺎل :ﺑﻔ ﺮض AX = 4F3Dhو BX = FD81hو CF = 1ﻓﻤ ﺎ ھ ﻲ ﻧﺘﯿﺠ ﺔ ﺗﻨﻔﯿ ﺬ اﻟﺘﻌﻠﯿﻤ ﺔ ADC AX,BX؟
ﻣﺒﯿﻨﺎً ﺣﺎﻟﺔ أﻋﻼم اﻟﺤﺎﻟﺔ ﺑﻌﺪ ﺗﻨﻔﯿﺬ ﻋﻤﻠﯿﺔ اﻟﺠﻤﻊ ھﺬه .
اﻟﺤﻞ :ﺳﻨﻜﺘﺐ اﻟﺸﯿﻔﺮة اﻟﺜﻨﺎﺋﯿﺔ ﻟﻠﻤﺘﺤﻮﻻت ﻣﻦ أﺟﻞ ﺗﻮﺿﯿﺢ ﺣﺎﻟﺔ اﻷﻋﻼم
1111 111 1
AX = 0100 1111 0011 1101 b
BX = 1111 1101 1000 0001 b
= CF 0001 b +
1 0100 1100 1011 1111 b
CF
و اﻵن أﻋﻼم اﻟﺤﺎﻟﺔ ھﻲ:
PF = 0ﻷن ﻋﺪد اﻟﻮاﺣﺪات ﻓﺮدي ﻓﻲ اﻟﺒﺎﯾﺖ اﻷول ﻣﻦ ﻧﺎﺗﺞ اﻟﺠﻤﻊ
AF = 0ﻷﻧﮫ ﻻ ﯾﻮﺟﺪ اﻧﺰﯾﺎح ﻣﻦ اﻟﺨﺎﻧﺔ 3إﻟﻰ اﻟﺨﺎﻧﺔ 4ﻓﻲ اﻟﺒﺎﯾﺖ اﻷول ﻣﻦ ﻧ ﺎﺗﺞ اﻟﺠﻤ ﻊ ) ﺣﯿ ﺚ ﯾ ﺘﻢ ﺗ ﺮﻗﯿﻢ
اﻟﺨﺎﻧﺎت ﺑﺪءاً ﻣﻦ اﻟﺼﻔﺮ (
SF = 0و ھﻲ آﺧﺮ ﺧﺎﻧﺔ ﻣﻦ ﻧﺘﯿﺠﺔ اﻟﺠﻤﻊ ) اﻟﻨﺎﺗﺞ ﻣﻮﺟﺐ (
CF = 1ﺑﺴﺒﺐ وﺟﻮد اﻧﺰﯾﺎح ﺧﺎرﺟﻲ
OF = 0ﻷﻧﮫ ﯾﻮﺟﺪ إﻧﺰﯾﺎح داﺧﻠﻲ و إﻧﺰﯾﺎح ﺧﺎرﺟﻲ
ﻣﻼﺣﻈﺔ :اﻻﻧﺰﯾﺎح اﻟﺪاﺧﻠﻲ ھﻮ اﻟﺪاﺧﻞ إﻟﻰ اﻟﺨﺎﻧﺔ ذات اﻷھﻤﯿﺔ اﻟﻌﻈﻤﻰ MSB
ﻣﻼﺣﻈﺔ OF = 1 :إذا وﺟﺪ اﻧﺰﯾﺎح داﺧﻠﻲ ﻓﻘﻂ أو وﺟﺪ اﻧﺰﯾﺎح ﺧﺎرﺟﻲ ﻓﻘﻂ
ﺗﻌﻠﯿﻤﺔ اﻟﺘﺼﺤﯿﺢ DAA
ﺗﺴﺘﺨﺪم ھﺬه اﻟﺘﻌﻠﯿﻤﺔ ﻹﻧﺠﺎز ﻋﻤﻠﯿ ﺔ ﺗ ﺼﺤﯿﺢ ﻟﻨ ﺎﺗﺞ ﺟﻤ ﻊ ﻋ ﺪدﯾﻦ ﺑ ﺸﯿﻔﺮة ) BCDھ ﺬا و ﯾﺠ ﺐ أن ﯾﻜ ﻮن ﻧ ﺎﺗﺞ
اﻟﺠﻤﻊ ﺣﺘﻤﺎً ﻓﻲ ALأي ﻓﻲ اﻟﻨﺼﻒ اﻟﺴﻔﻠﻲ ﻣﻦ اﻟﻤﺮاﻛﻢ ( AXو اﻟﺠﺪول اﻟﺘﺎﻟﻲ ﯾﺒﯿﻦ اﻟﺤ ﺎﻻت اﻟﻤﻤﻜﻨ ﺔ ﻟﺠﻤ ﻊ
ﻋﺪدﯾﻦ ﺑﺸﯿﻔﺮة : BCD
+ 0 1 2 3 4 5 6 7 8 9
0 9
1 9 10
2 9 10
3 9 10
4 9 10
5 9 10
6 9 10 15
7 9 10 15 16
8 9 10 15 16
9 9 10 15 16 18
اﻟﻤﻨﻄﻘﺔ اﻷوﻟﻰ أرﻗﺎﻣﮭﺎ ﻣﻦ 0إﻟﻰ 9و ﻓﯿﮭﺎ ﺗﻜﻮن ﻧﺘﯿﺠﺔ اﻟﺠﻤ ﻊ ﺻ ﺤﯿﺤﺔ و ﻻ ﺗﺤﺘ ﻮي ﻋﻠ ﻰ اﻧﺰﯾ ﺎح و ﻟﯿ ﺴﺖ
ﺑﺤﺎﺟﺔ إﻟﻰ ﺗﺼﺤﯿﺢ ﻣﺜﻼً 7+2=9و ھﻲ أرﻗﺎم واﻗﻌﺔ ﺿﻤﻦ ﻧﻄﺎق اﻟﻤﻨﻄﻘﺔ اﻷوﻟﻰ.
اﻟﻤﻨﻄﻘ ﺔ اﻟﺜﺎﻧﯿ ﺔ أرﻗﺎﻣﮭ ﺎ ﻣ ﻦ 10إﻟ ﻰ 15و ﻓﯿﮭ ﺎ ﺗﻜ ﻮن ﻧﺘﯿﺠ ﺔ اﻟﺠﻤ ﻊ ﻏﯿ ﺮ ﺻ ﺤﯿﺤﺔ و ﺑﺤﺎﺟ ﺔ إﻟ ﻰ ﺗ ﺼﺤﯿﺢ
ﺑﺈﺿﺎﻓﺔ اﻟﻌﺪد 6ﻓﻨﺤﺼﻞ ﻋﻠ ﻰ رﻗ ﻢ و ﺣﻤ ﻞ إﻟ ﻰ اﻟﻌ ﺪد اﻟﺜ ﺎﻧﻲ ﻓﻤ ﺜﻼً 9+5=Eﻓﺒﺈﺿ ﺎﻓﺔ 6إﻟ ﻰ اﻟﻌ ﺪد Eﯾﻜ ﻮن
اﻟﻨﺎﺗﺞ 6+E=14و ﺑﺬﻟﻚ ﺗﻜﻮن اﻟﻨﺘﯿﺠﺔ ﺻﺤﯿﺤﺔ.
اﻟﻤﻨﻄﻘﺔ اﻟﺜﺎﻟﺜﺔ أرﻗﺎﻣﮭﺎ ﻣﻦ 16و ﺣﺘﻰ 18و ﻓﯿﮭﺎ ﺗﻜﻮن ﻧﺘﯿﺠﺔ اﻟﺠﻤﻊ ﻏﯿﺮ ﺻﺤﯿﺤﺔ و ﺑﺤﺎﺟﺔ إﻟ ﻰ ﺗ ﺼﺤﯿﺢ و
ھﻨﺎ ﺗﺘﻜﻮن اﻟﻨﺘﯿﺠﺔ ﻣﻦ ﺣﺎﺻﻞ ﺟﻤﻊ ﻣﻊ اﻧﺰﯾﺎح.
و ھﻨﺎ AF = 0ﺑﺴﺒﺐ ﻋﺪم وﺟﻮد اﻧﺰﯾﺎح ﻣﻦ اﻟﺨﺎﻧﺔ 3إﻟﻰ اﻟﺨﺎﻧﺔ ) 4ﺣﯿﺚ ﯾﺒﺪأ اﻟﺘﺮﻗﯿﻢ اﻋﺘﺒﺎراً ﻣﻦ اﻟﺼﻔﺮ (
(2ﺗﻌﻠﯿﻤﺎت اﻟﻄﺮح
ھﻨﺎك ﻣﺠﻤﻮﻋﺔ واﺳﻌﺔ ﻣﻦ ﺗﻌﻠﯿﻤﺎت اﻟﻄﺮح ﻛﻤﺎ ھﻮ واﺿﺢ ﻣﻦ اﻟﺠﺪول اﻟﺘﺎﻟﻲ:
اﻟﻜﻠﻤﺔ اﻷﻋﻼم
اﻟﻤﻌﻨﻰ اﻟﺼﯿﻐﺔ اﻟﻌﻤﻠﯿﺔ
اﻟﻤﺨﺘﺰﻟﺔ اﻟﻤﺘﺄﺛﺮة
D-S→D
SUB ﻃﺮح SUB D,S
burrow → CF أﻋﻼم اﻟﺤﺎﻟﺔ
اﻟﻄﺮح ﻣﻊ D - S - CF → D
SBB SBB D,S
Carry → CF أﻋﻼم اﻟﺤﺎﻟﺔ
اﻻﺳﺘﻌﺎرة
اﻹﻧﻘﺎص ﺑﻤﻘﺪار
DEC DEC D D-1 → D أﻋﻼم اﻟﺤﺎﻟﺔ
واﺣﺪ
0–D→D
NEG اﻟﻤﺘﻤﻢ اﻟﺜﻨﺎﺋﻲ NEG D
1 → CF
أﻋﻼم اﻟﺤﺎﻟﺔ
ﺗﺼﺤﯿﺢ ﻧﺎﺗﺞ ﻛﻞ أﻋﻼم
DAS ﻃﺮح ﻋﺪدﯾﻦ DAS ﺳﯿﺘﻢ ﺷﺮﺣﮭﺎ ﻻﺣﻘﺎً اﻟﺤﺎﻟﺔ ﻋﺪا
ﺑﺸﯿﻔﺮة BCD OF
ﺗﺼﺤﯿﺢ ﻧﺎﺗﺞ ﺟﻤﻊ
AAS ﻋﺪدﯾﻦ ﺑﺸﯿﻔﺮة AAS ﺳﯿﺘﻢ ﺷﺮﺣﮭﺎ ﻻﺣﻘﺎً AF, CF
اﻵﺳﻜﻲ
ﻣﻼﺣﻈﺔ :إن اﻟﻤﺘﺤﻮﻻت اﻟﻤﺴﺘﺨﺪﻣﺔ ﻣﻦ أﺟﻞ ﺗﻌﻠﯿﻤﺘﻲ اﻟﻄﺮح SUB, SBBھﻲ ﻧﻔﺴﮭﺎ اﻟﻤﺘﺤ ﻮﻻت اﻟﻤ ﺴﻤﻮﺣﺔ
ﻣﻦ أﺟﻞ ﺗﻌﻠﯿﻤﺘ ﻲ اﻟﺠﻤ ﻊ ADD,ADCأﻣ ﺎ ﺑﺎﻟﻨ ﺴﺒﺔ إﻟ ﻰ اﻟﻤﺘﺤ ﻮﻻت اﻟﻤ ﺴﺘﺨﺪﻣﺔ ﻣ ﻦ أﺟ ﻞ ﺗﻌﻠﯿﻤ ﺔ DECﻓﮭ ﻲ
ﻧﻔ ﺴﮭﺎ اﻟﻤﺘﺤ ﻮﻻت اﻟﻤ ﺴﻤﻮﺣﺔ ﻣ ﻦ أﺟ ﻞ ﺗﻌﻠﯿﻤ ﺔ INCو ﺑﺎﻟﻨ ﺴﺒﺔ ﻟﺘﻌﻠﯿﻤ ﺔ NEGﻓ ﺎﻟﻤﺘﺤﻮﻻت اﻟﻤ ﺴﻤﻮﺣﺔ ھ ﻲ
. Reg, Reg16, Mem, Mem16
ﻣﺜ ﺎل :ﺑﻔ ﺮض أن SI = 0018hو DS = 2F00hو اﻟﻌﻨ ﻮان اﻟﻔﯿﺰﯾ ﺎﺋﻲ اﻟﻤﺘﻮﻟ ﺪ ﻋﻨﮭﻤ ﺎ ھ ﻮ 2F018hو
ﺑﻔﺮض ﻛﺎﻧﺖ ﻣﺤﺘﻮﯾﺎت اﻟﺤﺠﺮة اﻟﺘﻲ ﯾ ﺸﯿﺮ إﻟﯿﮭ ﺎ اﻟﻌﻨ ﻮان اﻟﻔﯿﺰﯾ ﺎﺋﻲ ، [2F018] = 0400hﻣ ﺎ ھ ﻮ ﻧ ﺎﺗﺞ ﺗﻨﻔﯿ ﺬ
اﻟﺘﻌﻠﯿﻤﺔ . SUB [SI],03F8h
اﻟﺤﻞ:
ﺗﻘﻮم ھﺬه اﻟﺘﻌﻠﯿﻤﺔ ﺑﻄﺮح ﻣﺤﺘﻮﯾ ﺎت ﻣﺘﺤ ﻮل اﻟﻤ ﺼﺪر ) ﻣﺘﺤ ﻮل ﻓ ﻮري ھﻨ ﺎ ( ﻣ ﻦ ﻣﺤﺘﻮﯾ ﺎت ﻣﺘﺤ ﻮل اﻟﮭ ﺪف )
ﻣﺤﺘﻮﯾﺎت ﺣﺠﺮة ذاﻛﺮة ھﻨﺎ ( ﺣﯿ ﺚ أن ﺗﻌﻠﯿﻤ ﺔ اﻟﻄ ﺮح ﺗ ﺘﻢ ﺑﺈﯾﺠ ﺎد اﻟﻤ ﺘﻤﻢ اﻟﺜﻨ ﺎﺋﻲ ﻟﻤﺘﺤ ﻮل اﻟﻤ ﺼﺪر و ﻣ ﻦ ﺛ ﻢ
ﺟﻤﻌﮫ ﻣﻊ ﻣﺘﺤﻮل اﻟﮭﺪف.
ﺗﺬﻛﺮة ﺑﺎﻟﻤﺘﻤﻢ اﻟﺜﻨﺎﺋﻲ ) و اﻟﺬي ﯾﺸﺎر إﻟﯿﮫ ﺑﻮﺿﻊ ﺧﻄﯿﻦ ﻓﻮق اﻟﻌﺪد اﻟﺬي ﻧﺮﯾﺪ إﯾﺠﺎد اﻟﻤﺘﻤﻢ اﻟﺜﻨﺎﺋﻲ ﻟﮫ ( :
إذا أردت اﻟﺤﺼﻮل ﻋﻠﻰ اﻟﻤﺘﻤﻢ اﻟﺜﻨﺎﺋﻲ ﻟﻠﻌﺪد 03F8hﻓﺎﻋﻤﻞ ﻣﺎ ﯾﻠﻲ:
(1ﺗﺤﻮﯾﻞ ھﺬا اﻟﻌﺪد إﻟﻰ اﻟﻨﻈﺎم اﻟﺜﻨﺎﺋﻲ ﻓﯿﺼﺒﺢ 0000 0011 1111 1000
(2أﻗﻠﺐ اﻷﺻﻔﺎر واﺣﺪات و اﻟﻮاﺣﺪات أﺻﻔﺎراً ﻓﯿﻨﺘﺞ 1111 1100 0000 0111
(3أﺿﻒ واﺣﺪ إﻟﻰ اﻟﺮﻗﻢ اﻟﻨﺎﺗﺞ ﻓﺘﺤﺼﻞ ﻋﻠﻰ اﻟﻤﺘﻤﻢ اﻟﺜﻨﺎﺋﻲ – 03F8h = 1111 1100 0000 1000
ﯾ ﺘﻢ ﺗﻄﺒﯿ ﻖ ھ ﺬه اﻟﺘﻌﻠﯿﻤ ﺎت ﻋﻠ ﻰ اﻷﻋ ﺪاد اﻟﺜﻨﺎﺋﯿ ﺔ أو ﺑﺎﻟ ﺸﯿﻔﺮة BCDأي ﻓ ﻲ ﻣﻌﺎﻟﺠ ﺔ اﻷﻋ ﺪاد ذات اﻹﺷ ﺎرة و
اﻷﻋﺪاد ﺑﺪون إﺷﺎرة .و ھﺬه اﻟﺘﻌﻠﯿﻤﺎت ﻣﺒﯿﻨﺔ ﻓﻲ اﻟﺠﺪول اﻟﺘﺎﻟﻲ:
اﻟﻜﻠﻤﺔ
اﻟﻤﻌﻨﻰ اﻟﺼﯿﻐﺔ اﻟﻌﻤﻠﯿﺔ اﻷﻋﻼم اﻟﻤﺘﺄﺛﺮة
اﻟﻤﺨﺘﺰﻟﺔ
AL.S8 → AX
MUL ﺿﺮب ﺑﺪن إﺷﺎرة MUL S أﻋﻼم اﻟﺤﺎﻟﺔ
AX.S16 → DX,AX
Q[AX/S8] → AL
ﺗﻘﺴﯿﻢ ﺑﺪون R[AX/S8] → AH
DIV DIV S أﻋﻼم اﻟﺤﺎﻟﺔ
إﺷﺎرة Q[(DX,AX)/S16] → AX
R[(DX,AX)/S16] → DX
ﺑﺒﺴﺎﻃﺔ :اﻟﻨﻘﻄﺔ ﺗﻌﻨﻰ ﻋﻤﻠﯿﺔ اﻟﻀﺮب اﻟﻌﺎدﯾﺔ ،و اﻟﺮﻣﺰ S8ﯾﻌﻨﻲ ﻣﺘﺤﻮل ﻣﺼﺪر ﻋﺒﺎرة ﻋ ﻦ ﺑﺎﯾ ﺖ أﻣ ﺎ اﻟﺮﻣ ﺰ
Rﻓﯿﻌﻨﻲ ﺑﺎﻗﻲ اﻟﻘﺴﻤﺔ و اﻟﺮﻣﺰ Qﻣﺎ ھﻮ إﻻ ﺣﺎﺻﻞ ﻗﺴﻤﺔ.
ﻣﻼﺣﻈﺔ :إذا ﻛﺎﻧﺖ ﻗﯿﻤﺔ Qﻓﻲ اﻟﺤﺎﻟﺔ اﻷوﻟﻰ ) ﺣﺎﻟﺔ ﺑﺎﯾﺖ ( ﻣﺴﺎوﯾﺔ ﻟـ FFأو ﻛﺎﻧﺖ ﻗﯿﻤ ﺔ Qﻓ ﻲ اﻟﺤﺎﻟ ﺔ اﻟﺜﺎﻧﯿ ﺔ
) ﺣﺎﻟﺔ ﻛﻠﻤﺔ ( ﻣﺴﺎوﯾﺔ إﻟﻰ FFFFhﻓﺘﺤﺪث ﻣﻘﺎﻃﻌﺔ ﻣﻦ اﻟﻨﻮع ﺻﻔﺮ ،و ﺗُﻌﺮف ھﺬه اﻟﻤﻘﺎﻃﻌﺔ ﺑﺨﻄﺄ اﻟﺘﻘﺴﯿﻢ.
ﻣﻼﺣﻈﺔ :ﺑﺎﻟﻨﺴﺒﺔ ﻟﺘﻌﻠﯿﻤﺎت اﻟ ﻀﺮب و اﻟﺘﻘ ﺴﯿﻢ ﻟﻸﻋ ﺪاد ذات اﻹﺷ ﺎرة ﻓﮭ ﻲ ﻣ ﺸﺎﺑﮭﺔ ﺗﻤﺎﻣ ﺎً ﻟﻠﺘﻌﻠﯿﻤ ﺎت اﻟ ﺴﺎﺑﻘﺔ و
ﺗُﻌﺮف ﻛﻤﺎ ﯾﻠﻲ:
IMULھﻲ ﺗﻌﻠﯿﻤﺔ اﻟﻀﺮب ﻣﻊ أﺧﺬ اﻹﺷﺎرة ﺑﻌﯿﻦ اﻻﻋﺘﺒﺎر.
IDIVھﻲ ﺗﻌﻠﯿﻤﺔ اﻟﺘﻘﺴﯿﻢ ﻣﻊ أﺧﺬ اﻹﺷﺎرة ﺑﻌﯿﻦ اﻻﻋﺘﺒﺎر.
و ﺗﻜﻮن إﺷﺎرة اﻟﻨﺎﺗﺞ ﻓﻲ ﻛﻠﺘﺎ اﻟﺘﻌﻠﯿﻤﺘﯿﻦ آﺧﺮ ﺧﺎﻧﺔ ﻣﻨﮫ أي ﺧﺎﻧﺔ اﻟـ . MSB
و ﺑﺎﻹﺿﺎﻓﺔ إﻟﻰ ذﻟﻚ ھﻨﺎك اﻟﺘﻌﻠﯿﻤﺎت اﻟﺘﺎﻟﯿﺔ )ﺗﺎﺑﻊ ﻟﺠﺪول اﻟﻀﺮب و اﻟﻘﺴﻤﺔ(:
اﻟﻜﻠﻤﺔ اﻷﻋﻼم
اﻟﻤﻌﻨﻰ اﻟﺼﯿﻐﺔ اﻟﻌﻤﻠﯿﺔ
اﻟﻤﺨﺘﺰﻟﺔ اﻟﻤﺘﺄﺛﺮة
ﺗﺼﺤﯿﺢ اﻟﻨﺎﺗﺞ ﻓﻲ ALﻣﻦ Q[AL/10d] → AH
AAM ﺿﺮب ﻋﺪدﯾﻦ BCDأو AAM R[AL/10d] → AL أﻋﻼم اﻟﺤﺎﻟﺔ
ﻋﺪدﯾﻦ ﺛﻨﺎﺋﯿﯿﻦ
ﺗﺼﺤﯿﺢ AXﻣﻦ أﺟﻞ اﻟﻘﺴﻤﺔ
ﺣﯿﺚ AXﻟﯿﺲ ﻧﺎﺗﺞ اﻟﻘﺴﻤﺔ و
إﻧﻤﺎ ھﻮ ﻣﺘﺤﻮل اﻟﮭﺪف ﻓﻲ
AH.10d + AL → AL SF, ZF,
AAD ﻋﻤﻠﯿﺔ اﻟﻘﺴﻤﺔ .ﻟﺬﻟﻚ ﻧﻄﺒﻖ ھﺬه AAD
00 → AH PF
اﻟﺘﻌﻠﯿﻤﺔ ﻗﺒﻞ ﺗﻌﻠﯿﻤﺔ اﻟﻘﺴﻤﺔ
ﻋﻠﻰ ﻋﻜﺲ ﺑﺎﻗﻲ ﺗﻌﻠﯿﻤﺎت
اﻟﺘﺼﺤﯿﺢ
→ MSB of AL
CBW ﺗﺤﻮﯾﻞ ﺑﺎﯾﺖ إﻟﻰ ﻛﻠﻤﺔ CBW
All bits of AH ﻻ ﯾﻮﺟﺪ
ﺗﺤﻮﯾﻞ ﻛﻠﻤﺔ إﻟﻰ ﻛﻠﻤﺔ → MSB of AX
CWD CBW
All bits of DX ﻻ ﯾﻮﺟﺪ
ﻣﻀﺎﻋﻔﺔ
ﻣﻼﺣﻈﺔ :إن ﺗﻌﻠﯿﻤﺎت اﻟﻘﺴﻤﺔ ﯾﻤﻜﻦ اﺳﺘﺨﺪاﻣﮭﺎ ﻟﺘﻘﺴﯿﻢ اﻟﻤﻘﺴﻮم ﺑـ 8ﺑﺘﺎت ﻓﻲ ALﻋﻠﻰ ﻣﻘﺴﻮم ﻋﻠﯿﮫ ﺑ ـ 8ﺑﺘ ﺎت
أﯾﻀﺎً .و ﻹﻧﺠﺎز ھ ﺬا ﯾﺠ ﺐ أوﻻً ﺗﻤﺪﯾ ﺪ إﺷ ﺎرة اﻟﻤﻘ ﺴﻮم ﻟﻤ ﻞء اﻟﻤ ﺴﺠﻞ AXو ھ ﺬا ﯾﻌﻨ ﻲ ﻣ ﻞء AHﺑﺄﺻ ﻔﺎر إذا
ﻛ ﺎن اﻟﻌ ﺪد ﻣﻮﺟﺒ ﺎً أو ﺑﻮاﺣ ﺪات إذا ﻛ ﺎن اﻟﻌ ﺪد ﺳ ﺎﻟﺒﺎً ) أي ﺣ ﺴﺐ ﺧﺎﻧ ﺔ اﻹﺷ ﺎرة ( و ﺗ ﺘﻢ ھ ﺬه اﻟﻌﻤﻠﯿ ﺔ ﺑﻮاﺳ ﻄﺔ
اﻟﺘﻌﻠﯿﻤﺔ . CBWو ﺑﺸﻜﻞ ﻣﺸﺎﺑﮫ ﻓﺈن ﺗﻌﻠﯿﻤﺎت اﻟﺘﻘﺴﯿﻢ 32ﺑ ﺖ ﻋﻠ ﻰ 16ﺑ ﺖ ﯾﻤﻜ ﻦ اﺳ ﺘﺨﺪاﻣﮭﺎ ﻟﺘﻘ ﺴﯿﻢ ﻣﻘ ﺴﻮم
ذي 16ﺑ ﺖ ﻓ ﻲ AXﻋﻠ ﻰ ﻣﻘ ﺴﻮم ﻋﻠﯿ ﮫ ذي 16ﺑ ﺖ و ذﻟ ﻚ ﺑﺘﺤﻮﯾ ﻞ اﻟﻜﻠﻤ ﺔ إﻟ ﻰ ﻛﻠﻤ ﺔ ﻣ ﻀﺎﻋﻔﺔ و ﯾ ﺘﻢ ھ ﺬا
ﺑﻮاﺳﻄﺔ اﻟﺘﻌﻠﯿﻤﺔ .CWD
ﻛﻤﺎ ذﻛﺮﻧﺎ ﺳﺎﺑﻘﺎً ﻓﺈن اﻷﻋﺪاد ﻏﯿﺮ اﻟﻤﺠﻤﻌﺔ ﯾﺘﻢ ﺣﻔﻈﮭﺎ ﻛﺎﻟﺘﺎﻟﻲ:
15 اﻟﻘﺴﻢ اﻟﻌﻠﻮي ﻣﻦ اﻟﺒﺎﯾ ﺖ اﻟ ﺬي ﯾﺤﺘ ﻮي ﻋﻠ ﻰ اﻟﻌ ﺪد ﻏﯿ ﺮ اﻟﻤﺠﻤ ﻊ ﯾﺠ ﺐ 0
0 0 أن ﺗﻜﻮن ﻗﯿﻤﺘﮫ ﻣﺴﺎوﯾﺔ إﻟﻰ اﻟﺼﻔﺮ.
إن اﻟﺘﻌﻠﯿﻤﺔ AAMﺗﺴﺘﺨﺪم ﻟﺘﺼﺤﯿﺢ ﻧﺎﺗﺞ ﺿﺮب ﻋﺪدﯾﻦ ﻏﯿﺮ ﻣﺠﻤﻌ ﯿﻦ
ﻷﻧﮫ ﻋﻨ ﺪ ﺿ ﺮب ﻋ ﺪدﯾﻦ ﻏﯿ ﺮ ﻣﺠﻤﻌ ﯿﻦ ﻧﺤ ﺼﻞ ﻋﻠ ﻰ ﻧﺘﯿﺠ ﺔ ﻣﺠﻤﻌ ﺔ و اﻟﻨﺘﯿﺠ ﺔ ﯾﺠ ﺐ أن ﺗﻜ ﻮن ﻏﯿ ﺮ ﻣﺠﻤﻌ ﺔ،
ﻟﺬﻟﻚ ﻧﺼﺤﺤﮭﺎ ﺑﻮاﺳﻄﺔ اﻟﺘﻌﻠﯿﻤﺔ . AAM
ﻣﺜﺎل :ﺑﻔﺮض أن BL = 09و AL = 07ﻓﻤﺎ ھﻲ ﻧﺘﯿﺠﺔ ﺗﻨﻔﯿﺬ اﻟﺘﻌﻠﯿﻤﺎت اﻟﺘﺎﻟﯿﺔ :
MUL BL
AAM
اﻟﺤﻞ:
AX = 00 07
BX = 00 09
MUL 00 3F AX
AAM 06 03 AX
ﻗﺎﻋﺪة اﻟﺘﺼﺤﯿﺢ ﻓﻲ ﺗﻌﻠﯿﻤﺔ AADھﻲ :
إن اﻟﺘﻘ ﺴﯿﻢ ﺑﺎﻟﻨ ﺴﺒﺔ إﻟ ﻰ اﻷﻋ ﺪاد ﻏﯿ ﺮ اﻟﻤﺠﻤﻌ ﺔ ﯾ ﺆدي إﻟ ﻰ اﻟﺤ ﺼﻮل ﻋﻠ ﻰ ﻧﺘ ﺎﺋﺞ ﺧﺎﻃﺌ ﺔ و ﻟ ﺬﻟﻚ ﯾﺠ ﺐ ﺗﺠﻤﯿ ﻊ
اﻷﻋ ﺪاد ﻗﺒ ﻞ ﻗ ﺴﻤﺘﮭﺎ .و ﺑﻔ ﺮض أن ) AX = 0604hو ھ ﻲ أﻋ ﺪاد ﻏﯿ ﺮ ﻣﺠﻤﻌ ﺔ ( ﻓﻨﺘﯿﺠ ﺔ ﺗﻄﺒﯿ ﻖ ﺗﻌﻠﯿﻤ ﺔ
اﻟﺘﺼﺤﯿﺢ ) AADو اﻟﺘﻲ ﯾﺘﻢ ﺗﻄﺒﯿﻘﮭﺎ ﻗﺒﻞ ﻋﻤﻠﯿﺔ اﻟﺘﻘﺴﯿﻢ ( ھﻲ:
AL = 06 x 10d + 04h = 64d = 40h
AH = 00h => AX = 0040h
اﻟﻜﻠﻤﺔ
اﻟﻤﻌﻨﻰ اﻟﺼﯿﻐﺔ اﻟﻌﻤﻠﯿﺔ اﻷﻋﻼم اﻟﻤﺘﺄﺛﺮة
اﻟﻤﺨﺘﺰﻟﺔ
إزاﺣﺔ SAL/SHL D,count
رﯾﺎﺿﯿﺔ/إزاﺣﺔ OF,CF
SAL/SHL
ﻣﻨﻄﻘﯿﺔ و ﻛﻼھﻤﺎ
ﻧﺤﻮ اﻟﯿﺴﺎر
CF 0
اﻟﻌﻤﻠﯿﺔ ھﻨﺎ ھﻲ إزاﺣ ﺔ ﻣﺤﺘﻮﯾ ﺎت Dﻧﺤ ﻮ اﻟﯿ ﺴﺎر ﺑﺎﺗﺠ ﺎه CFﻋ ﺪداً ﻣ ﻦ اﻟﺨﺎﻧ ﺎت ﻣ ﺴﺎوﯾﺎً ﻟﻘﯿﻤ ﺔ countو ﻣ ﻞء
ﺟﻤﯿﻊ اﻟﺨﺎﻧﺎت اﻟﯿﻤﻨﻰ اﻟﻤﻔﺮﻏﺔ ﺑﺄﺻﻔﺎر.
و ﺑﺎﻟﻨﺴﺒﺔ ﻟﺘﺄﺛﯿﺮ ھﺬه اﻟﺘﻌﻠﯿﻤﺔ ﻋﻠﻰ ﻋﻠﻢ : OFإذا ﺗﺒﺪﻟﺖ ﺧﺎﻧﺔ اﻹﺷﺎرة ﻧﺘﯿﺠﺔ اﻹزاﺣﺔ ﻓﺈن . OF = 1
اﻟﻜﻠﻤﺔ
اﻟﻤﻌﻨﻰ اﻟﺼﯿﻐﺔ اﻟﻌﻤﻠﯿﺔ اﻷﻋﻼم اﻟﻤﺘﺄﺛﺮة
اﻟﻤﺨﺘﺰﻟﺔ
إزاﺣﺔ ﻣﻨﻄﻘﯿﺔ SHR D,count OF,CF
SHR
ﻧﺤﻮ اﻟﯿﻤﯿﻦ
0 CF
اﻟﻌﻤﻠﯿﺔ ھﻨﺎ ھ ﻲ إزاﺣ ﺔ ﻣﺤﺘﻮﯾ ﺎت Dﻧﺤ ﻮ اﻟﯿﻤ ﯿﻦ ﺑﺎﺗﺠ ﺎه CFﻋ ﺪداً ﻣ ﻦ اﻟﺨﺎﻧ ﺎت ﻣ ﺴﺎوﯾﺎً ﻟﻘﯿﻤ ﺔ countو ﻣ ﻞء
ﺟﻤﯿﻊ اﻟﺨﺎﻧﺎت اﻟﯿﺴﺮى اﻟﻤﻔﺮﻏﺔ ﺑﺄﺻﻔﺎر.
و ﺑﺎﻟﻨﺴﺒﺔ ﻟﺘﺄﺛﯿﺮ ھﺬه اﻟﺘﻌﻠﯿﻤﺔ ﻋﻠﻰ اﻟﻌﻠﻢ : OFإذا ﺗﺒﺪﻟﺖ ﺧﺎﻧﺔ اﻹﺷﺎرة ﻧﺘﯿﺠﺔ اﻹزاﺣﺔ ﻓﺈن OF = 1
اﻟﻜﻠﻤﺔ
اﻟﻤﻌﻨﻰ اﻟﺼﯿﻐﺔ اﻟﻌﻤﻠﯿﺔ اﻷﻋﻼم اﻟﻤﺘﺄﺛﺮة
اﻟﻤﺨﺘﺰﻟﺔ
إزاﺣﺔ رﯾﺎﺿﯿﺔ
SAR SAR D,count أﻋﻼم اﻟﺤﺎﻟﺔ
ﻧﺤﻮ اﻟﯿﻤﯿﻦ
CF
اﻟﻌﻤﻠﯿﺔ ھﻨ ﺎ ھ ﻲ إزاﺣ ﺔ ﻣﺤﺘﻮﯾ ﺎت Dﻧﺤ ﻮ اﻟﯿﻤ ﯿﻦ ﺑﺎﺗﺠ ﺎه CFﻋ ﺪداً ﻣ ﻦ اﻟﻤ ﺮات ﻣ ﺴﺎوﯾﺎً ﻟﻘﯿﻤ ﺔ countو ﻣ ﻞء
اﻟﺨﺎﻧﺎت ﺟﻤﯿﻊ اﻟﺨﺎﻧﺎت اﻟﯿﺴﺮى ﺑﻘﯿﻤﺔ اﻟﺨﺎﻧﺔ ) MSBﺧﺎﻧﺔ اﻹﺷﺎرة أو آﺧﺮ ﺧﺎﻧﺔ (.
ﻣﻼﺣﻈ ﺔ :ﺑﺎﻟﻨ ﺴﺒﺔ ﻟﻠﺘﻌﻠﯿﻤﺘ ﯿﻦ : SHL, SALإذا ﻃﺒﻘﻨ ﺎ ھ ﺎﺗﯿﻦ اﻟﺘﻌﻠﯿﻤﺘ ﯿﻦ ﻣ ﻦ أﺟ ﻞ اﻹزاﺣ ﺔ ﺑﻌ ﺪد ﻣ ﻦ اﻟﺨﺎﻧ ﺎت
count = Nﻓﮭﺬا ﯾﻌﻨﻲ ﺿﺮب ﻣﺘﺤﻮل اﻟﮭﺪف ﺑـ 2 nو اﻟﺬي ھﻮ ﻣﻀﺎﻋﻔﺎت اﻟﻌﺪد . 2
ﻣﻼﺣﻈﺔ :إن اﻟﺘﻌﻠﯿﻤﺔ SHRﺗﻌﻨﻲ ﺗﻘﺴﯿﻢ ﻣﺘﺤﻮل اﻟﮭﺪف ﻋﻠﻰ اﻟﻌﺪد 2 countﺗﺤﺖ ﻛﻮن LSB = 0ﻛ ﻞ ﻣ ﺮة و
ﻓﻲ ﺣـﺎﻟﺔ LSB = 1ﻓﻌﻨﺪھﺎ ﯾﻜﻮن ﻟﺪﯾﻨﺎ ﺑﺎﻗﻲ ﻣﻮﺿﻮع ﻓﻲ اﻟﻌﻠﻢ . CF
ﻣﺜﺎل :اﻛﺘﺐ ﺑﺮﻧﺎﻣﺠﺎً ﯾﻘﻮم ﺑﺤﺴﺎب اﻟﻌﻼﻗﺔ اﻟﺮﯾﺎﺿﯿﺔ اﻟﺘﺎﻟﯿﺔ ﻣ ﺴﺘﺨﺪﻣﺎً ﺗﻌﻠﯿﻤ ﺎت اﻹزاﺣ ﺔ و اﻟﺘﻌﻠﯿﻤ ﺎت اﻟﺮﯾﺎﺿ ﯿﺔ
:
3.(AX) + 7.(BX) → DX
MOV SI,AX ; copy AX into SI
SAL SI,1 ; 2 AX
ADD SI,AX ; 3 AX
MOV DX,BX ; copy BX into DX
MOV CL,03H ; load shift count
SAL DX,CL ; 8 BX
SUB DX,BX ; 7 BX
ADD DX,SI ; result
إن اﻟﻤﺘﺤﻮﻻت اﻟﻤﺴﻤﻮﺣﺔ ﺑﺎﻟﻨﺴﺒﺔ ﻟﺘﻌﻠﯿﻤﺎت اﻹزاﺣﺔ ھﻲ:
D Count
Reg 1
أي ﻋﻨ ﺪﻣﺎ Countﻻ ﯾ ﺴﺎوي اﻟﻮاﺣ ﺪ ﻓﻌﻨﺪﺋ ﺬ ﯾﺠ ﺐ ﺗﺤﻤﯿ ﻞ ﻗﯿﻤ ﺔ
Reg CL countﻓ ﻲ اﻟﻤ ﺴﺠﻞ CLﺛ ﻢ ﻛﺘﺎﺑ ﺔ ﺗﻌﻠﯿﻤ ﺎت اﻹزاﺣ ﺔ أي :ﻋﻨ ﺪﻣﺎ
Mem 1 countﯾﺴﺎوي اﻟﻮاﺣﺪ ﻓﯿﻤﻜﻦ أن ﻧﻜﺘﺐ :
Mem CL SAL AX,1
و ﻋﻨﺪﻣﺎ <= count 1ﯾﺠﺐ أن ﻧﻜﺘﺐ :
MOV CL,count
SAL AX,CL
ھﺬا و إن ﻗﯿﻤﺔ countﻣﺤﺪدة ﺑﺎﻟﻤﺠﺎل ] [1,FFو اﻷﻗﻮاس اﻟﻤﺤﯿﻄﯿﺔ ﻟﯿﺲ ﻟﮭﺎ ﻋﻼﻗﺔ ﺑﻤﻔﮭﻮم اﻹزاﺣﺔ ﻃﺒﻌﺎً.
ﺧﺎﻣﺴﺎً -ﺗﻌﻠﯿﻤﺎت اﻟﺘﺪوﯾﺮ
و ھﻲ ﻣﺒﯿﻨﺔ ﻓﻲ اﻟﺠﺪول اﻟﺘﺎﻟﻲ:
اﻟﻜﻠﻤﺔ
اﻟﻤﻌﻨﻰ اﻟﺼﯿﻐﺔ اﻟﻌﻤﻠﯿﺔ اﻷﻋﻼم اﻟﻤﺘﺄﺛﺮة
اﻟﻤﺨﺘﺰﻟﺔ
ﺗﺪوﯾﺮ ﻧﺤﻮ
ROL ROL D,count OF,CF
اﻟﯿﻤﯿﻦ
CF
اﻟﻌﻤﻠﯿﺔ ھﻨﺎ ھﻲ ﺗﺪوﯾﺮ ﻣﺤﺘﻮﯾﺎت Dﻧﺤ ﻮ اﻟﯿ ﺴﺎر ﻋ ﺪداً ﻣ ﻦ اﻟﻤ ﺮات ﻣ ﺴﺎوﯾﺎً ﻟﻘﯿﻤ ﺔ . countو ﻛ ﻞ ﺧﺎﻧ ﺔ ﺗُ ﺰاح
ﺧﺎرج اﻟـ MSBﺗﻮﺿﻊ ﻓﻲ اﻟﺨﺎﻧﺔ LSBو ﻓﻲ . CF
و ﺑﺎﻟﻨﺴﺒﺔ ﻟﺘﺄﺛﯿﺮ ھﺬه اﻟﺘﻌﻠﯿﻤﺔ ﻋﻠﻰ اﻟﻌﻠﻢ OFﻓﮭﻮ ﻧﻔﺲ اﻟﻤﻨﺎﻗﺸﺔ ﻓﻲ اﻟﺘﻌﻠﯿﻤﺎت اﻟﺴﺎﺑﻘﺔ.
اﻟﻤﺨﺘﺰﻟﺔ
ﺗﺪوﯾﺮ ﻧﺤﻮ
ROR ROR D,count OF,CF
اﻟﯿﺴﺎر
CF
اﻟﻌﻤﻠﯿﺔ ھﻨﺎ ھﻲ ﺗ ﺪوﯾﺮ ﻣﺤﺘﻮﯾ ﺎت Dﻧﺤ ﻮ اﻟﯿﻤ ﯿﻦ ﻋ ﺪداً ﻣ ﻦ اﻟﻤ ﺮات ﻣ ﺴﺎوﯾﺎً ﻟﻘﯿﻤ ﺔ . countو ﻛ ﻞ ﺧﺎﻧ ﺔ ﺗُ ﺰاح
ﺧﺎرج اﻟـ LSBﺗﻮﺿﻊ ﻓﻲ اﻟﺨﺎﻧﺔ MSBو ﻓﻲ . CF
و ﺑﺎﻟﻨﺴﺒﺔ ﻟـ OFﻓﮭﻮ ﻧﻔﺲ اﻟﻤﻨﺎﻗﺸﺔ ﻓﻲ اﻟﺘﻌﻠﯿﻤﺎت اﻟﺴﺎﺑﻘﺔ.
اﻟﻜﻠﻤﺔ
اﻟﻤﻌﻨﻰ اﻟﺼﯿﻐﺔ اﻟﻌﻤﻠﯿﺔ اﻷﻋﻼم اﻟﻤﺘﺄﺛﺮة
اﻟﻤﺨﺘﺰﻟﺔ
ﺗﺪوﯾﺮ ﻧﺤﻮ
RCL اﻟﯿﺴﺎر ﻋﺒﺮ اﻟـ RCL D,count OF,CF
CF
CF
اﻟﻌﻤﻠﯿ ﺔ ھﻨ ﺎ ﻣ ﺸﺎﺑﮭﺔ ﻟﺘﻌﻠﯿﻤ ﺔ ROLﻣ ﺎ ﻋ ﺪا أن اﻟﻤﺤﺘ ﻮى اﻷﺻ ﻠﻲ ﻟ ـ CFﯾﻮﺿ ﻊ ﻓ ﻲ اﻟﺨﺎﻧ ﺔ LSBأﻣ ﺎ اﻟﺨﺎﻧ ﺔ
اﻟﻤﺰاﺣﺔ ﺧﺎرج اﻟـ MSBﻓﺘﻮﺿﻊ ﻓﻲ . CF
و ﺑﺎﻟﻨﺴﺒﺔ ﻟـ OFﻧﻔﺲ اﻟﻤﻨﺎﻗﺸﺔ اﻟﺴﺎﺑﻘﺔ.
اﻟﻜﻠﻤﺔ
اﻟﻤﻌﻨﻰ اﻟﺼﯿﻐﺔ اﻟﻌﻤﻠﯿﺔ اﻷﻋﻼم اﻟﻤﺘﺄﺛﺮة
اﻟﻤﺨﺘﺰﻟﺔ
ﺗﺪوﯾﺮ ﻧﺤﻮ
RCR اﻟﯿﻤﯿﻦ ﻋﺒﺮ اﻟـ RCR D,count OF,CF
CF
CF
اﻟﻌﻤﻠﯿﺔ ھﻨﺎ ﻣﺸﺎﺑﮭﺔ ﻟﺘﻌﻠﯿﻤ ﺔ RORﻣ ﺎ ﻋ ﺪا أن اﻟﻤﺤﺘ ﻮى اﻷﺻ ﻠﻲ ﻟ ـ CFﯾﻮﺿ ﻊ ﻓ ﻲ اﻟﺨﺎﻧ ﺔ MSBأﻣ ﺎ اﻟﺨﺎﻧ ﺔ
اﻟﻤﺰاﺣﺔ ﺧﺎرج اﻟـ LSBﻓﺘﻮﺿﻊ ﻓﻲ . CF
و ﺑﺎﻟﻨﺴﺒﺔ ﻟـ OFﻧﻔﺲ اﻟﻤﻨﺎﻗﺸﺔ اﻟﺴﺎﺑﻘﺔ.
ﺳﺎدﺳﺎً -ﺗﻌﻠﯿﻤﺎت ﻣﺴﺠﻼت اﻷﻋﻼم
و ھﻲ ﻣﺒﯿﻨﺔ ﻓﻲ اﻟﺠﺪول اﻟﺘﺎﻟﻲ :
اﻟﻜﻠﻤﺔ اﻷﻋﻼم
اﻟﻤﻌﻨﻰ اﻟﺼﯿﻐﺔ اﻟﻌﻤﻠﯿﺔ
اﻟﻤﺨﺘﺰﻟﺔ اﻟﻤﺘﺄﺛﺮة
Flags → AH
ﺗﺤﻤﯿﻞ AHﻣﻦ
LAHF LAHF اﻟﻨﺼﻒ اﻷول ﻣﻦ ﻣﺴﺠﻞ اﻷﻋﻼم ﻻ ﯾﻮﺟﺪ
ﻣﺴﺠﻞ اﻷﻋﻼم
ﯾﻮﺿﻊ ﻓﻲ AH
ﺗﺨﺰﯾﻦ ﻗﯿﻤﺔ AH AH → Flags
أﻋﻼم اﻟﺤﺎﻟﺔ
SAHF ﻓﻲ ﻣﺴﺠﻞ SAHF ﯾﻮﺿﻊ AHﻓﻲ اﻟﻨﺼﻒ اﻷول ﻣﻦ
ﻋﺪا OF
اﻷﻋﻼم ﻣﺴﺠﻞ اﻷﻋﻼم
CLC ﺗﻨﻈﯿﻒ اﻟـ CF CLC 0 → CF CF
STC ﺗﻮﺿﯿﻊ اﻟـ CF STC 1 → CF CF
CMC
ﻣﺘﻤﻢ أﺣﺎدي ﻟـ CMC CF → CF CF
CF
CLI ﺗﻨﻈﯿﻒ IF CLI 0 → IF IF
STI ﺗﻮﺿﯿﻊ اﻟـ IF STI 1 → IF IF
اﻟﻜﻠﻤﺔ
اﻟﻤﻌﻨﻰ اﻟﺼﯿﻐﺔ اﻟﻌﻤﻠﯿﺔ اﻷﻋﻼم اﻟﻤﺘﺄﺛﺮة
اﻟﻤﺨﺘﺰﻟﺔ
D–S
CMP ﻣﻘﺎرﻧﺔ ﻋﺪدﯾﻦ CMP D,S أﻋﻼم اﻟﺤﺎﻟﺔ
ﺗﺘﺄﺛﺮ اﻷﻋﻼم
ﺗﺠﺮي ﻋﻤﻠﯿﺔ اﻟﻄﺮح ﺿﻤﻨﯿﺎً دون ﺗﺨﺰﯾﻦ ﻧﺘﯿﺠﺘﮭﺎ ﻓﻲ ﻣﺘﺤﻮل اﻟﮭﺪف ) Dأي ﺗﺒﻘﻰ ﻛﻼً ﻣﻦ ﻣﺤﺘﻮﯾ ﺎت اﻟﻤ ﺼﺪر
Sو ﻣﺤﺘﻮﯾﺎت اﻟﮭﺪف Dﻋﻠﻰ ﺣﺎﻟﮭﺎ ( و ﺗﺴﺘﻌﻤﻞ ھﺬه اﻟﺘﻌﻠﯿﻤﺔ ﻟﺠﻌﻞ أﻋﻼم اﻟﺤﺎﻟﺔ ﺗﺄﺧ ﺬ ﻗﯿﻤ ﺔ واﺣ ﺪ ﻣﻨﻄﻘ ﻲ أو
ﺻﻔﺮ ﻣﻨﻄﻘﻲ .إن اﻟﻤﺘﺤﻮﻻت اﻟﻤﺴﻤﻮﺣﺔ ﻟﮭﺬه اﻟﺘﻌﻠﯿﻤﺔ ﻣﺒﯿﻨﺔ ﻓﻲ اﻟﺠﺪول اﻟﺘﺎﻟﻲ:
D S
Reg Reg
Reg Mem
Mem
Reg
Reg
Imm
ﺛﺎﻣﻨﺎً -ﺗﻌﻠﯿﻤﺎت اﻟﻘﻔﺰ
Mem Imm اﻟﻐﺎﯾ ﺔ ﻣ ﻦ ﺗﻌﻠﯿﻤ ﺔ اﻟﻘﻔ ﺰ ھ ﻲ ﺗﻌ ﺪﯾﻞ ﻃﺮﯾ ﻖ ﺗﻨﻔﯿ ﺬ اﻟﺘﻌﻠﯿﻤ ﺎت ﻓ ﻲ
Acc Imm اﻟﺒﺮﻧ ﺎﻣﺞ .و ھﻨ ﺎك ﻧﻮﻋ ﺎن ﻣ ﻦ ﺗﻌﻠﯿﻤ ﺎت اﻟﻘﻔ ﺰ ،وھ ﻲ :اﻟﻘﻔ ﺰ
اﻟﻤﺸﺮوط و اﻟﻘﻔﺰ ﻏﯿﺮ اﻟﻤﺸﺮوط .ﻓﻲ اﻟﻘﻔﺰ ﻏﯿﺮ اﻟﻤﺸﺮوط ﻻ ﯾﻮﺟ ﺪ
أي ﺷﺮوط ﻣﻦ أﺟ ﻞ ﺣ ﺪوث اﻟﻘﻔ ﺰ أﻣ ﺎ ﻓ ﻲ اﻟﻘﻔ ﺰ اﻟﻤ ﺸﺮوط ﻓ ﺈن اﻟﺤ ﺎﻻت اﻟ ﺸﺮﻃﯿﺔ اﻟﻤﻮﺟ ﻮدة ﻓ ﻲ ﻟﺤﻈ ﺔ ﺗﻨﻔﯿ ﺬ
ﺗﻌﻠﯿﻤﺔ اﻟﻘﻔﺰ ﺗﺘﺨﺬ اﻟﻘﺮار ﻓﯿﻤﺎ إذا ﺳﯿﺤﺪث اﻟﻘﻔﺰ أم ﻻ ،ﻓﻔﻲ ﺣﺎل ﺗﺤﻘﻖ اﻟﺤ ﺎﻻت اﻟ ﺸﺮﻃﯿﺔ ﻓﺈﻧ ﮫ ﯾ ﺘﻢ اﻟﻘﻔ ﺰ ،و إﻻ
ﯾُﺘﺎﺑﻊ اﻟﺘﻨﻔﯿﺬ ﺑﺎﻟﺘﻌﻠﯿﻤﺔ اﻟﺘﻲ ﺗﻠﻲ ﺗﻌﻠﯿﻤﺔ اﻟﻘﻔﺰ ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ.
ﻣﺜﺎل آﺧﺮ:
IP = 0112h
JMP 04
Address = 0112 + 2 + 0004 = 0118h
Ahmed.ALrefaie@yahoo.com - 34 -
إﻟﻰ ﻃﻼب اﻟﻤﺮﻛﺰ اﻟﻌﺎﻟﻲ ﻟﺘﻘﻨﯿﺎت اﻟﺤﺎﺳﻮب
ﺗﺠﻤﯿﻊ أﺣﻤﺪ اﻟﺮﻓﺎﻋﻲ ﺗﻢ ﺗﺠﻤﯿﻌﻪ ﻣﻦ ﻣﻨﺘﺪﻳﺎت اﻟﻔﺮﻳﻖ اﻟﻌﺮﺑﻲ ﻟﻠﺒﺮﻣﺠﺔ
اﻟﻜﻠﻤﺔ اﻷﻋﻼم
اﻟﻤﻌﻨﻰ اﻟﺼﯿﻐﺔ اﻟﻌﻤﻠﯿﺔ
اﻟﻤﺨﺘﺰﻟﺔ اﻟﻤﺘﺄﺛﺮة
ﻗﻔﺰ إذا ﺗﺤﻘﻖ اﻟﺸﺮط ccﻓﺈﻧﮫ ﯾﺘﻢ اﻟﻘﻔﺰ إﻟﻰ اﻟﻌﻨﻮان
Jcc ﻣﺸﺮو ﻣﺘﺤﻮل Jcc اﻟﻤﺤﺪد ﺑﻮاﺳﻄﺔ اﻟﻤﺘﺤﻮل و إﻻ ﻓﯿﺘﻢ ﺗﻨﻔﯿﺬ اﻟﺘﻌﻠﯿﻤﺔ ﻻ ﯾﻮﺟﺪ
ط اﻟﺘﺎﻟﯿﺔ ﻟﺘﻌﻠﯿﻤﺔ اﻟﻘﻔﺰ
ﺔ اﻟﻜﻠﻤ
اﻟﻤﻌﻨﻰ
اﻟﻤﺨﺘﺰﻟﺔ
JC اﻟﻘﻔﺰ إذا ﻛﺎن
CF = 1
JNC اﻟﻘﻔﺰ إذا ﻛﺎن
CF = 0
JO اﻟﻘﻔﺰ إذا ﻛﺎن
OF = 1
JNO اﻟﻘﻔﺰ إذا ﻛﺎن
OF = 0
JS اﻟﻘﻔﺰ إذا ﻛﺎن
SF = 1
JNS اﻟﻘﻔﺰ إذا ﻛﺎن
SF = 0
JCXZ اﻟﻘﻔﺰ إذا ﻛﺎن
CX = 0000
JE/JZ اﻟﻘﻔﺰ ﻓﻲ ﺣﺎﻟﺔ اﻟﺘﺴﺎوي/أو إذا ﻛﺎن اﻟﻨﺎﺗﺞ ﯾﺴﺎوي اﻟﺼﻔﺮ
JGE/JNL اﻟﻘﻔﺰ إذا ﻛﺎن أﻛﺒﺮ أو ﯾﺴﺎوي/اﻟﻘﻔﺰ إذا ﻟﻢ ﯾﻜﻦ أﺻﻐﺮ
JA/JNBE اﻟﻘﻔﺰ إذا ﻛﺎن ﻓﻮق/اﻟﻘﻔﺰ إذا ﻟﻢ ﯾﻜﻦ ﺗﺤﺖ أو ﯾﺴﺎوي
JAE/JNB اﻟﻘﻔﺰ إذا ﻛﺎن ﻓﻮق أو ﯾﺴﺎوي/اﻟﻘﻔﺰ إذا ﻟﻢ ﯾﻜﻦ ﺗﺤﺖ
JB/JNAE اﻟﻘﻔﺰ إذا ﻛﺎن ﺗﺤﺖ/اﻟﻘﻔﺰ إذا ﻟﻢ ﯾﻜﻦ ﻓﻮق أو ﯾﺴﺎوي
JBE/JNA اﻟﻘﻔﺰ إذا ﻛﺎن ﺗﺤﺖ أو ﯾﺴﺎوي/اﻟﻘﻔﺰ إذا ﻟﻢ ﯾﻜﻦ ﻓﻮق
JG/JNLE اﻟﻘﻔﺰ إذا ﻛﺎن أﻛﺒﺮ/اﻟﻘﻔﺰ إذا ﻟﻢ ﯾﻜﻦ أﺻﻐﺮ أو ﯾﺴﺎوي
JLE/JNG اﻟﻘﻔﺰ إذا ﻛﺎن أﺻﻐﺮ أو ﯾﺴﺎوي/اﻟﻘﻔﺰ إذا ﻟﻢ ﯾﻜﻦ أﻛﺒﺮ
JNE/JNZ اﻟﻘﻔﺰ إذا ﻟﻢ ﯾﻜﻦ ﯾﺴﺎوي/اﻟﻘﻔﺰ إذا ﻛﺎن اﻟﻨﺎﺗﺞ ﯾﺴﺎوي ﻗﯿﻤﺔ ﻏﯿﺮ ﺻﻔﺮﯾﺔ
JNB/JBO اﻟﻘﻔﺰ إذا ﻛﺎﻧﺖ ﺧﺎﻧﺔ Parityﻏﯿﺮ ﻣﻮﺟﻮدة/اﻟﻘﻔﺰ إذا ﻛﺎن PF = 0
JP/JPE اﻟﻘﻔﺰ ﻓﻲ ﺣﺎﻟﺔ وﺟﻮد ﺧﺎﻧﺔ /Parityاﻟﻘﻔﺰ إذا ﻛﺎن PF = 1
ﻣﻼﺣﻈﺔ:
ﻟﻠﺘﻤﯿﯿﺰ ﺑﯿﻦ ﻣﻘﺎرﻧﺔ اﻷﻋﺪاد ذات اﻹﺷﺎرة و اﻷﻋﺪاد ﺑ ﺪون إﺷ ﺎرة ﻓ ﺈن ھﻨ ﺎك اﺳ ﻤﯿﻦ ﻣﺨﺘﻠﻔ ﯿﻦ ﯾﺒ ﺪو أﻧﮭﻤ ﺎ ﻧﻔ ﺲ
اﻟﺸﻲء ﻓﻲ ﺗﻌﻠﯿﻤﺎت اﻟﻘﻔﺰ و ھﻤﺎ ﻓﻮق ) ( Aو ﺗﺤﺖ ) ( Bﻣﻦ أﺟﻞ ﻣﻘﺎرﻧﺔ اﻷﻋﺪاد ﺑ ﺪون إﺷ ﺎرة ،و أﺻ ﻐﺮ )
( Lو أﻛﺒﺮ ) ( Gﻣﻦ أﺟﻞ ﻣﻘﺎرﻧﺔ اﻷﻋ ﺪاد ذات اﻹﺷ ﺎرة .ﻓﻤ ﺜﻼً اﻟﻌ ﺪد ABCDhھ ﻮ ﻓ ﻮق اﻟﻌ ﺪد 1234hإذا
اﻋﺘﺒﺮﻧﺎھﻤﺎ ﻋﺪدﯾﻦ ﺑﺪون إﺷﺎرة .أﻣﺎ إذا اﻋﺘﺒﺮﻧﺎھﻤﺎ ﺑﺈﺷﺎرة ﻓﺈن ABCDhھﻮ ﻋ ﺪد ﺳ ﺎﻟﺐ و 1234hھ ﻮ ﻋ ﺪد
ﻣﻮﺟﺐ و ﻟﺬﻟﻚ ABCDhھﻮ أﺻﻐﺮ ﻣﻦ .1234h
2
1
CALL SUB
6
7
3 5
8
9
RETURN
اﻟﻔﺮﻋﻲ ،و ﻋﻨﺪ اﻛﺘﻤ ﺎل اﻟﺘﻨﻔﯿ ﺬ ﯾﻌ ﻮد اﻟ ﺘﺤﻜﻢ إﻟ ﻰ اﻟﺒﺮﻧ ﺎﻣﺞ اﻟﺮﺋﯿ ﺴﻲ ﺑﺎﻟﺘﻌﻠﯿﻤ ﺔ اﻟﺘﺎﻟﯿ ﺔ ﻟﺘﻌﻠﯿﻤ ﺔ ﻣﻨ ﺎداة اﻟﺒﺮﻧ ﺎﻣﺞ
اﻟﻔﺮﻋﻲ:
ﻣﻼﺣﻈﺔ:
إن اﻟﻔﺮق ﺑﯿﻦ اﻟﻌﻤﻞ ﻟﻤﻨﺎداة اﻟﺒﺮﻧﺎﻣﺞ اﻟﻔﺮﻋﻲ و اﻟﻘﻔ ﺰ ھ ﻮ أن ﻣﻨ ﺎداة اﻟﺒﺮﻧ ﺎﻣﺞ اﻟﻔﺮﻋ ﻲ ﻻ ﺗﻨ ﺘﺞ ﻗﻔ ﺰاً ﻓﻘ ﻂ إﻟ ﻰ
اﻟﻌﻨﻮان اﻟﻤﻨﺎﺳﺐ ﻓﻲ ذاﻛﺮة ﺗﺨﺰﯾﻦ اﻟﺒﺮﻧ ﺎﻣﺞ و ﻟﻜﻨﮭ ﺎ أﯾ ﻀﺎً ﺗﻤﻠ ﻚ ﺗﻘﻨﯿ ﺔ ﻣ ﻦ أﺟ ﻞ ﺣﻔ ﻆ اﻟﻤﻌﻠﻮﻣ ﺎت ﻣﺜ ﻞ IPو
CSاﻟﺘﻲ ﺗﻜﻮن ﻣﻄﻠﻮﺑﺔ ﻟﻠﻌﻮدة إﻟﻰ اﻟﺒﺮﻧﺎﻣﺞ اﻟﺮﺋﯿﺴﻲ.
ﻟﻠﻤﺆﺷﺮ ﯾﻤﻜﻦ ﺗﺤﺪﯾﺪھﺎ ﺑﺸﻜﻞ ﻣﺒﺎﺷﺮ ﺑﻮاﺳﻄﺔ أﺣﺪ اﻟﻤﺴﺠﻼت ) اﻟﻤﺜﺎل ھﻨﺎ ھﻮ ﻧﻔﺲ ﻣﺜﺎل اﻟﻘﻔﺰ JMP farseg
] [DIاﻟﺴﺎﺑﻖ (.
إن ﻛﻞ ﺑﺮﻧﺎﻣﺞ ﻓﺮﻋﻲ ﯾﺠﺐ أن ﯾﻨﺘﮭﻲ ﺑﺘﻨﻔﯿﺬ اﻟﺘﻌﻠﯿﻤﺔ اﻟﺘﻲ ﺗﻌﯿ ﺪ اﻟ ﺘﺤﻜﻢ إﻟ ﻰ اﻟﺒﺮﻧ ﺎﻣﺞ اﻟﺮﺋﯿ ﺴﻲ و ھ ﺬه اﻟﺘﻌﻠﯿﻤ ﺔ
ھﻲ ﺗﻌﻠﯿﻤﺔ اﻟﻌﻮدة RETو ھﻲ ﻣﺸﺮوﺣﺔ ﺑﺎﻟﺠﺪول اﻟﺘﺎﻟﻲ:
اﻟﻜﻠﻤﺔ اﻷﻋﻼم
اﻟﻤﺨﺘﺰﻟﺔ اﻟﻤﻌﻨﻰ اﻟﺼﯿﻐﺔ اﻟﻌﻤﻠﯿﺔ
اﻟﻤﺘﺄﺛﺮة
اﻟﻌﻮدة إﻟﻰ اﻟﺒﺮﻧﺎﻣﺞ
RET RET/RET operand ﻻ ﯾﻮﺟﺪ
اﻟﻤُﺴﺘﺪﻋِﻲ
اﻟﻌ ﻮدة إﻟ ﻰ اﻟﺒﺮﻧ ﺎﻣﺞ اﻟﻤ ﺴﺘﺪﻋﻲ ﻋ ﻦ ﻃﺮﯾ ﻖ إﻋ ﺎدة ﺗﺨ ﺰﯾﻦ ﻗ ﯿﻢ IPﻓﻘ ﻂ أو IPو CSﻣﻌ ًﺎ
)ﺣﺴﺐ ﻧﻮع ﺗﻌﻠﯿﻤﺔ اﻟﻤﻨﺎداة أي ﺿﻤﻦ اﻟﻤﻘﻄﻊ اﻟﺠﺰﺋ ﻲ أو ﺧﺎرﺟ ﮫ( ﻣ ﻦ أﺟ ﻞ اﻟﻤﺘﺤ ﻮل . Far_proو إذا ﻛ ﺎن
اﻟﻤﺘﺤ ﻮل ) (operandﻣﻮﺟ ﻮداً ﻓ ﻲ ﺗﻌﻠﯿﻤ ﺔ اﻟﻌ ﻮدة RETﻓﯿﺠ ﺐ إﺿ ﺎﻓﺘﮫ إﻟ ﻰ ﻣﺤﺘﻮﯾ ﺎت . SPھ ﺬا و إن
اﻟﻤﺘﺤﻮل إذا وﺟﺪ ﻓﻲ ﺗﻌﻠﯿﻤﺔ اﻟﻌﻮدة ﻓﮭﻮ ﻋﺒﺎرة ﻋﻦ ﻣﺘﺤﻮل إزاﺣﺔ ﺑـ 16ﺑﺖ.
ﺗﺎﺳﻌﺎً -ﺗﻌﻠﯿﻤﺎت اﻟﺪﻓﻊ و اﻟﺴﺤﺐ
إن اﻟﺘﻌﻠﯿﻤ ﺔ اﻟﻤ ﺴﺘﺨﺪﻣﺔ ﻟﺤﻔ ﻆ اﻟﺒ ﺎراﻣﺘﺮات ﻓ ﻲ اﻟﻤﻜ ﺪس ھ ﻲ ﺗﻌﻠﯿﻤ ﺔ اﻟ ﺪﻓﻊ PUSHو اﻟﺘﻌﻠﯿﻤ ﺔ اﻟﻤ ﺴﺘﺨﺪﻣﺔ
ﻻﺳﺘﺮﺟﺎﻋﮭﺎ ھﻲ ﺗﻌﻠﯿﻤﺔ . POPﺑﻌﺪ ﺳﯿﺎق اﻟﺘﺤﻮﯾﻞ إﻟﻰ اﻟﺒﺮﻧﺎﻣﺞ اﻟﻔﺮﻋﻲ ﻧﺠﺪ أﻧﮫ ﻣﻦ اﻟ ﻀﺮوري ﻋ ﺎدة ﺣﻔ ﻆ
ﻣﺤﺘﻮﯾﺎت اﻟﻤﺴﺠﻼت اﻟﺮﺋﯿﺴﯿﺔ أو ﺑﻌ ﺾ ﺑ ﺎراﻣﺘﺮات اﻟﺒﺮﻧ ﺎﻣﺞ اﻟﺮﺋﯿ ﺴﻲ ھ ﺬه اﻟﻘ ﯿﻢ ﯾ ﺘﻢ ﺣﻔﻈﮭ ﺎ ﺑﻮاﺳ ﻄﺔ دﻓﻌﮭ ﺎ
إﻟ ﻰ اﻟﻤﻜ ﺪس .و ﺑﮭ ﺬه اﻟﻄﺮﯾﻘ ﺔ ﯾ ﺘﻢ ﺣﻔ ﻆ اﻟﻤﺤﺘﻮﯾ ﺎت ﺳ ﻠﯿﻤﺔ ﻓ ﻲ ﻣﻘﻄ ﻊ اﻟﻤﻜ ﺪس ﻟﻠ ﺬاﻛﺮة أﺛﻨ ﺎء ﺗﻨﻔﯿ ﺬ اﻟﺒﺮﻧ ﺎﻣﺞ
اﻟﻔﺮﻋﻲ ،و ﻗﺒﻞ اﻟﻌﻮدة إﻟﻰ اﻟﺒﺮﻧﺎﻣﺞ اﻟﺮﺋﯿﺴﻲ ﻓﺈن اﻟﻤﺴﺠﻼت اﻟﻤﺤﻔﻮﻇﺔ و ﺑﺎراﻣﺘﺮات اﻟﺒﺮﻧﺎﻣﺞ اﻟﺮﺋﯿ ﺴﻲ ﯾُﻌ ﺎد
ﺗﺨﺰﯾﻨﮭ ﺎ ﺑﻮاﺳ ﻄﺔ ﺳ ﺤﺐ اﻟﻘ ﯿﻢ اﻟﻤﺤﻔﻮﻇ ﺔ ﻣ ﻦ اﻟﻤﻜ ﺪس .ﻟ ﺬﻟﻚ ﻓ ﺈن اﻟﺒﻨﯿ ﺔ اﻟﻨﻤﻮذﺟﯿ ﺔ ﻟﻠﺒﺮﻧ ﺎﻣﺞ اﻟﻔﺮﻋ ﻲ ﺗﻜ ﻮن
ﻛﺎﻟﺘﺎﻟﻲ:
PUSH xx
ﻟﺤﻔﻆ اﻟﻤﺴﺠﻼت و اﻟﺒﺎراﻣﺘﺮات ﻓﻲ اﻟﻤﻜﺪس PUSH yy
PUSH zz
-----------
ﺟﺴﻢ اﻟﺒﺮﻧﺎﻣﺞ اﻟﻔﺮﻋﻲ -----------
-----------
POP zz
ﻻﺳﺘﺮﺟﺎع اﻟﻤﺴﺠﻼت و اﻟﺒﺎراﻣﺘﺮات ﻣﻦ ﻧﻼﺣﻆ أﻧﮫ ﯾﺘﻢ اﻻﺳﺘﺮﺟﺎع ھﻨﺎ
POP yy
اﻟﻤﻜﺪس ﺑﺸﻜﻞ
ﻋﻜﺴﻲ و ذﻟﻚ ﻷن ﻣﺒﺪأ ﻋﻤﻞ
POP xx
اﻟﻤﻜﺪس
ﻟﻠﻌﻮدة إﻟﻰ اﻟﺒﺮﻧﺎﻣﺞ اﻟﻤﺴﺘﺪﻋﻲ ھﻮ RET LIFO
ﻣﻼﺣﻈﺔ :ﯾﺘﻌﺎﻣﻞ اﻟﻤﻜﺪس ﻣﻊ ﻛﻠﻤﺎت و ﻟﯿﺲ ﻣﻊ ﺑﺎﯾﺘﺎت.
66 77
0105C 66 77
88 99 66 77
0105A 88 99 TOS
AA BB 88 99
TOS
01058 AA BB 34 12 AA BB
01056
01056 01 23
45 67 34 12
01054 45 67
89 AB 45 67
01052 89 AB
01050 CD EF 89 AB
01050 CD EF CD EF
01 05 SS
01 05 SS
01 05 SS
01 60 SP
01 08 SP
01 0A SP
ﯾﺒﯿﻦ اﻟﺸﻜﻞ اﻟﺜﺎﻟﺚ ﻣﺎ اﻟﺬي ﯾﺤﺪث ﻋﻨﺪﻣﺎ ﺗُﺴﺤﺐ اﻟﻤﻌﻄﯿﺎت ﻣﻦ اﻟﻤﻜ ﺪس إﻟ ﻰ اﻟﻤ ﺴﺠﻞ اﻟ ﺬي دُﻓﻌَ ﺖ اﻟﻤﻌﻄﯿ ﺎت
ﻣﻨﮫ إﻟﻰ اﻟﻤﻜﺪس و ذﻟﻚ ﺑﻌﺪ ﺗﻨﻔﯿﺬ اﻟﺘﻌﻠﯿﻤﺔ POP AXﺛﻢ POP BXﻋﻠﻰ اﻟﺘﺮﺗﯿﺐ .ﻧﻔﺲ اﻟﻤﻨﺎﻗ ﺸﺔ ﺑﺎﻟﻨ ﺴﺒﺔ إﻟ ﻰ
دﻓﻊ ﻗﯿﻤﺔ ﻓﻮرﯾﺔ إﻟﻰ اﻟﻤﻜﺪس.
ﻋﺎﺷﺮاً -ﺗﻌﻠﯿﻤﺎت اﻟﺤﻠﻘﺎت
ھﻨﺎك ﺛﻼث ﺗﻌﻠﯿﻤﺎت ﻣﺼﻤﻤﺔ ﺑﺸﻜﻞ ﺧﺎص ﻟﺘﺤﻘﯿﻖ ﻋﻤﻠﯿﺔ اﻟﺤﻠﻘ ﺔ .و ھ ﺬه اﻟﺘﻌﻠﯿﻤ ﺎت ﯾﻤﻜ ﻦ اﺳ ﺘﻌﻤﺎﻟﮭﺎ ﺑ ﺪﻻً ﻣ ﻦ
ﺗﻌﻠﯿﻤﺎت اﻟﻘﻔﺰ اﻟﺸﺮﻃﻲ .و ھﻲ ﻣﺒﯿﻨﺔ ﻓﻲ اﻟﺠﺪول اﻟﺘﺎﻟﻲ:
اﻟﻜﻠﻤﺔ اﻷﻋﻼم
اﻟﻤﻌﻨﻰ اﻟﺼﯿﻐﺔ اﻟﻌﻤﻠﯿﺔ
اﻟﻤﺨﺘﺰﻟﺔ اﻟﻤﺘﺄﺛﺮة
LOOP ﺣﻠﻘﺔ LOOP short_label ﻻ ﯾﻮﺟﺪ
إﻧﻘﺎص CXﺑﻤﻘﺪار واﺣﺪ دون اﻟﺘﺄﺛﯿﺮ ﻋﻠﻰ اﻷﻋﻼم ﺛﻢ اﻟﻘﻔ ﺰ إﻟ ﻰ اﻟﺤﺠ ﺮة اﻟﻤﻌﺮﱠﻓ ﺔ ﺑﻮاﺳ ﻄﺔ
اﻟﻼﻓﺘﺔ اﻟﻘﺼﯿﺮة إذا ﻛﺎن CXﻻ ﯾﺴﺎوي اﻟﺼﻔﺮ و إﻻ ﯾﺘﻢ ﺗﻨﻔﯿﺬ اﻟﺘﻌﻠﯿﻤﺔ اﻟﺘﺎﻟﯿﺔ ﻟﺘﻌﻠﯿﻤﺔ اﻟﺤﻠﻘﺔ .و ھﻨ ﺎ ﯾﻜ ﻮن IP
= IP + dispﺣﯿﺚ dispأﺧﺬﻧﺎھﺎ ﺑﻌﺪ ﺗﻤﺪﯾﺪ إﺷﺎرﺗﮭﺎ ) أي ﺟﻌﻠﮭﺎ ﺑـ 16ﺑﺖ (.
اﻟﻜﻠﻤﺔ اﻷﻋﻼم
اﻟﻤﻌﻨﻰ اﻟﺼﯿﻐﺔ اﻟﻌﻤﻠﯿﺔ
اﻟﻤﺨﺘﺰﻟﺔ اﻟﻤﺘﺄﺛﺮة
ﺣﻠﻘﺔ ﻃﺎﻟﻤﺎ
LOOPE/ LOOPE/
LOOPZ
ﯾﺴﺎوي /أو ﻃﺎﻟﻤﺎ LOOPZ
ﻻ ﯾﻮﺟﺪ
ﺻﻔﺮ
إﻧﻘﺎص CXﺑﻤﻘﺪار واﺣﺪ دون اﻟﺘﺄﺛﯿﺮ ﻋﻠﻰ اﻷﻋﻼم ﺛﻢ اﻟﻘﻔ ﺰ إﻟ ﻰ اﻟﺤﺠ ﺮة اﻟﻤﻌﺮﱠﻓ ﺔ ﺑﻮاﺳ ﻄﺔ
اﻟﻼﻓﺘﺔ اﻟﻘﺼﯿﺮة إذا ﻛﺎن CXﻻ ﯾ ﺴﺎوي اﻟ ﺼﻔﺮ و ZFﯾ ﺴﺎوي اﻟ ﺼﻔﺮ و إﻻ ﯾ ﺘﻢ ﺗﻨﻔﯿ ﺬ اﻟﺘﻌﻠﯿﻤ ﺔ اﻟﺘﺎﻟﯿ ﺔ ﻟﺘﻌﻠﯿﻤ ﺔ
اﻟﺤﻠﻘﺔ.
و ھﻨﺎ ﺟﺴﻢ اﻟﺤﻠﻘﺔ ﻓﻘﻂ ھﻮ اﻟﺬي ﯾﺆﺛﺮ ﻋﻠﻰ اﻷﻋﻼم.
اﻟﻜﻠﻤﺔ اﻷﻋﻼم
اﻟﻤﻌﻨﻰ اﻟﺼﯿﻐﺔ اﻟﻌﻤﻠﯿﺔ
اﻟﻤﺨﺘﺰﻟﺔ اﻟﻤﺘﺄﺛﺮة
ﺣﻠﻘﺔ ﻃﺎﻟﻤﺎ ﻻ
LOOPNE/ LOOPNE/
LOOPNZ
ﯾﺴﺎوي /أو ﻃﺎﻟﻤﺎ LOOPNZ
ﻻ ﯾﻮﺟﺪ
ﻟﯿﺲ ﺻﻔﺮاً
إﻧﻘﺎص CXﺑﻤﻘﺪار واﺣﺪ ﺛﻢ اﻟﻘﻔﺰ إﻟﻰ اﻟﺤﺠﺮة اﻟﻤﺤﺪدة ﺑﻮاﺳﻄﺔ اﻟﻼﻓﺘ ﺔ اﻟﻘ ﺼﯿﺮة إذا ﻛ ﺎن CX
ﻻ ﯾﺴﺎوي اﻟﺼﻔﺮ و ZFﯾﺴﺎوي اﻟﺼﻔﺮ و إﻻ ﯾﺘﻢ ﺗﻨﻔﯿﺬ اﻟﺘﻌﻠﯿﻤﺔ اﻟﺘﺎﻟﯿﺔ ﻟﺘﻌﻠﯿﻤﺔ اﻟﺤﻠﻘﺔ.
و ھﻨﺎ أﯾﻀﺎً ﺟﺴﻢ اﻟﺤﻠﻘﺔ ﻓﻘﻂ ھﻮ اﻟﺬي ﯾﺆﺛﺮ ﻋﻠﻰ اﻷﻋﻼم.
ﻣﺜﺎل:
ﻧﺮﯾﺪ اﻟﺒﺤﺚ ﻋﻦ ﻋﻨﺼﺮ ﺿﻤﻦ ﻣﺘﺠﮭﺔ ﻣﻦ اﻟﻌﻨﺎﺻﺮ ) ﻣﺼﻔﻮﻓﺔ أﺣﺎدﯾ ﺔ اﻟﺒﻌ ﺪ ( ﻣ ﺜﻼً 8,9,4,5,7 :و اﻟﻌﻨ ﺼﺮ
اﻟﻤﺮاد إﯾﺠﺎده ھﻮ . 4ھﻨﺎ CX = 5و ھﻮ ﻋﺪد اﻟﻌﻨﺎﺻﺮ .و ﯾﻜﻮن ﺟﺴﻢ اﻟﺤﻠﻘﺔ ﻛﺎﻟﺘﺎﻟﻲ:
MOV CX, 5
Nxt: ---------------
--------------- ھﻨﺎ ﯾﺘﻢ اﻟﺨﺮوج ﻣﻦ اﻟﺤﻠﻘﺔ ﺑﺎﻟﺮﻏﻢ ﻣﻦ أن CX 0ﻷﻧﮫ
ﺟﺴﻢ اﻟﺤﻠﻘﺔ
--------------- ﺣﺼﻞ ﺗﻄﺎﺑﻖ و أﺻﺒﺤﺖ . ZF = 1
LOOPNE Nxt
ً - 11ﺗﻌﻠﯿﻤﺎت اﻟﺴﻠﺴﻠﺔ
ﻧﻘﺼﺪ ﺑﻜﻠﻤﺔ اﻟﺴﻠﺴﻠﺔ أن ﺑﺎﯾﺘﺎت أو ﻛﻠﻤﺎت ﻣﻌﻄﯿﺎت ﺗﻜﻤﻦ ﻓ ﻲ ﺣﺠ ﺮات ﻣﺘﻌﺎﻗﺒ ﺔ ﻟﻠ ﺬاﻛﺮة .إن ﺗﻌﻠﯿﻤ ﺎت اﻟﺴﻠ ﺴﻠﺔ
ﺗﺴﻤﺢ ﻟﻠﻤﺒﺮﻣﺞ ﺑﺘﻨﻔﯿﺬ ﻋﻤﻠﯿﺎت ﻣﺜﻞ ﻧﻘﻞ اﻟﻤﻌﻄﯿﺎت ﻣﻦ ﺑﻠﻮك ذاﻛﺮة إﻟﻰ ﺑﻠﻮك آﺧ ﺮ ﻓ ﻲ اﻟ ﺬاﻛﺮة ،ﻣ ﺴﺢ أو ﻛ ﻨﺲ
SCANﺳﻠ ﺴﻠﺔ ﻣ ﻦ ﻋﻨﺎﺻ ﺮ اﻟﻤﻌﻄﯿ ﺎت اﻟﻤﺨﺰﻧ ﺔ ﻓ ﻲ اﻟ ﺬاﻛﺮة و اﻟﺒﺤ ﺚ ﻋ ﻦ ﻗﯿﻤ ﺔ ﻣﻌﯿﻨ ﺔ ،ﻣﻘﺎرﻧ ﺔ ﻋﻨﺎﺻ ﺮ
ﺳﻠﺴﻠﺘﯿﻦ ﻟﺘﺤﺪﯾﺪ ﻓﯿﻤﺎ إذا ﻛﺎﻧﺎ ﻣﺘﻄﺎﺑﻘﺘﯿﻦ أو ﻣﺨﺘﻠﻔﺘﯿﻦ.
و ﺗﻌﻠﯿﻤﺎت اﻟﺴﻠﺴﻠﺔ اﻷﺳﺎﺳﯿﺔ ھﻲ:
اﻟﻜﻠﻤﺔ اﻷﻋﻼم
اﻟﻤﻌﻨﻰ اﻟﺼﯿﻐﺔ اﻟﻌﻤﻠﯿﺔ
اﻟﻤﺨﺘﺰﻟﺔ اﻟﻤﺘﺄﺛﺮة
ﻧﻘﻞ ﻋﻨﺼﺮ ﻣﻦ
MOVS MOVS operand ﻻ ﯾﻮﺟﺪ
ﺳﻠﺴﻠﺔ
اﻟﻌﻤﻠﯿﺔ :اﻟﻌﻨﺼﺮ اﻟﻤﺤﺪد ﺑﻮاﺳﻄﺔ DS:SIﯾﺘﻢ ﻧﻘﻠﮫ إﻟﻰ اﻟﺤﺠﺮة اﻟﻤﺤﺪدة ﺑﻮاﺳﻄﺔ اﻟﻘﯿﻤﺔ ES:DIﺛﻢ:
SI ± 1 or 2 → SI
DI ± 1 or 2 → DI
اﻟﻜﻠﻤﺔ اﻷﻋﻼم
اﻟﻤﻌﻨﻰ اﻟﺼﯿﻐﺔ اﻟﻌﻤﻠﯿﺔ
اﻟﻤﺨﺘﺰﻟﺔ اﻟﻤﺘﺄﺛﺮة
ﻧﻔﺲ اﻟﻌﻤﻠﯿﺔ
ﻧﻘﻞ ﻋﻨﺼﺮ ﺑﺎﯾﺖ ﻣﻦ
MOVSB MOVSB اﻟﺴﺎﺑﻘﺔ و ﻣﻘﺪار ﻻ ﯾﻮﺟﺪ
ﺳﻠﺴﻠﺔ
اﻟﺘﺰاﯾﺪ ھﻮ1
ﻧﻔﺲ اﻟﻌﻤﻠﯿﺔ
ﻧﻘﻞ ﻋﻨﺼﺮ ﻛﻠﻤﺔ ﻣﻦ
MOVSW MOVSW اﻟﺴﺎﺑﻘﺔ و ﻣﻘﺪار ﻻ ﯾﻮﺟﺪ
اﻟﺴﻠﺴﻠﺔ
اﻟﺘﺰاﯾﺪ ھﻮ2
CMPS
CMPS ﻣﻘﺎرﻧﺔ ﻋﻨﺼﺮ ﺳﻠﺴﻠﺔ operand
أﻋﻼم اﻟﺤﺎﻟﺔ
اﻟﻌﻤﻠﯿﺔ :ﯾﺘﻢ ﻃﺮح ﻣﺘﺤﻮل اﻟﮭﺪف ﻣﻦ ﻣﺘﺤﻮل اﻟﻤﺼﺪر و ﻻ ﺗُﺨﺰن اﻟﻨﺘﯿﺠﺔ إﻧﻤﺎ ﺗُﻌﺪل أﻋﻼم اﻟﺤﺎﻟﺔ
ﻓﻘﻂ ،أي:
أﻋﻼم اﻟﺤﺎﻟﺔ → ) ( ( DS x 10h ) + SI ) – ( ( ES x 10h ) + DI
SI ± 1 or 2 → SI
DI ± 1 or 2 → DI
اﻟﻌﻤﻠﯿﺔ :
) ( ( DS x 10h ) + SI ) → ( AL or AX
SI ± 1 or 2 → SI
اﻷﻋﻼم
اﻟﻜﻠﻤﺔ اﻟﻤﺨﺘﺰﻟﺔ اﻟﻤﻌﻨﻰ اﻟﺼﯿﻐﺔ اﻟﻌﻤﻠﯿﺔ
اﻟﻤﺘﺄﺛﺮة
ﺗﺨﺰﯾﻦ ﻋﻨﺼﺮ
)STOS(B or W STOS operand ﻻ ﯾﻮﺟﺪ
ﺳﻠﺴﻠﺔ
اﻟﻌﻤﻠﯿﺔ :
) ( AL or AX ) → ( ( ES x 10h ) + DI
DI ± 1 or 2 → DI
ﻣﺜﺎل:
ﺑﻔﺮض أن :
SI = 0100h DS = 0200h
DI = 0110h ES = 0400h
ﻓﺈن ﻧﺘﯿﺠﺔ ﺗﻨﻔﯿﺬ اﻟﺘﻌﻠﯿﻤﺘﯿﻦ اﻟﺘﺎﻟﯿﺘﯿﻦ :
MOV CX,20h
REP MOVSB
ھﻲ أن اﻟﺘﻌﻠﯿﻤﺔ اﻷوﻟ ﻰ ﺗﻘ ﻮم ﺑﺘﺤﻤﯿ ﻞ اﻟﻤ ﺴﺠﻞ CXﺑﺎﻟﻘﯿﻤ ﺔ 20h = 32dأﻣ ﺎ اﻟﺘﻌﻠﯿﻤ ﺔ اﻟﺜﺎﻧﯿ ﺔ ﻓﺘﻨﻘ ﻞ 32ﺑﺎﯾ ﺖ
ﻣﻦ ﺣﺠﺮات ذاﻛﺮة اﻟﻤﺼﺪر اﻟﻤﺤﺪدة ﺑﻮاﺳ ﻄﺔ DSو SIإﻟ ﻰ ﺑﻠ ﻮك ﺣﺠ ﺮات ذاﻛ ﺮة اﻟﮭ ﺪف اﻟﻤﺤ ﺪدة ﺑﻮاﺳ ﻄﺔ
ESو . DI
ﻣﺜﺎل:
ﺑﻔ ﺮض أن ﻧﺎﻓ ﺬﺗﻲ دﺧ ﻞ ﺑﺤﺠ ﻢ ﺑﺎﯾ ﺖ ﻓ ﻲ اﻟﻌﻨ ﺎوﯾﻦ Ah, A9hﻋﻠ ﻰ اﻟﺘﺮﺗﯿ ﺐ ﺳَ ﺘُﻘﺮأ و ﻣ ﻦ ﺛ ﻢ ﺳ ﯿﺘﻢ إﺧ ﺮاج
ﻣﺤﺘﻮﯾﺎﺗﮭﺎ إﻟﻰ ﻧﺎﻓ ﺬة ﺧ ﺮج ﺑﺤﺠ ﻢ ﻛﻠﻤ ﺔ ﻓ ﻲ اﻟﻌﻨ ﻮان B000hاﻟﻤﻄﻠ ﻮب ﻛﺘﺎﺑ ﺔ اﻟﺘﻌﻠﯿﻤ ﺎت اﻟﻼزﻣ ﺔ ﻹﻧﺠ ﺎز ھ ﺬا
اﻟﻌﻤﻞ.
اﻟﺤﻞ:
]IN AL,[0AAh
MOV AH,AL
]IN AL,[0A9h
MOV DX,0B000h
OUT DX,AX