Professional Documents
Culture Documents
OSjs BK002
OSjs BK002
ﻓـــﻲ ﻫــﺬا اﻟﻜﺘــﺎب ﺳﻨـﺤﺎول ﻣﻨـﺎﻗﺸـﺔ ﻫــﺬا اﻟﺘـﻌﺮﯾـﻒ ﺑـﺸﻜـﻞ ﺗـﻔـﺼـﯿﻠﻲ ،وﺳــﻨـﻘﻮم ﺑﺘـﻘﺴﯿـﻤــﺔ إﻟــﻰ :
- ١ﻣــﺎﻫـﻲ ﻣـﺮاﺣــﻞ ﺗـﻄـﻮر أﻧـﻈﻤـﺔ اﻟﺘـﺸﻐﯿـﻞ وﻣـﻦ أﯾـﻦ أﺗـﺖ اﻟﻔﻜﺮة )ﻧﻈﺎم ( BIOS
) ﻧـﻈـﺎم اﻟﺒـﯿـﻮس ،ﻣـﺎﻫــﻲ ﻃـﺮﯾﻘﺔ ﻋﻤـﻠﺔ وﻫـﻞ ﺗـﻢ ﻧـﻘﻞ ﺑـﻘﯿﺔ أﻓـﻜﺎر اﻷﻧﻈﻤﺔ ﻣﻨﺔ (
- ٢ﻛﯿـﻒ ﺗـﻜﺘﺐ أﻧـﻈﻤـﺔ اﻟﺘـﺸﻐﯿــﻞ ١٦ﺑـﺖ وﻛﯿـﻒ ﺗـﻌﻤـﻞ ) ﻧـﻈﺎم دوس و ﯾﻮﻧﻜﺲ (...
) ﺳﻨﻘﻮم ﺑﻜﺘﺎﺑﺔ أﻣﺜﻠﺔ ﺗﻄﺒﯿﻘﯿﺔ ﻋﻠﻰ ﻋﻤﻠﯿﺔ إﻗﻼع اﻟﻨﻈﺎم وﻛﯿﻒ ﺗﻤﺖ ﻓﻲ ﺑﻘﯿﺔ اﻷﻧﻈﻤﺔ (
- ٣ﻣﺎﻫــﻮ اﻟﺠـﺪﯾـﺪ ﻓـﻲ ﺑـﺮﻣـﺠﺔ اﻷﻧـﻈﻤﺔ ٣٢ﺑـﺖ ) ﻧـﻈﺎم وﻧـــﺪوز وﻧـﻈﺎم ﻟﯿـﻨﻜﺲ (...
) ﻣـﻔـﻬﻮم اﻟﺠـﺪاول و اﻟﻨـﻤـﻂ اﻟﺤﻘـﯿـﻘﻲ و ﺗـﻌـﺪد اﻟـﻤـﻬﺎم واﻟﺒـﻮاﺑـﺎت واﻹﻣـﺘـﯿـﺎزات (
ﻗﺪ ﺗﺘﻄﻠﺐ ﻗﺮاﺋﺔ ﻫﺬا اﻟﻜﺘﺎب ﻓﻬﻢ ﺑﺴﯿﻂ ﻟﻠﻐﺔ اﻹﺳﻤﺒﻠﻲ ﺑﺎﻹﺿﺎﻓﺔ ﻟﺒﻌﺾ ﻗﻄﻊ اﻟﺠﻬﺎز اﻟﻬﺎردوﯾﺮ
اﻵن ﻋﻨـﺪك ﺟـﻬﺎز ﻛﻤﺒﯿﻮﺗـﺮ ﺑـﺠﺎﻧﺒـﻚ ...ﺑـﺸﺮط أن ﯾﻜﻮن ﻣﻐﻠﻖ .ﺑﻤﻌﻨﻰ أﻧﺔ ﻏﯿﺮ ﻣﻮﺻﻮل ﺑﺎﻟﻜﻬﺮﺑﺎء!
ﻗﻢ ﺑﺘﻮﺻﯿﻞ ﻛﻞ أﺟﺰاء اﻟﻜﻤﺒﯿﻮﺗﺮ +ﺗﺄﻛﺪ ﻣﻦ ﺗﻮﺻﯿﻞ أﺳﻼك اﻟﻜﻬﺮﺑﺎء +ﺿﻊ أﺻﺒﻌﻚ ﻋﻠﻰ زر اﻟﺘﺸﻐﯿﻞ
ﺳﻨﻘﻮم اﻵن ﺑﻜﺘﺎﺑﺔ ﻛﻞ ﻋﻤﻠﯿﺔ ﺗﺤﺪث ﻣﻦ أول ﻣﺎ ﺗﻀﻐﻂ ﻋﻠﻰ زر اﻟﺘﺸﻐﯿﻞ ..إﻟﻰ أن ﺗﻈﻬﺮ ﻧﺎﻓﺬة ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ
واﻵن إﺿـﻐﻂ ﻋﻠـﻰ زر أو ﻣـﻔﺘﺎح اﻟﺘـﺸﻐﯿﻞ وإﻗـﺮأ ﻛـﻞ ﻛﻠـﻤﺔ ﻓـﻲ اﻟﻤـﻮﺿـﻮع ﺑـﺘﻔﻜﯿـﺮ ﻋﻤـﯿﻖ ...اﻟﺒــــﺪاﯾﺔ
ﯾﺒﺪأ ﻣﻮزع اﻟﻜﻬﺮﺑﺎء أو اﻟﺒﻮر ﺳﺒﻼي ﺑﺈﻣﺪاد اﻟﻠﻮﺣﺔ اﻷم ﺑﺎﻟﻄﺎﻗﺔ ..ﻣﺒﺎﺷﺮة ﺗﺼﻞ اﻟﻄﺎﻗﺔ إﻟﻰ اﻟﻤﻌﺎﻟﺞ
ﯾﺸﺘﻐﻞ اﻟﻤﻌﺎﻟﺞ أول ﻣﺎ ﯾﻘﻮم ﺑﺔ ﻫﻮ ﺗﺼﻔﯿﺮ ﻟﻜﻞ ﻣﺴﺠﻼت اﻟﻤﻌﺎﻟﺞ ﻣﺜﻞ axو bxو dsو..و..
ﺑﻌﺪ ذﻟﻚ ﯾﻘﻮم ﺑﺸﻐﻠﺔ ﻣﻬﻤﺔ ﻟﺒﺪء اﻟﺘﺤﻜﻢ ..ﯾﻘﻮم اﻟﻤﻌﺎﻟﺞ ﺑﺈﻋﻄﺎء اﻟﻤﺴﺠﻞ csوﻫﻮ ﻗﺴﻢ اﻟﺸﻔﺮة أو اﻟﺘﻨﻔﯿﺬ
اﻟﻘﯿﻤﺔ )F000ﻛﻞ اﻷرﻗﺎم ﺑﺎﻟﺮﻣﺰ اﻟﺴﺖ ﻋﺸﺮي أو اﻟﻬﻜﺲ ( وﺑﻬﺬا ﯾﻜﻮن اﻟﻤﻌﺎﻟﺞ ﻗﺪ ﺣﺪد ﻗﺴﻢ اﻟﺘﻨﻔﯿﺬ
وﺑﻌﺪ ذﻟﻚ ﯾﻘﻮم ﺑﺘﺤﺪﯾﺪ اﻹزاﺣﺔ ﻟﻠﻘﺴﻢ وأﻛﯿﺪ ﺑﻮاﺳﻄﺔ اﻟﻤﺴﺠﻞ ipﻓﯿﻌﻄﯿﺔ اﻟﻘﯿﻤﺔ FFF0
ﺗﻼﺣﻆ أن اﻟﻤﻌﺎﻟﺞ ﺑﺪأ اﻟﺘﻨﻔﯿﺬ ﻓﻲ اﻟﻨﻤﻂ اﻟﺤﻘﯿﻘﻲ أي ﻧﻤﻂ ١٦ﺑﺖ وﻗﺪ إﺳﺘﺨﺪم ﻣﺴﺠﻼت ﻫﺬا اﻟﻨﻤﻂ
واﻟﺴﺒﺐ ﻓﻲ ذﻟﻚ ﻫﻮ اﻟﺘﻮاﻓﻘﯿﺔ ﺑﯿﻦ اﻷﻧﻈﻤﺔ +إﻣﻜﺎﻧﯿﺔ اﻟﻮﺻﻮل إﻟﻰ أي ﻋﻨﻮان ﻓﻲ اﻟﺬاﻛﺮة
ﺑﻌﺪ ذﻟﻚ ﯾﻘﻮم ﺑﻨﻘﻞ اﻟﺘﻨﻔﯿﺬ ﻣﻦ اﻟﻌﻨﻮان اﻟﺬي ﺣﺪدة اﻟﻤﻌﺎﻟﺞ إﻟﻰ ﻧﻈﺎم اﻹدﺧﺎل واﻹﺧﺮاج اﻷﺳﺎﺳﻲ )اﻟﺒﯿﻮس (
ﻣﺎﻫﻮ اﻟﺒﯿﻮس :ﻋﺒﺎرة ﻋﻦ ﺑﺮﻧﺎﻣﺞ ﻣﺨﺰن ﻓﻲ ذاﻛﺮة ﻋﻠﻰ اﻟﻠﻮﺣﺔ اﻷم ﺗﺴﻤﻰ اﻟﺬاﻛﺮةROM
وﻫﻲ ذاﻛﺮة ﻟﻠﻘﺮاﺋﺔ ﻓﻘﻂ +أﻧﻬﺎ ﻻﺗﻔﻘﺪ اﻟﻤﻌﻠﻮﻣﺎت اﻟﻤﺨﺰﻧﺔ ﺑﻬﺎ ﻋﻨﺪ إﻏﻼق اﻟﺠﻬﺎز
واﻷﻣﺜﻠﺔ ﻋﻠﻰ اﻟﺒﺮاﻣﺞ اﻟﻤﺨﺰﻧﺔ ﻓﻲ ذاﻛﺮة ROMﻛﺜﯿﺮة ..ﻫﻞ ﻻﺣﻈﺖ ﺷﻌﺎرات اﻟﺸﺮﻛﺎت ﻓﻲ ﺑﺪاﯾﺔ اﻟﺘﺸﻐﯿﻞ
ﻣﺜﻞ ﻛﺮت اﻟﺸﺎﺷﺔ ﯾﻈﻬﺮ ﻟﻚ ﻋﻼﻣﺔ ﺗﺠﺎرﯾﺔ ﻣﺜﻼ ..SISﻫﺬة اﻟﺒﺮاﻣﺞ ﻛﻠﻬﺎ ﻣﺨﺰﻧﺔ ﻓﻲ اﻟﺬاﻛﺮة ROM
وﻟﻠﻤﻌﻠﻮﻣﺔ :ﯾﻤﻜﻦ ﻟﻠﻬﻜﺮ أو اﻟﻜﺮاﻛﺮ) اﻟﻤﺨﺘﺼﯿﻦ ﻓﻲ اﻟﺒﺮﻣﺠﺔ اﻟﻌﻜﺴﯿﺔ ( اﻟﻮﺻﻮل ﻟﻠﺒﺮاﻣﺞ اﻟﻤﺨﺰﻧﺔ ﻓﻲ ROM
وﺗﻐﯿﯿﺮ ﻣﺤﺘﻮﻫﺎ ..ﺑﻞ وﻛﺴﺮ ﺣﻤﺎﯾﺘﻬﺎ ؟ أﻛﯿﺪ ﺗﺮﯾﺪ أﻣﺜﻠﺔ ..ﺗﻔﻀﻞ
http://hackingthexbox.com/
http://www.xenatera.com/bunnie/proj/anatak/xboxmod.html
واﻵن ﻛﯿﻒ ﺗﻌﻤﻞ ﻫﺬة اﻟﺒﺮاﻣﺞ ...إذا ﻓﻬﻤﺖ اﻟﺒﯿﻮس ﺳﺘﻌﺮف اﻟﻘﺼﺔ!
ﻛﯿﻒ ﯾﻌﻤﻞ اﻟﺒﯿﻮس ؟
ﺑﻌﺪ أن ﯾﺠﻬﺰ اﻟﻤﻌﺎﻟﺞ اﻟﻤﺴﺠﻼت ﯾﻘﻮم ﺑﺘﺴﻠﯿﻢ اﻟﻘﯿﺎدة أو اﻟﺘﺤﻜﻢ ﻟﻠﻨﻈﺎم ﺑﯿﻮس
ﯾﺒﺪأ اﻟﺘﻨﻔﯿﺬ ﻓﻲ اﻟﺒﯿﻮس ﻋﻨﺪ اﻟﺴﻄﺮ ) ٤٣٠ﻓﻲ ﻣﻌﺎﻟﺠﺎت إﻧﺘﻞ ( ﯾﻘﻮم اﻟﺒﯿﻮس ﺑﻌﺪد ﻣﻦ اﻟﻤﻬﺎم اﻷﺳﺎﺳﯿﺔ
ﻻ ﺗﻌﺘﻘﺪ أن ﻃﺮﯾﻘﺔ ﻓﺤﺺ اﻷﺟﻬﺰة أﻣﺮ ﻣﻌﻘﺪ ...ﺑﻜﻞ ﺑﺴﺎﻃﺔ ﯾﻘﻮم اﻟﺒﯿﻮس ﺑﺈرﺳﺎل إﺷﺎرة ﻟﻤﻨﻔﺬ اﻟﺠﻬﺎز
ﻋﻦ ﻃﺮﯾﻖ اﻷﻣﺮ outوﺑﻌﺪ ذﻟﻚ ﯾﻘﻮم ﺑﺈﺳﺘﻘﺒﺎل أي إﺷﺎرة ﻣﻦ اﻟﺠﻬﺎز ﻋﻦ ﻃﺮﯾﻖ اﻷﻣﺮIN
إذا وﺻﻠﺖ أي إﺷﺎرة ﻣﻦ اﻟﺠﻬﺎز ﻣﻌﻨﻰ ذﻟﻚ أﻧﺔ ﺷﻐﺎل ...وإذا ﻟﻢ ﺗﺼﻞ أي إﺷﺎرة ﻣﻌﻨﺎة ﺧﻄﺄ ﻓﻲ اﻟﺠﻬﺎز
ﻓﻲ ﻧﻘﻄﺔ ﻣﻬﻤﺔ ﻓﻲ اﻟﻔﺤﺺ ..أول ﻣﺎﯾﻘﻮم ﺑﺔ اﻟﺒﯿﻮس ﻓﺤﺺ ﻛﺮت اﻟﺸﺎﺷﺔ +ﻣﻨﻔﺬ اﻟﺸﺎﺷﺔ
إذا وﺟﺪ أي ﺧﻄﺄ ﻓﯿﺔ ) ﺑﻤﻌﻨﻰ أن اﻟﺸﺎﺷﺔ ﻻ ﺗﻌﻤﻞ وﻻﯾﻤﻜﻦ رؤﯾﺔ أي ﻣﻼﺣﻈﺔ ﯾﻜﺘﺒﻬﺎ اﻟﺒﯿﻮس ﻋﻠﻰ اﻟﺸﺎﺷﺔ(
ﯾﻘﻮم اﻟﺒﯿﻮس ﻓﻲ ﻫﺬة اﻟﺤﺎل ﺑﺈﺳﺘﺨﺪام ﻃﺮﯾﻘﺔ اﻷﺻﻮات أو اﻟﺼﺎﻓﺮة ﻟﻌﺮض أي ﺧﻄﺄ ﻓﻲ ﻋﻤﻠﯿﺔ اﻟﻔﺤﺺ
ﻗﻤﺖ ﺑﺘﺸﻐﯿﻞ اﻟﺠﻬﺎز ..ﻟﻢ ﯾﻌﻤﻞ اﻟﺠﻬﺎز ..ﻟﻢ ﯾﺼﺪر اﻟﺒﯿﻮس أي ﺻﻮت ) ﻋﻠﻰ ﻃﻮل اﻟﺨﻄﺄ ﻓﻲ اﻟﺒﻮر ﺳﺒﻼي(
ﻷﻧﺔ ﻛﻤﺎ ذﻛﺮﻧﺎ .ﯾﻘﻮم اﻟﺒﯿﻮس ﺑﺈﺻﺪار ﺻﻮت إذا وﺟﺪ ﺧﻄﺄ .وإذا ﻟﻢ ﯾﺼﺪر أي ﺻﻮت ﻣﻌﻨﻰ ذﻟﻚ أن اﻟﺘﻨﻔﯿﺬ
وﻫﻜﺬا ﻣﻊ ﻛﻞ اﻷﺧﻄﺎء
واﻟﻨﻘﻄﺔ اﻟﺜﺎﻧﯿﺔ ...إذا ﻛﺎﻧﺖ اﻟﺸﺎﺷﺔ ﺷﻐﺎﻟﺔ ) ﯾﺘﻢ ﻋﺮض اﻷﺧﻄﺎء ﺑﻄﺮﯾﻘﺔ اﻷرﻗﺎم(
http://www.pchell.com/hardware/beepcodes.shtml
-----------------------------------
ﺑﻌﺪ أن ﯾﻘﻮم اﻟﺒﯿﻮس ﺑﻔﺤﺺ اﻷﺟﻬﺰة ﯾﻘﻮم ﺑﺈﻧﺸﺎء ﺟﺪوﻟﯿﻦ
ﻋﻨﺪ اﻟﻌﻨﻮان ) ٠٠٠٠:٠٠٠٠اﻟﻌﻨﻮان ﺻﻔﺮ ( ﯾﺒﺪأ ﺑﻜﺘﺎﺑﺔ ﻋﻨﻮاﯾﻦ اﻟﻤﻘﺎﻃﻌﺎت .ﻛﻞ ﻣﻘﺎﻃﻌﺔ
ﺗﺄﺧﺬ ﻟﻬﺎ ٤ﺑﺎﯾﺖ ..ﻟﺘﺪل ﻋﻠﻰ ﻋﻨﻮان ﺑﺪاﯾﺔ ﺗﻨﻔﯿﺬ اﻟﻤﻘﺎﻃﻌﺔ ،ﺑﻬﺬا اﻟﺸﻜﻞ
اﻟﻤﻘﺎﻃﻌﺔ ﺻﻔﺮ INT 0ﻋﻨﻮاﻧﻬﺎ ) ٠٠٠٠:٠٠٠٠ﻫﺬا اﻟﻌﻨﻮا ﯾﺤﺘﻮي ﻋﻠﻰ ﻋﻨﻮان اﻟﺘﻨﻔﯿﺬ (
اﻟﻤﻘﺎﻃﻌﺔ واﺣﺪ INT 1ﻋﻨﻮاﻧﻬﺎ ، ٠٠٠٠:٠٠٠٤اﻟﻤﻘﺎﻃﻌﺔ ٢ﻋﻨﻮاﻧﻬﺎ 0000:0008
ﺑﺎﻗﻲ اﻟﻤﻘﺎﻃﻌﺎت ﺳﻨﻜﺘﺒﻬﺎ ﻓﻲ وﻗﺘﻬﺎ ..ﻷن ﻧﻈﺎم اﻟﺪوس ﯾﺘﻄﻔﻞ وﯾﺒﺪأ ﻓﻲ اﻟﻜﺘﺎﺑﺔ ﻋﻨﺪ اﻟﻌﻨﻮان اﻟﺬي ﺗﻮﻗﻔﻨﺎ ﻋﻨﺪة
أوﻻ :اﻟﻔﺎﺋﺪة ﻣﻦ اﻟﺠﺪول ﻫﻲ ﻧﻘﻞ اﻟﺘﻨﻔﯿﺬ ..واﻟﻤﺜﺎل ﻋﻠﻰ ذﻟﻚ ﻓﻲ وﻧﺪوز ﻣﻜﺎﺗﺐ اﻟﺮﺑﻂ ذات اﻹﻣﺘﺪاد dll
ﻣﺎ رأﯾﻜﻢ ﺑﻤﻘﺎﻃﻌﺔ ﺣﺠﻢ اﻟﺬاﻛﺮة وﻫﻲ اﻟﻤﻘﺎﻃﻌﺔ .. ١٢ﻋﻨﻮاﻧﻬﺎ ﻓﻲ اﻟﺬاﻛﺮة ٠٠٠٠:٠٠٤٨
ﻓﻲ ﺑﺮﻧﺎﻣﺞ اﻟﺪﯾﺒﻐﺮ أﻛﺘﺐ اﻷﻣﺮ D 0000:0048وﻫﻮ ﻋﻨﻮان اﻟﻤﻘﺎﻃﻌﺔ ،إﺣﻔﻆ أول ٤ﺑﺎﯾﺘﺎت
ﻫﻞ ﺗﻌﺮف ﻣﺎﯾﻤﺜﻠﺔ اﻟﻌﻨﻮان ،ﻫﻮ ﺑﺪاﯾﺔ اﻟﺘﻨﻔﯿﺬ ﻟﺸﻔﺮة اﻟﻤﻘﺎﻃﻌﺔ ...ﺟﺮب إذﻫﺐ ﻟﻠﻌﻨﻮان
اﻟﻔﺎﺋﺪة ﻣﻦ اﻟﻤﻘﺎﻃﻌﺔ:
أﻫﻢ ﻓﺎﺋﺪة ﻫﻲ ﺗﺒﺴﯿﻂ اﻷﻣﻮر وﻫﻮ ا ﺳﻠﻮب ﻣﺘﺒﻊ إﻟﻰ اﻵن ﻓﻲ اﻷﻧﻈﻤﺔ اﻟﺤﺪﯾﺜﺔ ﻣﺜﻞ وﻧﺪوز xp
ﻣﺎ رأﯾﻜﻢ ﺑﺘﺸﺮﯾﺢ ﻣﻘﺎﻃﻌﺔ إﻇﻬﺎر ﺣﺠﻢ اﻟﺬاﻛﺮة ..ﻷﻧﻬﺎ أﺳﻬﻞ ﻣﻘﺎﻃﻌﺔ و أول ﻣﻘﺎﻃﻌﺔ ﯾﻨﻔﺬﻫﺎ اﻟﺒﯿﻮس
ﻛﻞ ﻣﺮة ﻋﻨﺪ ﺗﺸﻐﯿﻠﻚ ﻟﺠﻬﺎزك ﺗﺮى ﺑﺄن اﻟﻨﻈﺎم ﺑﯿﻮس ﺑﻌﺪ ﻓﺤﺺ اﻷﺟﻬﺰة ﯾﻌﺮض ﻟﻚ ﺣﺠﻢ اﻟﺬاﻛﺮة
ﻫﻞ ﺗﺮﯾﺪ أن ﺗﻌﺮف ﻛﯿﻒ ﯾﻨﻔﺬﻫﺎ ..ﻋﻦ ﻃﺮﯾﻖ ﺑﺮﻣﺠﺔ اﻟﻤﻨﺎﻓﺬ +اﻟﺒﺮﻣﺠﺔ اﻟﻤﺒﺎﺷﺮة ﻟﻠﺬاﻛﺮة
ﺑﻬﺬا اﻟﻜﻮد:
mov al,18h
out 70h,al
in al,71h
mov ah,al
mov al,17h
out 70h,al
in al,71h
ﺑﻌﺪ ﺗﻨﻔﯿﺬ ﻫﺬا اﻟﻜﻮد ﺳﯿﺼﺒﺢ ﻣﺴﺠﻞ = axﺣﺠﻢ اﻟﺬاﻛﺮة
ﻫﻞ ﻋﺮﻓﺖ ﻓﺎﺋﺪة اﻟﻤﻘﺎﻃﻌﺔ -ﻓﻘﻂ إﺳﺘﺒﺪل ﻛﻞ اﻟﻜﻮد ﺑﺘﻌﻠﯿﻤﺔ اﻟﻤﻘﺎﻃﻌﺔ INT 12وﺳﯿﺤﻤﻞ اﻟﻤﺴﺠﻞ axﺑﺤﺠﻢ اﻟﺬاﻛﺮة
ﻫﺬا ﻫﻮ ﻣﻔﻬﻮم اﻟﻤﻘﺎﻃﻌﺔ ،ﺑﻌﺪ ذﻟﻚ ﯾﺒﺪأ اﻟﺒﯿﻮس ﻓﻲ ﺑﻨﺎء اﻟﺠﺪول اﻟﺜﺎﻧﻲ
ﺟﺪول ﻣﻌﻠﻮﻣﺎت : BIOS
وﺑﻬﺬا ﯾﻜﻮن ﻧﻈﺎم اﻟﺒﯿﻮس ﻗﺪ ﺟﻬﺰ ﺧﺪﻣﺎﺗﺔ وﻫﻲ اﻟﻤﻘﺎﻃﻌﺎت وﺑﻌﺪ ذﻟﻚ ﺟﻬﺰ ﻣﻌﻠﻮﻣﺎﺗﺔ
وﻓﻲ اﻟﻨﻬﺎﯾﺔ ﯾﺒﺤﺚ ﻋﻦ ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ ﻟﺘﺤﻤﯿﻠﺔ إﻟﻰ اﻟﺬاﻛﺮة وﺗﺴﻠﯿﻤﺔ ﻣﻬﻤﺔ اﻟﻘﯿﺎدة واﻟﺘﺤﻜﻢ
ﯾﺒﺪأ اﻟﺒﯿﻮس ﻓﻲ اﻟﺒﺤﺚ ﻋﻦ ﻣﺸﻐﻞ اﻟﻨﻈﺎم وﻫﻮ ﻣﺎ ﯾﻌﺮف ﺑﻘﻄﺎع اﻹﻗﻼع boot sector
ﻗﺪ ﯾﻜﻮن ﻓﻲ ﻗﺮص ﻣﺮن أو ﻗﺮص ﺻﻠﺐ أو ﺣﺘﻰ ﺳﯿﺪي ،اﻟﻤﻬﻢ أن اﻟﺒﯿﻮس ﯾﺒﺪأ اﻟﺒﺤﺚ
ﻓﻲ ﻛﻞ اﻷﻗﺮاص ..ﺣﺴﺐ اﻟﺘﺮﺗﯿﺐ اﻟﺬي ﺣﺪدﺗﺔ ﻓﻲ إﻋﺪادات اﻟﺒﯿﻮس
داﺋﻤﺎ ﯾﻜﻮن ﻗﻄﺎع اﻹﻗﻼع ﻫﻮ اﻟﻘﻄﺎع اﻷول ﻓﻲ اﻟﻘﺮص وﯾﺠﺐ أن ﯾﺤﻤﻞ ﻋﻼﻣﺔ ﺗﺪل ﻋﻠﻰ أﻧﺔ ﻗﻄﺎع إﻗﻼع
ﻛﺘﺎﺑﺔ ﺑﺮﻧﺎﻣﺞ إﻗﻼع ﻓﻲ اﻟﻘﻄﺎع اﻷول ﺷﻐﻠﺔ ﺳﻬﻠﺔ ﻷن اﻟﻤﻮﺿﻮع ﯾﺘﻄﻠﺐ ﻓﻬﻢ أﻣﺮﯾﻦ ﻓﻘﻂ
ﺑﺮﻧﺎﻣﺞ اﻹﻗﻼع اﻟﻘﯿﺎﺳﻲ ﯾﺴﺘﺨﺪم ﻣﻘﺎﻃﻌﺘﯿﻦ ﻓﻘﻂ وﻫﻲ اﻟﻤﻘﺎﻃﻌﺔ ١٣ﻟﺘﺤﻤﯿﻞ اﻟﻤﻠﻔﺎت ﻣﻦ اﻟﻘﺮص
واﻷﻣﺮ اﻟﺜﺎﻧﻲ :ﻣﻌﺮﻓﺔ اﻟﻌﻨﺎوﯾﻦ اﻟﺬي ﺳﯿﻨﺘﻘﻞ ﻟﻬﺎ اﻟﺘﻨﻔﯿﺬ +ﻣﻌﺮﻓﺔ ﻣﺨﺰن اﻟﻘﺮاﺋﺔ ﻣﻦ اﻟﻘﺮص
ﺗﻮﻗﻔﻨﺎ ﻋﻨﺪ اﻟﺒﯿﻮس وﻃﺮﯾﻘﺔ ﺗﺤﻤﻠﯿﺔ ﻟﻠﻨﻈﺎم اﻟﺘﺸﻐﯿﻞ ،وﻗﻠﻨﺎ أﻧﺔ ﺳﯿﺤﻤﻞ ﻗﻄﺎع واﺣﺪ ﻓﻘﻂ
ﺑﻌﺪ أن ﯾﺠﺪ ﻗﻄﺎع اﻹﻗﻼع ﺳﯿﻘﻮم ﺑﺘﺤﻤﯿﻠﺔ إﻟﻰ اﻟﻌﻨﻮان address =7C00
ﻣﺎذا ﺗﺴﺘﻔﯿﺪ ﻣﻦ ﻣﻌﺮﻓﺔ ﻋﻨﻮان اﻟﺘﺤﻤﯿﻞ ..أول ﺷﻲء ﺗﻘﻮم ﺑﺔ إﻋﻄﺎء اﻟﻤﺴﺠﻞ csﻫﺬة اﻟﻘﯿﻤﺔ
ﻟﯿﻨﺘﻘﻞ اﻟﺘﻨﻔﯿﺬ ﻟﻬﺎ ،ﺑﻌﺪ ذﻟﻚ ﻣﺒﺎﺷﺮة ﺗﻘﻮم ﺑﺈﺳﺘﺨﺪام اﻟﻤﻘﺎﻃﻌﺔ 13ﻟﺘﺤﻤﯿﻞ ﻛﻞ ﻣﺤﺘﻮﯾﺎت اﻟﻘﺮص
أو ﺗﺤﻤﻞ ﺑﺮﻧﺎﻣﺞ ﻣﻌﯿﻦ ،ﻓﻲ أﻣﻮر ﻣﻬﻤﺔ ﻋﻨﺪ ﻫﺬة اﻟﻨﻘﻄﺔ ؟ ﻣﺎذا ﯾﻌﺮف اﻟﺒﯿﻮس ﻋﻦ اﻟﻘﺮص
ﻫﻞ ﻣﺮت ﻋﻠﯿﻚ أﻧﻈﻤﺔ اﻟﻤﻠﻔﺎت ﻣﺜﻞ FAT ,NFS ,ex2..3وﻏﯿﺮﻫﺎ ﻣﻦ أﻧﻈﻤﺔ ﻣﻠﻔﺎت وﻧﺪوز وﻟﯿﻨﻜﺲ
ﺑﺈﺧﺘﺼﺎر ﺑﺮﻧﺎﻣﺞ اﻟﺒﯿﻮس ﻻ ﯾﻌﺮف ﺷﻲء ﻋﻦ ﻫﺬة اﻟﺨﺮاﺑﯿﻂ وﻻ ﯾﻌﺮف ﺣﺘﻰ أﯾﻦ ﺗﺒﺪأ وأﯾﻦ ﺗﻨﺘﻬﻲ
ﻣﺎ ﯾﻌﺮﻓﺔ اﻟﺒﯿﻮس ﻫﻮ ﺗﺮﻛﯿﺐ اﻟﻘﺮص اﻟﻔﯿﺰﯾﺎﺋﻲ ﻣﺜﻞ اﻟﺮأس و اﻹﺳﻄﻮاﻧﺔ و اﻟﻘﻄﺎع واﻟﻤﺴﺎر
ﻋﺪد اﻟﻘﻄﺎﻋﺎت=AL
رﻗﻢ اﻟﻤﺴﺎر=CH
رﻗﻢ اﻟﻘﻄﺎع=CL
رﻗﻢ اﻟﺮأس=DH
رﻗﻢ اﻟﻘﺮص=DL
وﻟﻜﻦ إذا ﻗﻤﺖ أﻧﺖ ﺑﻜﺘﺎﺑﺔ ﻣﻠﻒ ﻣﻌﯿﻦ ﻓﻲ ﻗﻄﺎﻋﺎت اﻟﻘﺮص ﺑﻜﻞ ﺑﺴﺎﻃﺔ ﺗﺴﺘﻄﯿﻊ أن ﺗﺤﺪد ﻣﻮﻗﻌﺔ ﺑﺎﻟﻀﺒﻂ
ﻣﻼﺣﻈﺔ :ﻓﻲ آﺧﺮ ﺑﺎرﻣﺘﺮ وﻫﻮ ES:DXﻫﺬا اﻟﺒﺎرﻣﺘﺮ ﻻ ﺗﻜﺘﺐ ﺑﺔ ﺷﻲء ﻷﻧﻚ ﻋﻨﺪﻣﺎ ﺗﻨﻔﺬ اﻟﻤﻘﺎﻃﻌﺔint13
ﺳﯿﻘﻮم اﻟﺒﯿﻮس ﺑﻜﺘﺎﺑﺔ ﻋﻨﻮان ﺗﺤﻤﯿﻞ اﻟﺒﺮﻧﺎﻣﺞ إﻟﻰ اﻟﻤﻮﻗﻊ ES:DX ,وﺑﻬﺬا ﺗﻘﻮم ﺑﺤﻔﻆ ﻫﺬا اﻟﻌﻨﻮان
وﺗﻘﻮم ﺑﻨﻘﻞ اﻟﺘﻨﻔﯿﺬ ﻣﻦ ﻗﻄﺎع اﻹﻗﻼع إﻟﻰ اﻟﻌﻨﻮان اﻟﺬي ﯾﻤﺜﻞ اﻟﺒﺮﻧﺎﻣﺞ أو اﻟﻨﻈﺎم اﻟﺬي ﺣﻤﻠﺘﺔ و ﯾﺒﺪأ اﻟﺘﻨﻔﯿﺬ
ﺳﻨﻘﻮم ﺑﻜﺘﺎﺑﺔ أﻣﺮ ﺑﺴﯿﻂ ﻓﻲ ﻗﻄﺎع اﻹﻗﻼع ،وﻫﻮ ﻣﺜﺎل ﻹﻇﻬﺎر ﻋﺪد ﻣﻦ اﻟﺤﺮوف ،وأﻛﯿﺪ اﻟﻤﺜﺎل ﺳﯿﻜﻮن ﻋﻠﻰ
ﻗﺮص ﻣﻀﻐﻮظ
وأول ﻣﺎ ﺗﺸﻐﻞ اﻟﻜﻤﺒﯿﻮﺗﺮ ،وﺑﻌﺪ ﻋﻤﻠﯿﺔ ﻓﺤﺺ اﻷﺟﻬﺰة ..ﺳﯿﻈﻬﺮ ﺑﺮﻧﺎﻣﺠﻨﺎ ﺑﻜﻞ ﺛﻘﺔ ؟!
ﺳﻨﻘﻮم ﺑﻜﺘﺎﺑﺔ اﻟﺒﺮﻧﺎﻣﺞ داﺧﻞ ﻗﻄﺎع اﻹﻗﻼع ﺑﺈﺳﺘﺨﺪام ﺑﺮﻧﺎﻣﺞ debugﻓﻲ اﻟﻨﻈﺎم وﻧﺪوز
http://www.arabteam2000-forum.com/index.php?showtopic=44877
اﻵن ﻗﻢ ﺑﺈدﺧﺎل اﻟﻘﺮص اﻟﻤﻀﻐﻮط) اﻟﻔﻠﻮﺑﻲ ( ﻻ ﯾﻬﻢ إذا ﻛﺎن ﻣﻔﺮﻣﺖ أو ﻻ ﻷن اﻟﺒﯿﻮس ﻻ ﯾﻌﺮف ﺷﻲء ﻣﻦ ﻫﺬا
وﻟﻜﻦ ﻟﻮﻛﺎن اﻟﻘﺮص ﻣﻔﺮﻣﺖ ﺳﯿﻮﻓﺮ ﻋﻠﯿﻨﺎ ﻛﺘﺎﺑﺔ ﺗﻮﻗﯿﻊ ﻗﻄﺎع اﻹﻗﻼع وﻫﻮ AA 55ﻓﻲ آﺧﺮ ﺑﺎﯾﺘﯿﻦ
ﺑﻌﺪ ذﻟﻚ ﻣﻦ ﻗﺎﺋﻤﺔ startﺛﻢ runإﻛﺘﺐ debugﻟﺘﺸﻐﯿﻞ ﺑﺮﻧﺎﻣﺞ اﻟﺪﯾﺒﻐﺮ وﺳﺘﻼﺣﻆ اﻟﻌﻼﻣﺔ " " -ﻇﻬﺮت
ﺑﻬﺬا اﻷﻣﺮ ﻧﻜﻮن ﺣﻤﻠﻨﺎ ﻗﻄﺎع اﻹﻗﻼع إﻟﻰ اﻟﺬاﻛﺮة ،واﻵن ﻧﺮﯾﺪ أن ﻧﻜﺘﺐ ﺑﺔ ﺑﺮﻧﺎﻣﺞ ﺻﻐﯿﺮ
أﻛﺘﺐ ﻋﻨﺪ ﻋﻼﻣﺔ -اﻟﺘﻌﻠﯿﻤﺔ a 100أي أﻧﻨﺎ ﻧﺮﯾﺪ ﻛﺘﺎﺑﺔ ﻛﻮد إﺳﻤﺒﻠﻲ ﻋﻨﺪ اﻟﻌﻨﻮان ١٠٠
اﻟﻌﻨﺎوﯾﻦ ﯾﻜﺘﺒﻬﺎ اﻟﺪﯾﺒﻐﺮ ﻧﻔﺴﺔ وﻗﺪ ﺗﺘﻐﯿﺮ ..ﻻ ﯾﻬﻢ .أﻫﻢ ﺷﻲء ﻫﻲ اﻟﺘﻌﻠﯿﻤﺎت
اﻟﺒﺮﻧﺎﻣﺞ اﻟﺬي ﻛﺘﺒﻨﺎة ﻫﻮ ﻋﺒﺎرة ﻋﻦ ﻣﻘﺎﻃﻌﺔ إﻇﻬﺎر ﺣﺮف ﻋﻠﻰ اﻟﺸﺎﺷﺔ ,اﻟﺮﻗﻢ ٤٢ﯾﻤﺜﻞ اﻟﺤﺮفB
اﻟﺮﻗﻢ ١٤ﯾﻤﺜﻞ ﻟﻮن اﻟﺤﺮف وﻟﻮن اﻟﺨﻠﻔﯿﺔ اﻟﺮﻗﻢ ١٠ﯾﻤﺜﻞ ﻋﺪد ﺗﻜﺮار اﻟﺤﺮف ﻋﻠﻰ اﻟﺸﺎﺷﺔ
ﺑﻌﺪ ذﻟﻚ ﺳﻨﻘﻮم ﺑﺈدﺧﺎل ﺑﺮﻧﺎﻣﺠﻨﺎ إﻟﻰ اﻟﻌﻨﻮان ١٠٠وﺗﺨﺰﯾﻨﺔ ﻓﻲ اﻟﺬاﻛﺮة ،ﺑﺈﺳﺘﺨﺪام اﻟﺘﻌﻠﯿﻤﺔ e 100
-e 100
0B3A:0100 B4. 09. B0. 42. B7. 00. B3. 14.
0B3A:0108 B9. 10. 00. CD. 10.
ﻛﻤﺎ ﺷﺮﺣﺖ ﺳﺎﺑﻘﺎ ﯾﺘﻢ إدﺧﺎل ﻛﻞ ﺑﺎﯾﺖ ﺑﺈﺳﺘﺨﺪام ﻣﻔﺘﺎح اﻟﻤﺴﺎﻓﺔ ﻓﻲ ﻟﻮﺣﺔ اﻟﻤﻔﺎﺗﯿﺢ
وﺑﻘﻲ اﻵن ﻛﺘﺎﺑﺔ ﻫﺬا اﻟﺒﺮﻧﺎﻣﺞ إﻟﻰ ﻗﻄﺎع اﻹﻗﻼع ﻓﻲ اﻟﻘﺮص ,ﺑﺈﺳﺘﺨﺪام اﻷﻣﺮW
--------
ﻟﻮ ﻛﺎﻧﺖ ﺑﺮﻣﺠﺔ اﻷﻧﻈﻤﺔ ﻓﻘﻂ إﻟﻰ ﻫﻨﺎ ..ﻟﻮﺟﺪت ١٠٠ﻧﻈﺎم ﺗﺸﻐﯿﻞ ﻋﺮﺑﻲ ؟!
ﺑﺎﻟﻔﻌﻞ ﻫﺬة اﻟﻄﺮﯾﻘﺔ ﻧﻔﺴﻬﺎ ﻣﻦ أول ﻣﺎﻇﻬﺮ دوس و إﻟﻰ اﻵن وﻧﺪوز ٢٠٠٣ﯾﺴﺘﺨﺪم ﻧﻔﺲ اﻟﻄﺮﯾﻘﺔ
وﻟﻜﻦ اﻟﺘﻌﻘﯿﺪ ﯾﻈﻬﺮ ﺑﻌﺪ ﺗﺤﻤﯿﻞ اﻟﻨﻈﺎم ..أي ﺑﻌﺪ أن ﯾﺴﻠﻤﻚ اﻟﺒﯿﻮس ﻣﻬﻤﺔ اﻟﺘﺤﻜﻢ ﻓﻲ اﻟﺠﻬﺎز
- ١ﻛﯿﻒ ﺗﻌﻤﻞ اﻷﻧﻈﻤﺔ ﺗﺤﺖ ﺑﯿﺌﺔ ١٦ﺑﺖ ) ﻣﺜﻞ اﻟﻨﻈﺎم دوس و اﻟﻨﻈﺎم ﯾﻮﻧﻜﺲ ١٦ﺑﺖ (
ﻗﺒﻞ اﻟﺒﺪء :أﻧﻈﻤﺔ اﻟﺘﺸﻐﯿﻞ اﻟﻤﻮﺟﻮدة ﺣﺎﻟﯿﺎ ﺗﻨﻘﺴﻢ إﻟﻰ ﻗﺴﻤﯿﻦ ﻫﻲ أﻧﻈﻤﺔ ١٦ﺑﺖ وأﻧﻈﻤﺔ ٣٢ﺑﺖ
واﻹﺧﺘﻼف ﺑﯿﻦ ﻣﻨﺼﺔ ١٦ﺑﺖ و ٣٢ﺑﺖ إﺧﺘﻼف ﻛﺒﯿﺮ ﺟﺪا وﻟﺬﻟﻚ ﺳﯿﻨﻘﺴﻢ اﻟﻤﻮﺿﻮع إﻟﻰ ﻗﺴﻤﯿﻦ
ﺑﺈﺧﺘﺼﺎر أﻧﻈﻤﺔ ١٦ﺑﺖ ﻫﻲ اﻷﻧﻈﻤﺔ اﻟﻘﺪﯾﻤﺔ وﻫﻲ ﻋﺒﺎرة ﻋﻦ ﺷﺎﺷﺔ ﺳﻮداء ﺗﺴﺘﻘﺒﻞ اﻷواﻣﺮ
ﻇﻬﺮت ﻫﺬة اﻷﻧﻈﻤﺔ ﻟﻠﻌﺎﻟﻢ ﺑﻌﺪ ﻇﻬﻮر اﻟﻤﻌﺎﻟﺞ ٨٠٨٦إﺧﺘﺼﺎرة ) (x86ﻣﻦ ﻗﺒﻞ ﺷﺮﻛﺔ إﻧﺘﻞ
وﻣﻦ ﻫﺬة اﻷﻧﻈﻤﺔ اﻟﺪوس و اﻟﯿﻮﻧﻜﺲ و OS2و ﺑﻌﺾ اﻟﺒﺮاﻣﺞ اﻟﻤﺴﺘﻘﻠﺔ وﻏﯿﺮﻫﺎ!
ﻫﺬة اﻷﻧﻈﻤﺔ ﺗﻌﻤﻞ ﻓﻲ اﻟﻨﻤﻂ اﻟﺤﻘﯿﻘﻲ ) ﺑﻤﻌﻨﻰ أﻧﺔ ﻻﺗﻮﺟﺪ ﻗﻮاﻋﺪ وﺷﺮوط وإﻣﺘﯿﺎزات ﻟﻠﺒﺮاﻣﺞ واﻟﻨﻈﺎم(
أﻫﻢ ﻧﻘﻄﺔ ﻓﻲ ﻫﺬة اﻷﻧﻈﻤﺔ :أﻧﻬﺎ ﻻ ﺗﺴﺘﻄﯿﻊ ﺗﺸﻐﯿﻞ أﻛﺜﺮ ﻣﻦ ﻣﻬﻤﺔ أو ﺑﺮﻧﺎﻣﺞ ﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ
ﻣﻌﻠﻮﻣﺔ :ﻗﺪ ﺗﻼﺣﻆ أﻧﺔ ﻓﻲ ﻧﻈﺎم اﻟﺪوس ﻣﺜﻼ أﻛﺜﺮ ﻣﻦ ﺑﺮﻧﺎﻣﺞ ﻣﻘﯿﻢ ﻓﻲ اﻟﺬاﻛﺮة وﻛﻠﻬﺎ ﺷﻐﺎﻟﺔ
وﻣﻊ ذﻟﻚ ﻻ ﯾﻌﺘﺒﺮ اﻟﻨﻈﺎم ﻣﺘﻌﺪد اﻟﻤﻬﺎم ،ﻷن ﻛﻞ اﻟﺒﺮاﻣﺞ اﻟﻤﻘﯿﻤﺔ ﻓﻲ اﻟﺬاﻛﺮة ﻻﺗﻌﻤﻞ ﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ
وإﻧﻤﺎ ﯾﻨﺘﻘﻞ اﻟﺘﻨﻔﯿﺬ ﻣﻦ ﺑﺮﻧﺎﻣﺞ ﻵﺧﺮ ﺑﺎﻟﺘﺮﺗﺒﯿﺐ ) وﺳﺘﺘﻀﺢ ﻓﻜﺮة ﺗﻌﺪد اﻟﻤﻬﺎم ﻓﻲ اﻟﻘﺴﻢ اﻟﺜﺎﻧﻲ ﻣﻦ اﻟﻤﻮﺿﻮع(
-------------
ﻫﺬة اﻟﻨﻘﺎط ﺗﻜﻔﻲ ﻟﻠﺪﺧﻮل ﻓﻲ اﻟﻤﻮﺿﻮع ،،،ﺳﯿﺘﻢ إﺧﺘﯿﺎر اﻟﻨﻈﺎم دوس ﻣﻦ ﺑﯿﻦ أﻧﻈﻤﺔ ١٦ﺑﺖ
ﻷﻧﺔ ﻣﺘﻮﻓﺮ ﻋﻨﺪ اﻷﻏﻠﺒﯿﺔ ﻟﺘﻄﺒﯿﻖ أﻣﺜﻠﺔ اﻟﺪرس واﻟﻨﻘﻄﺔ اﻟﺜﺎﻧﯿﺔ أن ﻛﻞ اﻷﻧﻈﻤﺔ ﻣﺘﺸﺎﺑﻬﺔ ﻓﻲ ﻃﺮﯾﻘﺔ ﻋﻤﻠﻬﺎ
ذﻛﺮﻧﺎ ﻓﻲ اﻟﺪرس اﻟﺴﺎﺑﻖ أن آﺧﺮ ﻋﻤﻠﯿﺔ ﯾﻘﻮم ﺑﻬﺎ اﻟﺒﯿﻮس ﻫﻲ ﺗﺤﻤﯿﻞ ﻗﻄﺎع اﻹﻗﻼع وﻧﻘﻞ اﻟﺘﺤﻜﻢ ﻟﻠﻨﻈﺎم
ﻓﻲ اﻟﻨﻈﺎم دوس ﯾﺒﺪأ ﺑﺮﻧﺎﻣﺞ اﻹﻗﻼع ﺑﺘﻌﻠﯿﻤﺔ ﻗﻔﺰ إﻟﻰ اﻹزاﺣﺔ hex =3Eواﻟﺘﻌﻠﯿﻤﺔ ﻫﻲJMP 3E
وﻟﺬﻟﻚ ﻓﺈن ﺑﺪاﯾﺔ اﻟﺘﻨﻔﯿﺬ اﻟﻔﻌﻠﻲ ﻟﺒﺮﻧﺎﻣﺞ اﻹﻗﻼع ﯾﺒﺪأ ﻋﻨﺪ اﻟﻌﻨﻮانhex =0000:7C3E
اﻟﺴﺒﺐ ﻷن ﻣﻘﺪﻣﺔ اﻟﻘﺮص ﺗﺤﺘﻮي ﻋﻠﻰ ﻣﻌﻠﻮﻣﺎت ﻋﻦ اﻟﻘﺮص ﯾﺨﺰﻧﻬﺎ ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ ) ﻋﻨﺪ ﻋﻤﻠﯿﺔ اﻟﻔﻮرﻣﺎت(
وﻫﺬة اﻟﻤﻌﻠﻮﻣﺎت ﻫﻲ ﻋﺪد اﻟﻘﻄﺎﻋﺎت ﻓﻲ ﻛﻞ ﺗﺠﻤﻊ وﻋﺪد اﻟﺘﺠﻤﻌﺎت وﻋﺪد اﻟﺒﺎﯾﺘﺎت ﻓﻲ ﻛﻞ ﻗﻄﺎع ...وﻫﻜﺬا
وﻫﻲ ﻣﺎ ﺗﻌﺮف ﺑﻤﻘﺪﻣﺔ اﻟﻘﺮص ,وﺗﺠﺪ اﻟﻤﻌﻠﻮﻣﺎت ﻋﻦ ﻛﻞ ﺑﺎﯾﺖ ﻓﻲ ﻫﺬة اﻟﻤﻘﺪﻣﺔ ﻫﻨﺎ:
http://www.arabteam2000-forum.com/index.php?showtopic=44877
0000:7C3E CLI
0000:7C3F XOR AX,AX
0000:7C41 MOV SS,AX
0000:7C43 MOV SP,7C00
0000:7C46 PUSH SS
0000:7C47 POP ES
ﯾﺒﺪأ ﺑﺮﻧﺎﻣﺞ اﻹﻗﻼع ﺑﺘﺼﻔﯿﺮ أﻋﻼم أو راﯾﺎت اﻟﻤﻘﺎﻃﻌﺎت ﻋﻦ ﻃﺮﯾﻖ اﻟﺘﻌﻠﯿﻤﺔ اﻷوﻟﻰ
وﻫﺬة اﻟﻄﺮﯾﻘﺔ ﻻ ﺗﻌﺘﺒﺮ ﺷﺮط ﻟﺒﺪاﯾﺔ اﻹﻗﻼع ﻷن ﺑﺮاﻣﺞ اﻹﻗﻼع ﻷﻧﻈﻤﺔ IBMﻻ ﺗﺴﺘﺨﺪم ﻫﺬة اﻟﺘﻌﻠﯿﻤﺔ
اﻟﻤﻬﻢ ﺑﻌﺪ ذﻟﻚ ﯾﺼﻔﺮ اﻟﻤﺴﺠﻞ axوﻣﻦ ﺧﻼﻟﺔ ﯾﺼﻔﺮ ﻗﺴﻢ اﻟﻤﻜﺪس وﻫﻮss
وﯾﻌﻄﺎ اﻟﻤﺴﺠﻞ spﻗﯿﻤﺔ ﺗﻤﺜﻞ ﺑﺪاﯾﺔ اﻟﺒﺮﻧﺎﻣﺞ ﻓﻲ اﻟﺬاﻛﺮة وﯾﺘﻢ دﻓﻊ اﻟﻘﯿﻤﺔ ﻟﻠﻤﻜﺪس
ﻟﻤﺎذا ؟ ﻷن اﻟﻤﺴﺠﻞ spﻣﺮﺗﺒﻂ ﺑﺎﻟﻤﻘﻄﻊ ssوﯾﻤﺜﻼن ﻣﻜﺪس اﻟﺒﺮﻧﺎﻣﺞ وﻫﻮ ss:spوﯾﺴﺎوي 7C00:0000
وﺑﻬﺬا ﯾﻜﻮن ﻗﺪ ﻋﺮف ﻣﻜﺪس اﻟﺒﺮﻧﺎﻣﺞ ﻟﺘﺨﺰﯾﻦ اﻟﻤﻌﻠﻮﻣﺎت اﻟﻤﺆﻗﺘﺔ أو اﻟﻤﺘﻐﯿﺮات ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ
اﻟﺨﻄﻮة اﻟﺜﺎﻧﯿﺔ:
ﻫﺬة اﻟﺨﻄﻮة ﻟﻠﺘﻐﯿﯿﺮ ﻓﻲ ﺑﻌﺾ ﺧﺼﺎﺋﺺ اﻟﻘﺮص )ﺑﻤﻌﻨﻰ أن اﻟﻨﻈﺎم دوس ﺳﯿﻐﯿﺮ ﻓﻲ ﺧﺼﺎﺋﺺ اﻟﻘﺮص ﻟﻠﺒﯿﻮس(
؟؟
ﻻﺣﻆ اﻟﺘﻌﻠﯿﻤﺔ اﻷوﻟﻰ اﻟﻤﺴﺠﻞ bx = 0078ﺑﻌﺪ ﻫﺬة اﻟﺘﻌﻠﯿﻤﺔ ﺗﻼﺣﻆ أن ﺑﺎﻗﻲ اﻟﺘﻌﻠﯿﻤﺎت ﺗﻨﻔﺬ داﺧﻞ اﻟﻤﻘﻄﻊ ss
واﻟﻌﻼﻗﺔ ﻫﻲ DS:SIأي أن اﻟﻤﺴﺠﻞ واﻟﻤﻘﻄﻊ ﻣﺮﺗﺒﻄﯿﻦ ﻣﻊ ﺑﻌﺾ ﻣﺜﻞ اﻟﺨﻄﻮة اﻷوﻟﻰ ) وﻫﺬة ﻗﻮاﻧﯿﻦ ﻓﻲ ﻟﻐﺔ
اﻹﺳﻤﺒﻠﻲ(
اﻟﻤﻬﻢ ﻛﻞ ﻫﺬة اﻟﺸﻐﻠﺔ ﻫﻲ ﻟﺠﻌﻞ ﻣﻘﻄﻊ اﻟﺒﯿﺎﻧﺎت ﯾﻤﺜﻞ اﻟﻌﻨﻮان ٠٠٠٠:٠٠٧٨ﺑﻌﺪ إرﺗﺒﺎﻃﺔ ﺑﻬﺬة اﻟﻄﺮﯾﻘﺔDS:SI
ﻣﺎذا ﯾﻤﺜﻞ اﻟﻌﻨﻮان وﻟﻤﺎذا ﻫﺬة اﻟﺸﻐﻠﺔ ؟! ﻣﻌﺮﻓﺔ ﻫﺬا اﻟﻌﻨﻮان ﺳﯿﺤﻞ اﻟﻠﻐﺰ اﻷول ؟ ﻻﺣﻆ
ﻫﻞ ﻗﺮأت ﻣﻮﺿﻮع ﺑﺮﻣﺠﺔ اﻟﺒﯿﻮس ؟ راﺟﻊ اﻟﺠﺪول اﻷول وﻫﻮ ﻟﻌﻨﺎوﯾﻦ اﻟﻤﻘﺎﻃﻌﺎت وﺧﺎﺻﺔ اﻟﻤﻘﺎﻃﻌﺔINT 1E
ﺳﺘﺠﺪ ﻋﻨﻮاﻧﻬﺎ ﺑﻬﺬة اﻟﻄﺮﯾﻘﺔ INT 1E =0000:0078وﻫﻲ ﺧﺎﺻﺔ ﻟﺠﺪول وﺑﺎرﻣﺘﺮات اﻟﻘﺮص ؟! أي ﺧﺼﺎﺋﺺ
اﻟﻘﺮص اﻟﻤﺮن
ﻓﻲ ﻫﺬا اﻟﺠﺪول ﯾﺨﺰن اﻟﺒﯿﻮس ﻣﻌﻠﻮﻣﺎت اﻟﻘﺮص اﻟﺬي ﺣﻤﻞ ﻣﻨﺔ ﻗﻄﺎع اﻹﻗﻼع ؟ ﻓﯿﻘﻮم اﻟﺪوس ﺑﻘﺮاﺋﺘﻬﺎ واﻟﺘﻐﯿﯿﺮ
ﺣﺴﺐ ﻃﻠﺒﺔ
ﺗﻼﺣﻆ أن اﻟﺪوس ﻧﻘﻞ ﺑﯿﺎﻧﺎت اﻟﻘﺮص إﻟﻰ ﻧﻔﺲ ﻣﻘﻄﻊ اﻟﺒﺮﻧﺎﻣﺞ وﻗﺪ ﯾﻜﻮن أي ﻋﻨﻮان ﻓﻲ ﻣﻘﻄﻊ اﻟﺒﺮﻧﺎﻣﺞ
0000:7C6F STI
0000:7C70 INT 13
أول ﺗﻌﻠﯿﻤﺔ ﯾﻘﻮم ﻧﻈﺎم اﻟﺪوس ﺑﺘﻐﯿﯿﺮ ﺧﺎﺻﯿﺔ ﺗﺴﻤﻰ ﻣﺪة اﻹﻧﺘﻈﺎر ﻟﺮأس اﻟﻘﺮاﺋﺔ واﻟﻜﺘﺎﺑﺔ ﻓﻲ اﻟﻘﺮص
وﻫﻲ إﺣﺪى ﺧﺼﺎﺋﺺ اﻟﻘﺮص وﯾﺤﺪد اﻟﻤﺪة ﺑﺎﻟﻘﯿﻤﺔ ) Fأﻋﺘﻘﺪ أﻧﻬﺎ ﻟﺘﺴﺮﯾﻊ اﻟﻘﺮاﺋﺔ (
اﻟﺘﻌﻠﯿﻤﺔ اﻟﺜﺎﻧﯿﺔ واﻟﺜﺎﻟﺜﺔ :ﯾﻘﻮم ﻧﻈﺎم اﻟﺪوس ﺑﺘﻐﯿﯿﺮ ﻋﺪد اﻟﻘﻄﺎﻋﺎت ﻓﻲ ﻛﻞ ﻣﺴﺎر ) ﻟﻜﻲ ﯾﺤﺪد ﻗﻄﺎﻋﺎت ﻣﻠﻒ ﻣﺤﺪد(
وﻟﻮ ﺗﻼﺣﻆ أﻧﺔ ﻗﺮأ اﻟﻘﯿﻤﺔ اﻟﻤﻮﺟﻮدة ﻓﻲ ﻣﻘﺪﻣﺔ اﻟﻘﺮص واﻹزاﺣﺔ ﻫﻲ ١٨وﺗﻤﺜﻞ ﻋﺪد اﻟﻘﻄﺎﻋﺎت ﻓﻲ اﻟﻤﺴﺎر
ﺑﻌﺪ ذﻟﻚ ﯾﻘﻮم ﺑﻨﻘﻞ اﻟﺨﺼﺎﺋﺺ ﺑﻌﺪ ﺗﻌﺪﯾﻠﻬﺎ ،واﻟﺘﻌﻠﯿﻤﺔ stiﻫﻲ ﻹﻋﺎدة ﺗﻔﻌﯿﻞ اﻟﻤﻘﺎﻃﻌﺎت
وآﺧﺮ ﺷﻲء ﯾﻘﻮم ﺑﺘﻨﻔﯿﺬ ﻣﻘﺎﻃﻌﺔ إﻋﺎدة ﺗﻬﺌﯿﺔ اﻟﻘﺮص ،،وﯾﺼﺒﺢ اﻟﻘﺮص ﺟﺎﻫﺰ ﺑﻌﺪ اﻟﺘﻐﯿﯿﺮ
اﻟﺘﻌﻠﯿﻤﺔ اﻷوﻟﻰ ﯾﺘﻌﺮف ﻋﻠﻰ ﻋﺪد ﺟﺪاول ﻧﻈﺎم اﻟﻤﻠﻔﺎت FATوﻫﻲ اﻹزاﺣﺔ 10
واﻟﺘﻌﻠﯿﻤﺔ اﻟﺜﺎﻧﯿﺔ ﻋﺪد ﻗﻄﺎﻋﺎت اﻟﺠﺪول ﻓﺎت اﻹزاﺣﺔ ،، ١٦ﺛﻢ ﻋﺪد اﻟﻘﻄﺎﻋﺎت اﻟﻤﺨﻔﯿﺔ وﻫﻜﺬا
راﺟﻊ ﻣﻘﺪﻣﺔ اﻟﻘﺮص ﻟﺘﻌﺮف ﻛﻞ ﻗﯿﻤﺔ ﻣﺎذا ﺗﻤﺜﻞ ،وﻛﯿﻔﯿﺔ اﻹﺳﺘﻔﺎدة ﻣﻨﻬﺎ
اﻟﻤﻬﻢ أﻧﺔ ﺑﻌﺪ اﻟﺤﺴﺎﺑﺎت ﯾﺤﺪد ﻗﻄﺎﻋﺎت ﻣﻠﻒ ﻣﻌﯿﻦ ﻟﺒﺪاﯾﺔ ﺗﺸﻐﯿﻞ اﻟﻨﻈﺎم
وﻓﻲ ﻣﺜﺎﻟﻨﺎ ﻓﺈن اﻟﻨﻈﺎم دوس ﯾﺒﺤﺚ ﻋﻦ ﻗﻄﺎﻋﺎت اﻟﻤﻠﻒ IO.sysﯾﻘﻮم ﺑﺘﺤﻤﯿﻠﺔ إﻟﻰ اﻟﻌﻨﻮانhex 0070:0000
ﻣﻼﺣﻈﺔ :ﯾﺘﻢ ﻗﺮاﺋﺔ أول ٣ﻗﻄﺎﻋﺎت ﻣﻦ اﻟﻤﻠﻒ ﻓﻘﻂ وﺑﻌﺪ ذﻟﻚ ﺗﻨﻘﻞ ﻟﻠﺬاﻛﺮة
وأﻛﯿﺪ ﺑﺈﺳﺘﺨﺪام اﻟﺨﺪﻣﺔ ٢ﻣﻦ اﻟﻤﻘﺎﻃﻌﺔ ) INT 13ﺑﻨﻔﺲ اﻟﻄﺮﯾﻘﺔ اﻟﺘﻲ ﻗﻤﻨﺎ ﺑﺘﻄﺒﯿﻘﻬﺎ ﻓﻲ ﻣﻮﺿﻮع اﻟﺒﯿﻮس(
وآﺧﺮ ﺧﻄﻮة ﻓﻲ ﺑﺮﻧﺎﻣﺞ اﻹﻗﻼع ﻫﻲ ﺗﻌﻠﻤﯿﺔ ﻗﻔﺰ إﻟﻰ اﻟﻌﻨﻮان )٧٠٠وﻫﻲ أول ٣ﻗﻄﺎﻋﺎت ﻣﻦ اﻟﻤﻠﻒ( io.sys
ﻫﻞ ﻻﺣﻈﺖ اﻟﺪورة اﻟﻐﯿﺮ ﻣﻨﺘﻬﯿﺔ ؟! وأﻫﻢ ﺷﻲء ﻫﻞ ﻻﺣﻈﺖ ﺗﺸﺎﺑﺔ اﻷﻓﻜﺎر ؟!
اﻟﻤﻌﺎﻟﺞ ﯾﺒﺪأ ﺑﻘﻔﺰة إﻟﻰ اﻟﺒﯿﻮس ﺛﻢ ﯾﻘﻮم اﻟﺒﯿﻮس ﺑﺘﺤﻤﯿﻞ ﻗﻄﺎع اﻹﻗﻼع إﻟﻰ اﻟﻌﻨﻮانhex 0000:7C00
ﺛﻢ ﯾﺒﺪأ ﻗﻄﺎع اﻹﻗﻼع ﺑﻘﻔﺰة وﯾﺒﺪأ اﻟﺘﻨﻔﯿﺬ ﺛﻢ ﯾﺤﻤﻞ ﺑﺮﻧﺎﻣﺞ اﻹﻗﻼع ﻧﻮاة اﻟﻨﻈﺎم إﻟﻰ اﻟﻌﻨﻮانhex 0070:0000
ﻓﻲ اﻟﺤﻘﯿﻘﺔ ﻫﺬة اﻟﻤﻌﻠﻮﻣﺎت ﻟﻘﻄﺎع اﻹﻗﻼع ﻣﺘﺸﺎﺑﺔ ﻓﻲ ﻛﻞ أﻧﻈﻤﺔ اﻟﺘﺸﻐﯿﻞ ﺑﻤﺎ ﻓﯿﻬﺎ ١٦و ٣٢ﺑﺖ
ﻻ ﺗﻌﺘﻘﺪ أن ﺗﺤﻤﯿﻞ ﻧﻮاة اﻟﻨﻈﺎم إﻟﻰ اﻟﺬاﻛﺮة ﻫﻲ ﻋﺒﺎرة ﻋﻦ ﺗﺤﻤﯿﻞ ﻣﻠﻒ ﻣﻌﯿﻦ ﻣﻦ اﻟﻘﺮص
واﻟﻨﻘﻄﺔ اﻟﺜﺎﻧﯿﺔ وﻫﻲ اﻷﻫﻢ :ﻻ ﺗﻌﺘﻘﺪ أن ﻣﺤﺘﻮﯾﺎت اﻟﻘﺮص ﻫﻲ اﻟﻤﻠﻔﺎت اﻟﻤﻮﺟﻮدة ﺑﺔ ﻓﻘﻂ ؟!!
ﺳﺆﺣﺎول ﺗﻮﺿﯿﺢ اﻟﻔﻜﺮة ،،ﻫﻞ ﻻﺣﻈﺖ ﺑﺮﻧﺎﻣﺞ اﻹﻗﻼع اﻟﺬي ﻋﺮﺿﻨﺎ ﺑﻌﺾ ﺷﻔﺮﺗﺔ وﻫﻮ ﻣﻮﺟﻮد ﻓﻲ اﻟﻘﻄﺎع اﻷول
ﻫﻞ ﯾﻮﺟﺪ ﻣﻠﻒ ﻓﻲ اﻟﻘﺮص ﯾﺪل ﻋﻠﻰ ﻫﺬا اﻟﺒﺮﻧﺎﻣﺞ ؟؟ أﻛﯿﺪ ﻻ رﻏﻢ أﻧﺔ ﻣﻮﺟﻮد ﻓﻌﻼ ﻓﻲ اﻟﻘﺮص
وﺗﺴﺘﻄﯿﻊ أن ﺗﻜﺘﺐ ﺑﺮﻧﺎﻣﺞ ﻓﻲ ﻣﺤﺘﻮى اﻟﻘﺮص ﻟﺘﺤﻤﯿﻞ اﻟﻨﻈﺎم ..دون وﺟﻮد أي ﻣﻠﻒ ﻣﺮﺋﻲ ﻓﻲ اﻟﻘﺮص
وﺳﺘﻜﻮن ﻃﺮﯾﻘﺔ ﺗﺤﻤﻠﯿﺔ ﻟﻠﺬاﻛﺮة أﺳﻬﻞ وأﻓﻀﻞ ﻷن ﻣﺤﺘﻮﯾﺎﺗﺔ ﺳﺘﻜﻮن ﻓﻲ ﻗﻄﺎﻋﺎت ﻣﺘﺘﺎﻟﯿﺔ
وﻟﻜﻨﺔ ﺳﯿﻜﻮن ﻏﺎﻣﺾ ﻟﻠﻤﺴﺘﺨﺪم
ﺑﺈﺧﺘﺼﺎر أرﯾﺪ أن أﺻﻞ ﻟﻨﻘﻄﺔ ،وﻫﻲ أن اﻟﻨﻈﺎم دوس ﯾﺤﻤﻞ ﺑﺮاﻣﺞ ﻟﺼﻨﺎﻋﺔ ﺑﯿﺌﺔ ﻟﻠﻨﻈﺎم ﻣﻦ أﻣﺎﻛﻦ ﻣﺘﻔﺮﻗﺔ
ﻓﻲ اﻟﻘﺮص ﻗﺪ ﺗﻜﻮن ﻣﻦ ﺑﻌﺾ اﻟﻤﻠﻔﺎت اﻟﻤﺮﺋﯿﺔ أو ﻣﻦ ﻗﻄﺎﻋﺎت ﻣﺨﻔﯿﺔ ﻻ ﺗﻮﺟﺪ ﻟﻬﺎ ﻣﻠﻔﺎت ﻓﻲ اﻟﻘﺮص!
اﻟﺨﻄﻮة اﻷوﻟﻰ :ﯾﺘﻢ ﺑﻨﺎء ﺟﺪول ﻣﻘﺎﻃﻌﺎت اﻟﺪوس وﺟﺪول ﻣﻌﻠﻮﻣﺎت اﻟﺪوس ؟ أﻛﯿﺪ ﻣﺮت ﻋﻠﯿﻚ ﻫﺬة اﻟﺠﺪاول؟!
ﻫﻞ راﺟﻌﺖ اﻟﻤﻮﺿﻮع اﻟﺴﺎﺑﻖ ) ﺑﺮﻣﺠﺔ اﻟﺒﯿﻮس ( ﺗﻘﺼﺪت ﺷﺮح ﺟﺪوﻟﯿﻦ ﺑﺎﻟﺘﻔﺼﯿﻞ وﻫﻤﺎ ﺟﺪول ﻣﻘﺎﻃﻌﺎت اﻟﺒﯿﻮ س
وﺟﺪول ﻣﻌﻠﻮﻣﺎت اﻟﺒﯿﻮس ؟! ﻓﺎﻟﻨﻈﺎم دوس ﺳﺮق اﻟﻔﻜﺮة ﻣﻦ اﻟﺒﯿﻮس وﺑﻨﻔﺲ اﻟﺘﺨﻄﯿﻂ ﻣﺌﺔ ﺑﺎﻟﻤﺌﺔ
ﺑﻌﺪ ذﻟﻚ ﯾﺒﺪأ اﻟﺪوس ﻓﻲ ﻛﺘﺎﺑﺔ ﺟﺪول ﻟﻠﻤﻘﺎﻃﻌﺎت ﻋﻨﺪ اﻟﻌﻨﻮان اﻟﺬي ﺗﻮﻗﻔﻨﺎ ﻋﻨﺪة ﻓﻲ اﻟﺪرس اﻟﺴﺎﺑﻖ
ﺛﻢ ﺗﺘﻢ ﻛﺘﺎﺑﺔ ﺟﺪول ﺑﯿﺎﻧﺎت اﻟﺪوس ﻋﻨﺪ اﻟﻌﻨﻮان ٠٠٥٠:٠٠٠٠ﺣﺠﻢ ﻫﺬا اﻟﺠﺪول ٢٠٠ﺑﺎﻟﻌﻨﻮﻧﺔ =٠٠٢٠:٠٠٠٠
ﺑﺪاﯾﺔ ﺑﺮﻧﺎﻣﺞ ﻧﻮاة ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ اﻟﺬي إﻧﺘﻘﻞ ﻟﺔ اﻟﺘﻨﻔﯿﺬ ﻣﻦ ﻗﻄﺎع اﻹﻗﻼع ،،ﻻﺣﻆ اﻟﺘﺮﺗﯿﺐ اﻟﺪﻗﯿﻖ ﺟﺪا
إذ ﺗﻌﻤﺪ اﻟﻨﻈﺎم ﻣﻦ ﺟﻌﻞ ﻣﺴﺎﺣﺔ ﻓﺎرﻏﺔ ﺗﺴﺒﻖ ﻋﻨﻮان ﻧﻮاة اﻟﻨﻈﺎم ﻟﯿﺘﻢ ﻛﺘﺎﺑﺔ اﻟﺠﺪاول ﺑﻬﺎ,
أوﻻ :اﻟﺠﺪوﻟﯿﻦ ﻋﺒﺎرة ﻋﻦ أرﻗﺎم وﺑﯿﺎﻧﺎت ﻟﺘﺮﺗﯿﺐ وﻧﻘﻞ اﻟﺘﻨﻔﯿﺬ ﻣﺜﻼ ﻣﻘﺎﻃﻌﺔ اﻟﺪوسint 21
ﺗﺘﺼﻞ ﺑﺠﺪول اﻟﻤﻘﺎﻃﻌﺎت ،ﺟﺪول اﻟﻤﻘﺎﻃﻌﺎت ﯾﻨﻘﻞ اﻟﺘﻨﻔﯿﺬ إﻟﻰ ﺑﺮﻧﺎﻣﺞ آﺧﺮ ﻓﻲ اﻟﺬاﻛﺮة ﻟﺘﻨﻔﯿﺬ اﻟﻤﻘﺎﻃﻌﺔ
ﺑﻤﻌﻨﻰ أﻧﺔ ﻹﻧﺸﺎء ﺟﺪاول ﺗﺨﻄﯿﻂ ﻓﻲ اﻟﺬاﻛﺮة ﻻ ﻧﺤﺘﺎج ﻷي ﺗﻌﻠﯿﻤﺔ ﻟﻠﻌﺘﺎد أو اﻟﻤﻨﺎﻓﺬ أو ﻣﻘﺎﻃﻌﺔ ﻟﻠﺒﯿﻮ س
ﻓﻘﻂ ﻧﺤﺘﺎج ﻟﺘﻌﻠﯿﻤﺎت ﻧﻘﻞ اﻟﻤﻌﻠﻮﻣﺎت ﻣﺜﻞ movوﻟﺬﻟﻚ ﺗﺠﺪ اﻟﺒﺮﻧﺎﻣﺞ io.sysﻻ ﯾﺤﺘﻮي ﻋﻠﻰ أي ﻣﻘﺎﻃﻌﺔ
واﻟﻨﺘﯿﺠﺔ :أن اﻟﻤﺴﺆل ﻋﻦ ﺑﻨﺎء اﻟﺠﺪوﻟﯿﻦ ﻫﻮ اﻟﺒﺮﻧﺎﻣﺞ io.sysوﻗﺪ ﺗﺘﺪﺧﻞ ﺑﻌﺾ ﻗﻄﺎﻋﺎت اﻟﻘﺮص اﻟﻤﺨﻔﯿﺔ
واﻵن أﻧﺸﺄ ﻧﻈﺎم اﻟﺪوس اﻟﺠﺪوﻟﯿﻦ وﻟﻜﻦ ﺟﺪول اﻟﻤﻘﺎﻃﻌﺎت ﯾﻨﻘﻞ ﻛﻞ ﻣﻘﺎﻃﻌﺔ إﻟﻰ ﻋﻨﻮان ﻟﺘﻨﻔﯿﺬ اﻟﻤﻘﺎﻃﻌﺔ
ﯾﺒﺪأ ﺑﺮﻧﺎﻣﺞ io.sysﺑﺘﺤﻤﯿﻞ ﺟﺰء ﻣﻦ اﻟﻤﻠﻒ msdos.sysوﻫﺬا اﻟﻤﻠﻒ ﻻ ﯾﺤﺘﻮي ﻋﻠﻰ أي ﺗﻌﻠﯿﻤﺔ
وﺑﻌﺪ ذﻟﻚ ﯾﺒﺪأ ﺑﺘﺤﻤﯿﻞ ﺑﺎﻗﻲ ﻣﻠﻔﺎت اﻟﻘﺮص ﺑﻌﺪ ﺗﺠﺰﺋﺘﻬﺎ ﺣﺴﺐ اﻟﻌﻨﻮان اﻟﺘﻲ ﺳﺘﺘﺼﻞ ﺑﺔ ﻣﻘﺎﻃﻌﺔ اﻟﺪوس
ﻛﯿﻒ ؟
ﻣﺜﻼ اﻟﻤﻠﻒ command.comﯾﻘﺮأ ﻣﻨﺔ ٥ﻗﻄﺎﻋﺎت ﻣﺜﻼ وﯾﻨﻘﻠﻬﺎ ﻟﻌﻨﻮان اﻟﺘﻨﻔﯿﺬ ﻟﻤﻘﺎﻃﻌﺔ ﻣﺤﺪدة
وﻋﻨﺪﻣﺎ ﺗﻨﻔﺬ اﻟﻤﻘﺎﻃﻌﺔ ﯾﻨﺘﻘﻞ اﻟﺘﻨﻔﯿﺬ ﻟﺠﺪول اﻟﻤﻘﺎﻃﻌﺎت ﺑﻌﺪ ذﻟﻚ ﯾﻨﻘﻞ ﺟﺪول اﻟﻤﻘﺎﻃﻌﺎت اﻟﺘﻨﻔﯿﺬ ﻟﻌﻨﻮان اﻟﺨﻤﺲ
ﻗﻄﺎﻋﺎت
وﻫﻜﺬا ﻣﻊ ﺑﻘﯿﺔ اﻟﻤﻠﻔﺎت واﻟﻘﻄﺎﻋﺎت اﻟﺘﻲ ﻻ ﯾﻮﺟﺪ ﻟﻬﺎ ﻣﻠﻔﺎت ﺗﻌﺒﺮ ﻋﻨﻬﺎ ﻓﻲ اﻟﻘﺮص
وﻻﺣﻆ اﻟﺘﺮﺗﯿﺐ اﻟﺬي ﺳﯿﻈﻬﺮ ،أول ﺳﻄﺮ ﺟﺪول اﻟﻤﻘﺎﻃﻌﺎت وﻋﻨﻮاة ٠ﺛﻢ ﺟﺪول ﺑﯿﺎﻧﺎت اﻟﺒﯿﻮس وﻋﻨﻮاﻧﺔ 40
ﺛﻢ ﺟﺪول ﺑﯿﺎﻧﺎت اﻟﺪوس وﻋﻨﻮاﻧﺔ ٥٠وﺑﻌﺪ ذﻟﻚ ﻻﺣﻆ ﺗﻘﺴﯿﻢ اﻟﺒﺮاﻣﺞ ﻣﺜﻼ io.sysﺳﺘﺠﺪة أﻛﺜﺮ ﻣﻦ ﻗﺴﻢ
وﻛﺬﻟﻚ ﺑﺎﻗﻲ اﻟﻤﻠﻔﺎت ﻣﺜﻞ msdosو command ...,ﺑﺈﺧﺘﺼﺎر ﻫﺬة ﻫﻲ ﻓﻜﺮة أﻧﻈﻤﺔ ١٦ﺑﺖ
واﻹﺧﺘﻼف ﺑﺴﯿﻂ ﺑﯿﻦ اﻟﺪوس واﻟﯿﻮﻧﻜﺲ ١٦ﺑﺖ وﻫﻮ ﻋﺒﺎرة ﻋﻦ ﺗﺮﺗﯿﺐ ﻟﻠﻤﻘﺎﻃﻊ اﻟﺘﻲ ﺗﻢ ذﻛﺮﻫﺎ
ﻓﻤﺜﻼ اﻟﯿﻮﻧﻜﺲ ﯾﻜﺘﺐ ﻣﻌﻠﻮﻣﺎﺗﺔ ﺑﻌﺪ ﺟﺪول ﻣﻌﻠﻮﻣﺎت اﻟﺒﯿﻮس ﺑﻬﺬا اﻟﺘﺮﺗﯿﺐ
-ﻧﻮاة اﻟﻨﻈﺎم-
-ذاﻛﺮة ﻣﺆﻗﺘﺔ ﻟﺘﺤﻤﯿﻞ اﻟﺒﺮاﻣﺞ-
-وﻫﻨﺎ ﯾﻜﺘﺐ ﺟﺪاول اﻟﻤﻌﻠﻮﻣﺎت-
-ﻫﻨﺎ ﯾﺨﺼﺺ ﻗﺴﻢ ﻛﺒﯿﺮ ﯾﺴﺘﺨﺪم ﻣﻜﺪس ﻟﻜﻞ اﻟﺒﺮاﻣﺞ-
---------
وﻓﻲ اﻟﻨﻬﺎﯾﺔ ﻫﺬة اﻷﺳﺎﻟﯿﺐ ﻟﺒﺮﻣﺠﺔ أﻧﻈﻤﺔ ١٦ﺑﺖ ﻟﻢ ﺗﻌﺪ ﻣﻮﺟﻮدة أو ﻧﺎدرة اﻹﺳﺘﺨﺪام
وﻟﻜﻦ اﻟﻬﺪف ﻣﻦ ذﻛﺮﻫﺎ ﻟﺘﻜﻮن ﻣﺪﺧﻞ ﻷﻧﻈﻤﺔ ٣٢ﺑﺖ ﻣﺜﻞ وﻧﺪوز وﻟﯿﻨﻜﺲ
ﻟﺘﻜﺘﺸﻒ اﻟﻔﺮق اﻟﻜﺒﯿﺮ ،،،واﻟﺘﺤﻮل ﻣﻦ اﻟﻤﻘﺎﻃﻌﺎت إﻟﻰ اﻟﺪوال APIواﻟﺒﻮاﺑﺎت واﻹﻣﺘﯿﺎزات واﻟﻤﻬﺎم
وأﻓﻀﻞ ﻃﺮﯾﻘﺔ ﻟﻜﺸﻒ أﺳﺮار ﺑﻨﺎء اﻷﻧﻈﻤﺔ ﻫﻲ ﺑﺮاﻣﺞ اﻟﻤﺘﺎﺑﻌﺔ واﻟﺘﺼﺤﯿﺢ وﻫﻲ ﻣﺘﻮﻓﺮة
ﻣﺜﻞ ﺑﺮﻧﺎﻣﺞ debugﻓﻲ دوس واﻟﺒﺮاﻣﺞ اﻟﺘﺠﺎرﯾﺔ ﻣﺜﻞ اﻟﺴﻮﻓﺖ آﯾﺲ وﺑﺮﻧﺎﻣﺞ TDﻣﻦ ﺑﻮرﻟﻨﺪ وﻏﯿﺮﻫﺎ اﻟﻜﺜﯿﺮ
اﻟﺘﺮﺗﯿﺐ :وﻫﻮ ﻋﻤﻞ اﻟﻨﻈﺎم وأﻓﻜﺎرة داﺋﻤﺎ ﺗﺄﺗﻲ ﺗﺤﺖ ﺗﺮﺗﯿﺐ أو ﻗﺎﻧﻮن ﻣﺤﺪد إﻣﺎ أن ﯾﻜﻮن ﻣﺄﺧﻮذ ﻣﻦ اﻟﺒﯿﻮس
ﻛﻤﺎ ﺷﺎﻫﺪﻧﺎ أﻓﻜﺎر ﻧﻈﺎم اﻟﺪوس أو ﺗﻜﻮن ﻓﻜﺮة ﺟﺪﯾﺪة ﺑﺘﺮﺗﯿﺐ ﻣﻌﯿﻦ
واﻟﺘﺮﺗﯿﺐ ﻫﻮ أﺳﺎس ﻓﻲ ﺻﻨﺎﻋﺔ اﻷﻧﻈﻤﺔ
اﻟﻐﻤﻮض :وﻫﻮ أن اﻟﻨﻈﺎم ﯾﺤﺎول ﺑﻜﻞ اﻟﻄﺮق أن ﯾﻈﻬﺮ ﻣﺌﺔ ﻋﻼﻣﺔ ﺗﻌﺠﺐ ﻓﻮق رأﺳﻚ ؟ ﻛﯿﻒ ﻗﺎم ﺑﻬﺬا اﻟﻌﻤﻞ
ﻷن ﺷﺮﻛﺎت اﻷﻧﻈﻤﺔ ﺗﺴﺮق ﻣﻦ ﺑﻌﻀﻬﺎ اﻷﻓﻜﺎر ﻟﻤﺤﺎوﻟﺔ ﺗﻄﻮﯾﺮ أﻧﻈﻤﺘﻬﺎ ،،وداﺋﻤﺎ ﺗﺠﺪ ﺑﻌﺾ اﻟﻄﺮق ﻓﻲ اﻷﻧﻈﻤﺔ
ﺗﻠﻒ وﺗﺪور ﻟﻠﻮﺻﻮل ﻟﻬﺪف ﯾﻤﻜﻦ اﻟﻮﺻﻮل ﻟﺔ ﺑﺨﻄﻮة واﺣﺪة ﺑﺒﺴﺎﻃﺔ ووﺿﻮح ؟ ﻓﻼ ﺗﺴﺘﻐﺮب ﻣﻦ ﻫﺬة اﻟﺪورة
إﻧﺘﺸﺮ اﻟﻤﻌﺎﻟﺞ ) x86أول ﻣﻌﺎﻟﺞ ١٦ﺑﺖ ( ﺑﺸﻜﻞ رﻫﯿﺐ وﺣﻘﻖ ﺗﺤﻮل ﻛﺒﯿﺮ ﻓﻲ ﺻﻨﺎﻋﺔ اﻷﻧﻈﻤﺔ ١٦ﺑﺖ
وﻇﻬﺮت ﻟﻬﺬا اﻟﻤﻌﺎﻟﺞ أﻧﻈﻤﺔ ﻣﺜﻞ دوس وﯾﻨﻜﺲ وﻏﯿﺮﻫﺎ ،وﺑﺎﻟﺘﺄﻛﯿﺪ ﺣﻘﻘﺖ اﻟﺸﺮﻛﺎت أرﺑﺎح ﺷﺒﺔ ﺧﯿﺎﻟﯿﺔ
ﻣﻤﺎ ﺟﻌﻞ ﺷﺮﻛﺔ إﻧﺘﻞ ﺗﺴﺘﻤﺮ ﻓﻲ اﻟﺒﺤﺚ ﻹﻧﺘﺎج ﻣﻌﺎﻟﺞ ﻣﻄﻮر ﯾﺤﺪث ﻧﻘﻠﺔ أﺧﺮى وأرﺑﺎح أﻛﺜﺮ ؟؟
وﻓﻲ ﺳﻨﺔ ١٩٨٩ - ١٩٨٨ﺗﻘﺮﯾﺒﺎ ﻃﺮﺣﺖ ﺷﺮﻛﺔ إﻧﺘﻞ ﻣﻌﺎﻟﺞ اﻷﺣﻼم وﻫﻮ اﻟﻤﻌﺎﻟﺞ ٨٠٣٨٦إﺧﺘﺼﺎرةx386
وﻫﻮ اﻟﻤﻌﺎﻟﺞ ٣٢ﺑﺖ اﻟﺬي ﯾﻤﻠﻚ ﻛﻞ اﻟﺨﺪﻣﺎت ﻣﺜﻞ اﻹﻣﺘﯿﺎزات وﺗﻌﺪد اﻟﻤﻬﺎم وﻣﺴﺠﻼت ٣٢ﺑﺖ واﻷﻧﻤﺎط اﻟﺮﺳﻮﻣﯿﺔ
وﻟﻜﻦ ﺷﺮﻛﺔ إﻧﺘﻞ ﻻ ﺗﺮﯾﺪ أن ﺗﺨﺴﺮ أﻧﻈﻤﺔ اﻟﻤﻌﺎﻟﺞ ١٦ﺑﺖ ،ﻓﺠﻌﻠﺖ اﻟﻤﻌﺎﻟﺞ ﯾﻌﻤﻞ ﻓﻲ اﻟﻤﻨﺼﺘﯿﻦ ١٦ﺑﺖ و ٣٢ﺑﺖ
اﻵن ﻋﺮﻓﻨﺎ أن اﻟﻤﻌﺎﻟﺞ ٣٢ﺑﺖ ﻇﻬﺮ ﺗﻘﺮﯾﺒﺎ ﻓﻲ ﺳﻨﺔ ٨٩وﻟﻜﻦ ﺷﺮﻛﺎت اﻷﻧﻈﻤﺔ ﺗﺤﺘﺎج وﻗﺖ ﻟﻔﻬﻢ ﻋﻤﻞ
اﻟﻤﻌﺎﻟﺞ ٣٢ﺑﺖ وﺑﻨﺎء أﻧﻈﻤﺔ اﻟﺘﺸﻐﯿﻞ ﻟﻪ ,,ﺑﻌﺪ ٦ﺳﻨﻮات ﺗﻘﺮﯾﺒﺎً ﻇﻬﺮ اﻟﻨﻈﺎم وﻧﺪوز ٩٥وﻫﻮ ﻧﻈﺎم ٣٢ﺑﺖ ؟!!
ﻧﻈﺎم اﻟﻮﻧﺪوز ٩٥أول ﻧﻈﺎم ﯾﺴﺘﺨﺪم ﻛﻞ ﺧﺪﻣﺎت اﻟﻤﻌﺎﻟﺞ ٣٢ﺑﺖ وﻫﻮ ﺑﺪاﯾﺔ ﻓﻲ ﻋﺼﺮ اﻷﻧﻈﻤﺔ اﻟﺮﺳﻮﻣﯿﺔ
وﺑﻬﺬا ﻫﯿﻤﺖ ﺷﺮﻛﺔ ﻣﺎﯾﻜﺮوﺳﻔﺖ ﻋﻠﻰ ﺳﻮق اﻟﺒﺮﻣﺠﯿﺎت واﻷﻧﻈﻤﺔ وأﺻﺒﺢ ﺻﺎﻧﻌﻬﺎ اﻷﻏﻨﻰ ﻓﻲ اﻟﻌﺎﻟﻢ!
ذﻛﺮﻧﺎ ﻓﻲ اﻟﺪرﺳﯿﻦ اﻟﺴﺎﺑﻘﯿﻦ أﺳﺎﺳﯿﺎت ﻓﻲ ﺑﺮﻣﺠﺔ أﻧﻈﻤﺔ ١٦ﺑﺖ ووﺟﺪﻧﺎ أن اﻟﻨﻈﺎم ﯾﺴﺘﺨﺪم ﻣﺴﺠﻼت اﻟﻤﻌﺎﻟﺞ
ﻓﻲ اﻟﺒﺮﻣﺠﺔ وﻫﻲ ﻧﻔﺴﻬﺎ اﻟﻤﺴﺠﻼت اﻟﺘﻲ ﺗﺴﺘﺨﺪﻣﻬﺎ اﻟﺒﺮاﻣﺞ ،وإﻛﺘﺸﻔﻨﺎ أن أﻧﻈﻤﺔ اﻟﺘﺸﻐﯿﻞ ﺗﺴﺘﺨﺪم ﻧﻔﺲ أﻓﻜﺎر ﻧﻈﺎم
اﻟﺒﯿﻮس
ﺑﻤﻌﻨﻰ أن أﻧﻈﻤﺔ ١٦ﺑﺖ ﻣﻌﻈﻢ أﻓﻜﺎرﻫﺎ ﻣﺴﺘﻬﻠﻜﺔ ...وﻃﺮق ﺑﺮﻣﺠﺘﻬﺎ واﺿﺤﺔ ،،،وﻟﻜﻦ ﻓﻲ أﻧﻈﻤﺔ ٣٢ﺑﺖ اﻷﻣﺮ
ﯾﺨﺘﻠﻒ!
ﻫﺬة اﻟﻤﺴﺠﻼت ﻛﺎﻧﺖ ﻓﻲ أﻧﻈﻤﺔ ١٦ﺑﺖ وﺗﻢ ﺗﻄﻮﯾﺮﻫﺎ ﻟﺘﺘﺴﻊ إﻟﻰ ٣٢ﺑﺖ أي ٤ﺑﺎﯾﺖ وﻟﻬﺬا ﺳﻤﯿﺖ أﻧﻈﻤﺔ ٣٢ﺑﺖ
ﻟﻮ ﻛﺎن اﻟﺘﻄﻮﯾﺮ ﻓﻘﻂ ﻟﻬﺬة اﻟﻤﺴﺠﻼت ﻟﻤﺎ ﺗﻄﻮر اﻟﻨﻈﺎم ،،،ﻓﻤﺜﻼ اﻟﺨﺪﻣﺎت اﻟﺠﺪﯾﺪة ﻣﺜﻞ:
اﻟﺬاﻛﺮة اﻟﻮﻫﻤﯿﺔ وﺻﻔﺤﺎت اﻟﺬاﻛﺮة ,اﻟﻨﻤﻂ اﻟﻤﺤﻤﻲ واﻟﺒﻮاﺑﺎت ،ﺗﻌﺪد اﻟﻤﻬﺎم ،ﻣﺮاﻗﺒﺔ أﺧﻄﺎء اﻟﻬﺎردوﯾﺮ..
ﻛﻞ ﻫﺬة اﻟﺨﺪﻣﺎت ﺗﺤﺘﺎج ﻟﻤﺴﺠﻼت ﺟﺪﯾﺪة ﻟﯿﺴﺘﺨﺪﻣﻬﺎ ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ ،،وﺳﻨﺒﺪأ ﺑﺸﺮح ﻣﺴﺠﻼت ٣٢ﺑﺖ اﻟﺠﺪﯾﺪة
: IDTR -IDTﺟﺪول اﻟﻤﻘﺎﻃﻌﺎت ) ﻣﻼﺣﻈﺔ :اﻟﻤﺴﺠﻞ idtrﯾﻤﺜﻞ اﻟﺠﺪول ،واﻟﻤﺴﺠﻞ idtﯾﻤﺜﻞ دﻟﯿﻞ ﻟﻠﺠﺪول(
: GDTR-GDTﻣﺴﺠﻼت ﺟﺪول اﻟﻮاﺻﻔﺎت اﻟﺸﺎﻣﻞ
: LDTR -LDTﻣﺴﺠﻼت ﺟﺪول اﻟﻮاﺻﻔﺎت اﻟﻤﺤﻠﻲ
ﻣﺴﺠﻼت ﺗﻌﺪد اﻟﻤﻬﺎم : TSS -TR
TR0,TR1,TR2,TR3,TR4,TR5,TR6,TR7
ﻣﺜﻞ ﺟﺪول اﻟﻮاﺻﻔﺎت اﻟﺸﺎﻣﻞ واﻟﻤﺤﻠﻲ و ﺟﺪاول اﻟﺬاﻛﺮة وﺟﺪول اﻟﻤﻘﺎﻃﻌﺎت ،وﺗﺴﺘﻄﯿﻊ إﺳﺘﺨﺮاج
أي ﻗﯿﻤﺔ ﻓﻲ أي ﺟﺪول ﻣﻦ ﺧﻼل ﻣﻌﻠﻮﻣﺘﯿﻦ ﻫﻤﺎ :اﻷﺳﺎس وﻫﻮ ﯾﻤﺜﻞ ﻋﻨﻮان اﻟﺠﺪول
واﻟﺤﺪ وﻫﻮ ﯾﻤﺜﻞ دﻟﯿﻞ ﻟﻠﺠﺪول ،وﺳﻨﻘﻮم ﺑﻌﺮض ﻫﺬة اﻟﺠﺪاول واﻟﻤﻌﻠﻮﻣﺎت اﻟﺘﻲ ﺗﺤﺘﻮﯾﻬﺎ
ﺟﺪاول اﻟﻮاﺻﻔﺎت ﻣﻦ إﺳﻤﻬﺎ ﺗﻌﻨﻲ :وﺻﻒ ﻋﻨﺎوﯾﻦ اﻟﻤﻘﺎﻃﻊ ووﺻﻒ ﻟﺨﺼﺎﺋﺺ اﻟﻤﻘﺎﻃﻊ وأﻧﻮاﻋﻬﺎ ،،ﻣﺎﻫﻮ
اﻟﻤﻘﻄﻊ ؟!
ﻧﻌﺮف ﺑﺄن ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ ﻋﺒﺎرة ﻋﻦ ﺑﺮاﻣﺞ )ﻋﻤﻠﯿﺎت ( اﻟﺒﺮاﻣﺞ ﻋﺒﺎرة ﻋﻦ ﻣﻘﺎﻃﻊ ،ﻣﺜﻞ ﻣﻘﻄﻊ اﻟﻜﻮد وﻣﻘﻄﻊ
اﻟﺒﯿﺎﻧﺎت
وﻣﻘﻄﻊ اﻟﻜﻮد ﯾﻤﺜﻠﺔ اﻟﻤﺴﺠﻞ CSواﻟﺒﯿﺎﻧﺎت اﻟﻤﺴﺠﻞ DS ,ﻣﺎذا ﻟﻮ ﻓﺘﺤﺖ أي ﺑﺮﻧﺎﻣﺞ ﺑﻮاﺳﻄﺔ اﻟﺪﯾﺒﻐﺮ وأردت أن
ﺗﻌﺮف
ﻋﻨﻮان ﻣﻘﻄﻊ اﻟﻜﻮد ﻣﺜﻼً ،أﻧﺎ ﺟﺮﺑﺖ ﺑﻮاﺳﻄﺔ ﺑﺮﻧﺎﻣﺞ ollyوﻇﻬﺮ ﻟﻲ ﻓﻲ اﻟﻨﺎﻓﺬة اﻟﯿﻤﻨﻰ أن ﻣﻘﻄﻊ اﻟﻜﻮد ﯾﺴﺎوي
CS =21؟؟
وﻣﻘﻄﻊ اﻟﺒﯿﺎﻧﺎت ﻣﺜﻼ DS =1B ,ﻫﻞ ﻣﻦ اﻟﻤﻌﻘﻮل أن ﻫﺬا اﻟﻌﻨﻮان ﻓﻲ اﻟﺬاﻛﺮة ﯾﻤﺜﻞ ﻋﻨﻮان ﻛﻮد اﻟﺒﺮﻧﺎﻣﺞ ؟! أﻛﯿﺪ ﻻ
ﺟﺮب ﺷﻐﻞ أي ﺑﺮﻧﺎﻣﺞ آﺧﺮ ﺑﻮاﺳﻄﺔ اﻟﺪﯾﺒﻐﺮ ,,ﺳﺘﺠﺪ أن ﻋﻨﺎوﯾﻦ اﻟﻤﻘﺎﻃﻊ ﻧﻔﺴﻬﺎ ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ اﻟﺴﺎﺑﻖ ﻟﻢ ﺗﺘﻐﯿﺮ ؟
ﻫﻞ ﻛﻞ اﻟﺒﺮاﻣﺞ ﻟﻬﺎ ﻋﻨﻮان واﺣﺪ ﻓﻲ اﻟﺬاﻛﺮة ؟ ﺑﺈﺧﺘﺼﺎر ﻫﻞ اﻟﻌﻨﻮاﯾﻦ اﻟﺘﻲ ﻧﺮاﻫﺎ ﺣﻘﯿﻘﯿﺔ أم أن اﻟﻨﻈﺎم ﯾﺨﺪﻋﻨﺎ ؟!!
ﯾﺘﻜﻮن اﻟﺠﺪول ﻣﻦ ﻣﺴﺠﻠﯿﻦ اﻷول GDTRوﯾﻤﺜﻞ اﻟﺠﺪول)اﻷﺳﺎس( ،واﻟﻤﺴﺠﻞ GDTﯾﻤﺜﻞ اﻟﺪﻟﯿﻞ )اﻟﺤﺪ(
واﻟﻤﻌﻠﻮﻣﺔ اﻟﺜﺎﻧﯿﺔ أن اﻟﻤﺴﺠﻞ GDTRﺣﺠﻤﺔ ٦٤ﺑﺖ )ﯾﺤﺘﻮي ﻋﻠﻰ اﻟﻌﻨﻮان اﻟﺬاﻛﺮي ﻟﻠﻘﺴﻢ وﺧﺼﺎﺋﺼﺔ(
وﺑﻬﺬا ﺳﻨﻔﻬﻢ اﻟﻔﻜﺮة ،ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ ﯾﻌﻄﻲ أي ﻋﻤﻠﯿﺔ ﻓﻲ اﻟﺬاﻛﺮة )ﻣﺜﻼ ﻣﻘﻄﻊ ﻛﻮد ( ﯾﻌﻄﯿﺔ رﻗﻢ ﻣﺜﻼ ٢٠
ﻫﺬا اﻟﺮﻗﻢ ﯾﻤﺜﻞ رﻗﻢ اﻟﺴﻄﺮ ﻓﻲ ﺟﺪول اﻟﻮاﺻﻔﺎت اﻟﺸﺎﻣﻞ ،،ﺑﻬﺬا اﻟﺸﻜﻞ
اﻟﻤﻼﺣﻈﺔ اﻷوﻟﻰ :اﻟﺠﺪاول ﻓﻲ اﻟﺬاﻛﺮة ﺗﺒﺪأ اﻟﺘﺮﺗﯿﺐ ﻣﻦ اﻷﺳﻔﻞ إﻟﻰ اﻷﻋﻠﻰ ،ﻣﺜﻞ ﻣﻘﻄﻊ اﻟﻤﻜﺪس ﻓﻲ اﻟﺒﺮاﻣﺞ
اﻟﻤﻼﺣﻈﺔ : ٢ﺟﺪول اﻟﻮاﺻﻔﺎت ﻻ ﯾﺤﺘﻮي ﻋﻠﻰ ﻣﻘﺎﻃﻊ ﻟﻠﺒﯿﺎﻧﺎت واﻟﻜﻮد ﻓﻘﻂ ،وإﻧﻤﺎ ﯾﺤﺘﻮي ﻋﻠﻰ أﻛﺜﺮ ﻣﻦ ﻧﻮع
ﻟﻠﻌﻤﻠﯿﺎت ﻣﺜﻞ TSSﻣﺴﺠﻞ ﺣﺎﻟﺔ ﻟﻌﻤﻠﯿﺔ ﻣﻌﯿﻨﺔ ! و ﻗﺪ ﯾﺤﺘﻮي LDTوﻫﻮ ﯾﻤﺜﻞ إزاﺣﺔ ﻓﻲ ﺟﺪول آﺧﺮ
وﻗﺪ ﯾﺤﺘﻮي ﻋﻠﻰ إﺗﺼﺎل ﻟﺒﻮاﺑﺔ أو ﻣﻘﺎﻃﻌﺔ ﻟﺒﻮاﺑﺔ أو ﻣﺼﯿﺪة ﻟﺒﻮاﺑﺔ ،اﻟﻤﻬﻢ أن اﻟﻘﺎﻋﺪة ﻫﻲ
ﺟﺪول اﻟﻮاﺻﻔﺎت اﻟﺸﺎﻣﻞ ﻫﻮ اﻟﻤﺴﺆل ﻋﻦ ﻧﻘﻞ اﻟﺘﺤﻜﻢ ؟إﻣﺎ إﻟﻰ ﺟﺪول آﺧﺮ ﻣﺜﻞ ﺟﺪول اﻟﻤﻘﺎﻃﻌﺎت أو اﻟﺠﺪول
اﻟﻤﺤﻠﻲ
أو إﻟﻰ ﺟﺪول ﻋﻨﺎوﯾﻦ اﻟﺬاﻛﺮة أو إﻟﻰ ﻋﻤﻠﯿﺔ ﻓﻲ اﻟﺬاﻛﺮة ،وﺳﺘﺘﻀﺢ اﻟﻔﻜﺮة ﺑﻌﺪ ﻗﻠﯿﻞ!
وﻵن ﻟﻮ أﺧﺬﻧﺎ أي ﻗﯿﻤﺔ ﻣﻦ اﻟﺠﺪول ﻣﺜﻞ اﻟﻘﯿﻤﺔ ١ﻗﺴﻢ ﺑﯿﺎﻧﺎت ,ﺣﺠﻤﻬﺎ ﺳﯿﻜﻮن ٦٤ﺑﺖ ،ﻣﺎذا ﺗﻤﺜﻞ ﻫﺬة ٦٤ﺑﺖ
ﯾﻘﻮم ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ ﺑﻜﺘﺎﺑﺔ ﻛﻞ ﻣﻌﻠﻮﻣﺎت اﻟﻌﻤﻠﯿﺔ أو اﻟﻘﺴﻢ ﻓﻲ ﻫﺬة اﻟﺨﺎﻧﺔ ،ﻣﺜﻞ اﻟﻌﻨﻮان اﻟﺬاﻛﺮي اﻟﺬي ﺳﯿﺘﺠﺔ ﻟﺔ
اﻟﺘﻨﻔﯿﺬ
ﻧﻮع اﻟﻘﺴﻢ ﻣﺜﻞ ﻛﻮد أو ﺑﯿﺎﻧﺎت أو ﻣﻌﺮف ﻟﺠﺪول أو ﺑﻮاﺑﺔ ،وﯾﻜﺘﺐ إﻣﺘﯿﺎزات اﻟﻘﺴﻢ ﻣﺜﻼ ﻗﺴﻢ ﻟﻠﻨﻈﺎم أو ﻟﻠﻤﺴﺘﺨﺪم
وﻣﻌﻠﻮﻣﺎت أﺧﺮى ﻛﺜﯿﺮة ،،ﯾﺴﺘﻔﯿﺪ ﻣﻨﻬﺎ اﻟﻨﻈﺎم ﻓﻲ ﺗﻨﻈﯿﻢ اﻟﻘﯿﻢ وﺗﺤﺪﯾﺪ ﻣﺴﺘﻮﯾﺎت اﻟﺘﻨﻔﯿﺬ ،دﻋﻨﺎ ﻧﺸﺮح ﻛﻞ ﺑﺖ
ﺑﺎﻟﺘﻔﺼﯿﻞ!
وﻫﺬة اﻟﻘﯿﻢ ﺗﻤﺜﻞ ﻋﻨﻮان اﻹﻧﺘﻘﺎل ﻟﻠﺘﻨﻔﯿﺬ إﻣﺎ ﻟﺠﺪول واﺻﻔﺎت آﺧﺮ أو إﻟﻰ ﺟﺪول ﻋﻨﺎوﯾﻦ وﺻﻔﺤﺎت اﻟﺬاﻛﺮة
وﺑﻌﺪ ذﻟﻚ ﯾﺘﻢ اﻹﻧﺘﻘﺎل اﻟﻔﻌﻠﻲ ﻟﻠﻜﻮد اﻟﺘﻨﻔﯿﺬي ،ﻧﺮﺟﻊ ﻟﺘﻘﺴﯿﻢ ٦٤ﺑﺖ ،ﺑﻘﯿﺔ اﻟﺒﺘﺎت ﺗﻤﺜﻞ ﺧﺼﺎﺋﺺ اﻟﻤﻘﻄﻊ:
اﻟﺒﺖ ﻣﻦ ٤٠إﻟﻰ : ٤٣وﻋﺪدﻫﺎ ٤ﺑﺘﺎت واﻟﻘﯿﻤﺔ اﻟﺘﻲ ﺗﺤﺘﻮﯾﻬﺎ ﻫﺬة ٤اﻟﺒﺘﺎت ﺗﻤﺜﻞ ﺧﺼﺎﺋﺺ اﻟﻘﺴﻢ,
ﺗﻨﻘﺴﻢ ﺧﺼﺎﺋﺺ اﻟﻘﺴﻢ إﻟﻰ ﻧﻮﻋﯿﻦ ،اﻷول ﺧﺼﺎﺋﺺ اﻟﻘﺴﻢ ﻟﻌﻤﻠﯿﺔ اﻟﻨﻈﺎم ،وﺧﺼﺎﺋﺺ اﻟﻘﺴﻢ ﻟﻌﻤﻠﯿﺎت اﻟﻤﺴﺘﺨﺪم
واﻟﺬي ﯾﺤﺪد ﻧﻮع اﻟﻌﻤﻠﯿﺔ ﻫﻮ اﻟﺒﺖ ٤٤اﻟﺬي ﯾﻠﻲ ﻫﺬة ٤اﻟﺒﺘﺎت ،إذا ﻛﺎن ﺑﺖ ﻧﻮع اﻟﻌﻤﻠﯿﺔ ٠ﻓﺈن اﻟﻌﻤﻠﯿﺔ
ﺗﻜﻮن ﻟﻠﻨﻈﺎم ،وﺑﺬﻟﻚ ﻓﺈن ﺧﺼﺎﺋﺺ أﻗﺴﺎم ﻋﻤﻠﯿﺎت اﻟﻨﻈﺎم اﻟﻤﻜﻮﻧﺔ ﻣﻦ ٤ﺑﺖ ﺗﻜﻮن ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ
----------------------------------------
أﻣﺎ إذا ﻛﺎن ﻧﻮع اﻟﻌﻤﻠﯿﺔ ) ﻋﻤﻠﯿﺔ ﻣﺴﺘﺨﺪم ( ﺑﻤﻌﻨﻰ أن اﻟﺒﺖ ٤٤ﯾﺴﺎوي ١
اﻟﺒﺖ : ٤٤ﻫﺬا اﻟﺒﺖ ﯾﺤﺪد إذا ﻛﺎﻧﺖ اﻟﻌﻤﻠﯿﺔ ﻟﻠﻨﻈﺎم أو ﻟﻠﻤﺴﺘﺨﺪم ،وﻫﻮ اﻟﺒﺖ اﻟﻤﺴﺆل ﻋﻦ ﻛﯿﻔﯿﺔ اﻟﺘﻘﺴﯿﻢ
ﻟﺨﺼﺎﺋﺺ اﻷﻗﺴﺎم ﻛﻤﺎ ذﻛﺮﻧﺎة ﺳﺎﺑﻘﺎً ،إذا ﻛﺎن ٠ﻋﻤﻠﯿﺔ ﻧﻈﺎم وإذا ﻛﺎن 1ﻋﻤﻠﯿﺔ ﻣﺴﺘﺨﺪم
اﻟﺒﺖ ٤٥و : ٤٦ﯾﻤﺜﻞ رﻗﻢ اﻹﻣﺘﯿﺎز أو اﻟﺤﻠﻘﺔ اﻟﺘﻲ ﺳﺘﻌﻤﻞ ﺑﻬﺎ ﻫﺬة اﻟﻌﻤﻠﯿﺔ ،واﻟﺤﻠﻘﺎت ﻣﻦ ٠إﻟﻰ ٣
اﻟﺒﺖ : ٤٧ﯾﻤﺜﻞ ﻫﺬا اﻟﺒﺖ وﺟﻮد اﻟﻘﺴﻢ اﻟﺤﺎﻟﻲ ﻓﻲ اﻟﺬاﻛﺮة أو ﻋﺪم وﺟﻮدة ؟!
ﯾﺴﺘﻔﯿﺪ اﻟﻨﻈﺎم ﻣﻦ ﻫﺬا اﻟﺒﺖ ﻓﻲ أﻣﻮر ﻛﺜﯿﺮة ﻣﻨﻬﺎ ﻣﺜﻼ ﻣﻌﺮﻓﺔ اﻷﻗﺴﺎم اﻟﻨﺸﻄﺔ واﻟﻐﯿﺮ ﻧﺸﻄﺔ ﻟﻨﻘﻞ ﻣﺤﺘﻮاﻫﺎ ﻣﻦ
اﻟﻘﺮص إﻟﻰ اﻟﺬاﻛﺮة واﻟﻌﻜﺲ ،ﻛﻤﺎ أن اﻟﺒﺖ ﯾﺴﺘﺨﺪم ﻟﻠﺘﺒﺪﯾﻞ ﺑﯿﻦ اﻷﻗﺴﺎم
اﻟﺒﺖ : ٥٢ﻫﺬا اﻟﺒﺖ إﺣﺘﯿﺎﻃﻲ ؟! إﻟﻰ أن ﯾﺘﻢ اﻟﺘﺒﺪﯾﻞ ﺑﯿﻦ اﻷﻗﺴﺎم ﻓﯿﺼﺒﺢ اﻟﺒﺖ ﻣﻜﻤﻞ ﻟﻘﯿﻢ اﻟﺤﺪ ﺑﻤﻌﻨﻰ أن اﻟﺒﺖ ﻻ
ﯾﺴﺘﺨﺪم ﻓﻲ ﻫﺬا اﻟﺘﻘﺴﯿﻢ وﺳﯿﺘﻢ إﺳﺘﺨﺪاﻣﺔ ﻓﻲ ﺗﻘﺎﺳﯿﻢ أﺧﺮى ,
اﻟﺒﺖ : ٥٤إذا ﻛﺎن ﻗﯿﻤﺔ اﻟﺒﺖ ٠ﻓﺈن اﻟﻤﻘﺎﻃﻊ ﺗﻜﻮن ١٦ﺑﺖ وإذا ﻛﺎن ١ﺗﺼﺒﺢ اﻟﻤﻘﺎﻃﻊ ٣٢ﺑﺖ
اﻟﺒﺖ : ٥٥ﻫﺬا اﻟﺒﺖ ﯾﺘﺴﺨﺪم ﻓﻲ ﻃﺮﯾﻘﺔ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻗﯿﻤﺔ اﻟﺤﺪ ﻟﻠﻌﻤﻠﯿﺔ ،إذا ﻛﺎن ٠ﻓﺈن اﻟﻤﻌﺎﻟﺞ ﯾﺤﺴﺐ ﻗﯿﻤﺔ اﻟﺤﺪ
ﻛﻤﺎﻫﻲ ،وإذا ﻛﺎﻧﺖ ﻗﯿﻤﺔ اﻟﺒﺖ ١ﯾﺴﺘﺨﺪم اﻟﻤﻌﺎﻟﺞ ﻗﺎﻧﻮن ﺟﺪﯾﺪ ،وﻫﻮ ﺣﺴﺎب ﻛﻞ ﻗﯿﻤﺔ ﻟﻠﺤﺪ ٤ﻛﯿﻠﻮﺑﺎﯾﺖ
-
وﺑﻬﺬا ﻧﻜﻮن أﻛﻤﻠﻨﺎ ﻛﻞ ٦٤ﺑﺖ ﻟﻌﻤﻠﯿﺔ ﻧﻈﺎم داﺧﻞ ﺟﺪول اﻟﻮاﺻﻔﺎت اﻟﺸﺎﻣﻞ ,
ﺑﻘﯿﺔ ﻣﻌﻠﻮﻣﺔ وﻫﻲ :ﯾﻮﺟﺪ ﺗﻘﺴﯿﻢ آﺧﺮ ﻟﺠﺪول اﻟﻮاﺻﻔﺎت اﻟﺸﺎﻣﻞ ,إذا ﻛﺎﻧﺖ اﻟﻌﻤﻠﯿﺔ ﺗﺨﺺ اﻟﺒﻮاﺑﺎت
ﻋﻤﻠﯿﺔ اﻹﺗﺼﺎل ﻟﺒﻮاﺑﺔ ﺗﺴﺘﺨﺪم ﺗﻘﺴﯿﻢ آﺧﺮ ﻏﯿﺮ اﻟﺘﻘﺴﯿﻢ اﻟﻌﺎم وﻟﻜﻦ ﻣﺸﺎﺑﺔ ﺑﺸﻜﻞ ﻛﺒﯿﺮ ﻟﻠﺘﻘﺴﯿﻢ اﻟﻌﺎم
ﻓﻤﺜﻼ اﻟﺒﺘﺎت ﻣﻦ ٥٢إﻟﻰ : ٥٥ﻻ ﺗﺴﺘﺨﺪﻣﻬﺎ اﻟﺒﻮاﺑﺔ ،وﺗﻀﺎف ﺑﺘﺎت ﺟﺪﯾﺪة وﻫﻲ
اﻟﺒﺖ ﻣﻦ ٣٢إﻟﻰ : ٣٦وﺗﺴﺘﺨﺪﻣﻬﺎ اﻟﺒﻮاﺑﺔ ﻟﺘﻤﺮﯾﺮ ﻣﺠﻤﻮع اﻟﺒﺎرﻣﺘﺮات اﻟﺘﻲ ﺳﺘﻤﺮر ﻋﺒﺮ اﻟﺒﻮاﺑﺔ
أﻣﺎ ﺑﻘﯿﺔ اﻟﺒﺘﺎت :اﻟﺨﺼﺎﺋﺺ وﻣﺴﺘﻮى اﻹﻣﺘﯿﺎزات و.و ، .ﺗﺒﻘﻰ ﻛﻤﺎ ﻫﻲ
ﻧﺴﺘﻨﺘﺞ :أن أي ﻋﻤﻠﯿﺔ ﺗﺨﺺ اﻟﺒﻮاﺑﺎت ﻣﺜﻞ ﻣﻘﺎﻃﻌﺔ ﻟﺒﻮاﺑﺔ أو ﻣﺼﯿﺪة ﻟﺒﻮاﺑﺔ ﻓﺈﻧﻬﺎ ﻻ ﺗﺴﺘﺨﺪم
-
اﻟﺘﺒﺪﯾﻞ ﺑﯿﻦ اﻟﻤﻬﺎم وﺗﻘﺴﯿﻢ اﻟﻤﺴﺠﻞ TSSﺗﻘﺴﯿﻢ:
ﻣﻦ أﻋﻘﺪ اﻟﻌﻤﻠﯿﺎت ﻓﻲ ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ ٣٢ﺑﺖ ﻫﻲ ﻋﻤﻠﯿﺔ اﻟﺘﺒﺪﯾﻞ ﺑﯿﻦ اﻟﻤﻬﺎم ،وﻟﻜﻦ اﻟﻤﻌﺎﻟﺞ ﯾﺘﻜﻠﻒ ﺑﺄﻏﻠﺐ
اﻟﺸﻐﻠﺔ ،ﺗﺴﺘﻄﯿﻊ أن ﺗﻘﻮل أن ﻛﻞ ﻋﻤﻠﯿﺔ ﻓﻲ اﻟﺬاﻛﺮة ﻋﺒﺎرة ﺟﺪول ﻣﻌﻠﻮﻣﺎت ﯾﻤﺜﻠﺔ اﻟﻤﺴﺠﻞTSS
ﺑﻬﺬة اﻟﺼﻮرة:
ﺗﻼﺣﻆ اﻟﻘﯿﻢ اﻟﺘﻲ ﺑﺎﻟﻠﻮن اﻷزرق :اﻟﻤﺴﺠﻞ TRﯾﻤﺜﻞ رﻗﻢ اﻟﻌﻤﻠﯿﺔ اﻟﺴﺎﺑﻘﺔ اﻟﺘﻲ إﻧﺘﻘﻞ ﻣﻨﻬﺎ اﻟﺘﻨﻔﯿﺬ ﻟﻠﻌﻤﻠﯿﺔ اﻟﺤﺎﻟﯿﺔ
ﻣﺜﻼ ﻛﻨﺖ ﺗﻌﻤﻞ ﻋﻠﻰ ﺑﺮﻧﺎﻣﺞ وﻣﻦ ﺧﻼﻟﺔ ﺷﻐﻠﺖ ﺑﺮﻧﺎﻣﺞ آﺧﺮ ،ﯾﺘﻢ ﺗﺴﺠﯿﻞ رﻗﻢ اﻟﺒﺮﻧﺎﻣﺞ اﻷول ﻓﻲ ﻫﺬا اﻟﻤﺴﺠﻞ
ﻟﯿﺲ ﺑﺎﻟﺘﺤﺪﯾﺪ رﻗﻢ اﻟﺒﺮﻧﺎﻣﺞ اﻟﺬي ﻛﻨﺖ ﻋﻠﯿﺔ ؟!! وﻟﻜﻦ ﻟﺘﻘﺮﯾﺐ اﻟﻔﻜﺮة ،ﯾﻤﻜﻦ ﺗﻜﻮن ﻋﻤﻠﯿﺔ ﻧﻈﺎم ﺳﺒﻘﺖ اﻟﺘﻨﻔﯿﺬ
وﺑﻬﺬا ﯾﺼﺒﺢ ﺗﺮاﺑﻂ ﺑﯿﻦ اﻟﻌﻤﻠﯿﺎت ﻓﻲ اﻟﺬاﻛﺮة ،ﻣﺜﺎل :ﯾﺒﺪأ اﻟﻨﻈﺎم ﺑﺄول ﻋﻤﻠﯿﺔ ) أﻛﯿﺪ ﻣﺎﻓﻲ ﺷﻲء ﻗﺒﻠﻬﺎ ﺗﻜﻮن ﻫﺬة
اﻟﻘﯿﻤﺔ (٠
ﺑﻌﺪ ذﻟﻚ ﺗﺸﺘﻐﻞ ﻋﻤﻠﯿﺔ أﺧﺮى ﺗﺮﺗﺒﻂ ﻣﻊ اﻟﻌﻤﻠﯿﺔ اﻟﺘﻲ ﻗﺒﻠﻬﺎ ﺑﻬﺬا اﻟﻤﺴﺠﻞ وﻫﻜﺬا ﻣﻊ ﺛﺎﻟﺚ ﻋﻤﻠﯿﺔ ،وﺗﺼﺒﺢ ﻛﻞ
اﻟﻌﻤﻠﯿﺎت ﻣﺘﺮاﺑﻄﺔ
ﻟﯿﻘﻮم اﻟﻤﻌﺎﻟﺞ ﺑﺴﺮﻋﺔ ﻛﺒﯿﺮة ﺑﺎﻟﺘﺒﺪﯾﻞ ﺑﯿﻦ ﻫﺬة اﻟﻤﻬﺎم ﻣﻦ اﻷﺣﺪث إﻟﻰ اﻷﻗﺪم ،وﺑﻬﺬا ﺗﻌﺘﻘﺪ أن ﻟﻜﻞ ﻋﻤﻠﯿﺔ ﻣﻌﺎﻟﺞ
ﺧﺎص ؟!!
وﺗﻼﺣﻆ ﻣﺴﺠﻼت اﻟﻤﻜﺪس ss0و ss1 ..ودﻟﯿﻞ اﻟﻤﻜﺪس esp1و) esp2ﻫﺬة اﻟﻤﺴﺠﻼت آﺧﺮ ٣ﻋﻤﻠﯿﺎت(
ﺳﺒﻘﺖ ﻫﺬة اﻟﻌﻤﻠﯿﺔ ،واﻟﺴﺆال ﻟﻤﺎذا إﺧﺘﺎر اﻟﻤﻌﺎﻟﺞ ﻣﺴﺠﻞ اﻟﻤﻜﺪس ﻟﺜﻼث ﻋﻤﻠﯿﺎت ،ﻟﻤﺎذا ﻟﻢ ﯾﺨﺘﺮ ﻣﺴﺠﻞ اﻟﻜﻮد ﻣﺜﻼً
ﻷن أي ﻋﻤﻠﯿﺔ إﺗﺼﺎل ﺗﺨﺮج اﻟﺘﻨﻔﯿﺬ ﻣﻦ اﻟﺒﺮﻧﺎﻣﺞ إﻟﻰ ﻛﻮد ﺧﺎرج اﻟﺒﺮﻧﺎﻣﺞ ،ﻓﺈﻧﺔ ﯾﺘﻢ ﺗﺴﺠﯿﻞ ﻣﻌﻠﻮﻣﺎﺗﻬﺎ ﻓﻲ اﻟﻤﻜﺪس
ﻣﺜﻞ ﻋﻨﻮان اﻹﺗﺼﺎل و ﻋﻨﻮان اﻟﻌﻮدة ﻟﻠﺒﺮﻧﺎﻣﺞ ،ﺳﺄﻋﻄﯿﻚ ﻣﺜﺎل ﻋﻠﻰ ﻫﺬة اﻟﻨﻘﻄﺔ ؟!! ﺗﺨﯿﻞ
أﻧﻚ ﺗﻌﻤﻞ ﻋﻠﻰ اﻟﻜﻤﺒﯿﻮﺗﺮ وﻓﺠﺄة ﻇﻬﺮت رﺳﺎﻟﺔ ﺧﻄﺄ ﻓﻲ اﻟﻨﻈﺎم ﺛﻢ ﯾﻐﻠﻖ اﻟﻨﻈﺎم ؟ ﻛﯿﻒ ﺗﻌﺮف ﻣﺼﺪر اﻟﺨﻄﺄ
ﻋﻦ ﻃﺮﯾﻖ ﻋﺮض اﻟﻌﻤﻠﯿﺎت اﻟﻤﻘﯿﻤﺔ ﻓﻲ اﻟﺬاﻛﺮة ,وإﻟﻘﺎء ﻧﻈﺮة ﻋﻠﻰ ﻣﻜﺪس اﻟﺒﺮﻧﺎﻣﺞ ﻟﺘﺠﺪ آﺧﺮ ﻋﻤﻠﯿﺔ ﺧﺮوج ﻣﻦ
اﻟﺒﺮﻧﺎﻣﺞ
وﺳﺘﺠﺪ ﻋﻨﻮان اﻟﻌﻮدة ،إذﻫﺐ إﻟﯿﺔ وﻻﺣﻆ اﻟﻜﻮد اﻟﺬي ﺗﺴﺒﺐ ﻓﻲ اﻟﺨﻄﺄ ،ﻫﺬة اﻟﻨﻘﻄﺔ ﺳﻨﺘﻔﯿﺪ ﻣﻨﻬﺎ ﻛﺜﯿﺮ ﻓﻲ اﻟﺒﺮﻣﺠﺔ
اﻟﻌﻜﺴﯿﺔ
اﻟﻤﻬﻢ :وﻣﺎ ﻏﺮض اﻟﻤﻌﺎﻟﺞ ﻣﻦ ﻣﻌﺮﻓﺔ اﻟﻤﻜﺪس ﻵﺧﺮ ﺛﻼث ﻋﻤﻠﯿﺎت ؟! ﻟﻜﻲ ﯾﻌﺮف ﻣﻜﺎن اﻟﺘﻨﻔﯿﺬ ﻗﺒﻞ اﻹﻧﺘﻘﺎل
ﻟﻠﻌﻤﻠﯿﺔ
إذا ﻛﺎن اﻟﺘﻨﻔﯿﺬ ﺧﺎرج اﻟﺒﺮﻧﺎﻣﺞ ،ﻣﺎﻓﺎﺋﺪت اﻹﻧﺘﻘﺎل ﻟﻠﻌﻤﻠﯿﺔ ﺑﺸﻜﻞ ﻣﺒﺎﺷﺮ ؟! وﻟﺬﻟﻚ ﻓﺈﻧﺔ ﯾﺘﻢ اﻟﺘﺒﺪﯾﻞ ﺑﯿﻦ اﻟﻤﻬﺎم
ﺑﺴﺮﻋﺔ أﻛﺒﺮ ،ﺑﻌﺪ ذﻟﻚ ﯾﺄﺗﻲ اﻟﻤﺴﺠﻞ CR3ﻫﺬا اﻟﻤﺴﺠﻞ ﺧﺎص ﻟﻠﺼﻔﺤﺎت اﻟﺬاﻛﺮﯾﺔ ﻟﻠﻌﻤﻠﯿﺔ
وﺑﻌﺪ ذﻟﻚ اﻟﻤﺴﺠﻼت اﻟﺘﻲ ﺑﺎﻟﻠﻮن اﻷﺣﻤﺮ :وﻫﻲ ﺑﺎﻟﻄﺒﻊ اﻟﻤﺴﺠﻼت اﻟﻌﺎﻣﺔ وﻣﺴﺠﻼت اﻷﻗﺴﺎم اﻟﺘﻲ ﺗﺨﺺ اﻟﻌﻤﻠﯿﺔ
اﻟﺤﺎﻟﯿﺔ ،ﯾﺤﺘﻔﻆ ﺑﻬﺎ اﻟﻤﻌﺎﻟﺞ ﻋﻨﺪﻣﺎ ﯾﺒﺪل ﺑﯿﻦ اﻟﻌﻤﻠﯿﺔ وﻋﻨﺪﻣﺎ ﯾﺮﺟﻊ إﻟﯿﻬﺎ ﯾﻌﯿﺪ اﻟﻘﯿﻢ ﻟﻠﻤﺴﺠﻼت
اﻟﻤﺴﺠﻞ LDTوﻫﻮ دﻟﯿﻞ ﻟﻬﺬة اﻟﻌﻤﻠﯿﺔ ﻓﻲ ﺟﺪول اﻟﻮاﺻﻔﺎت اﻟﻤﺤﻠﻲ ،وﺗﺴﺘﺨﺪم ﻟﻤﻌﺎﻟﺠﺔ اﻹﺳﺘﺜﻨﺎﺋﺎت ﻓﻲ اﻟﻌﻤﻠﯿﺔ
ﺑﻘﻲ آﺧﺮ ﻗﯿﻤﺔ :ﺗﺨﻄﯿﻂ اﻟﺬاﻛﺮة ﻟﻌﻨﺎوﯾﻦ اﻹدﺧﺎل واﻹﺧﺮاج ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ ,وﻫﺬا اﻟﻤﻮﺿﻮع ﺳﯿﻜﻮن ﻟﺔ ﺷﺮح
----------------------------------------------
واﻵن ﺳﻨﻘﻮم ﺑﻤﺮاﺟﻌﺔ ﺳﺮﯾﻌﺔ ﻟﻠﺠﺪاول ﻟﺘﻮﺿﯿﺢ ﻃﺮق اﻟﺘﺮاﺑﻂ ﺑﯿﻨﻬﺎ ،وأﻣﺎﻛﻦ ﺗﻮاﺟﺪﻫﺎ
ﻗﺴﻢ ﺑﯿﺎﻧﺎت -ﻗﺴﻢ ﻛﻮد -ﻋﻤﻠﯿﺔ أو ﻣﻌﺮف ﻟﻠﻤﺴﺠﻞ TSS -دﻟﯿﻞ ﻟﺠﺪول آﺧﺮ ﻣﺜﻞLDT
إﻣﺎ أن ﺗﻜﻮن ﻗﺴﻢ ﻛﻮد -أو ﻗﺴﻢ ﺑﯿﺎﻧﺎت -أو ﻣﻌﺮف TSS -أو دﻟﯿﻞ ﻟﺠﺪول LDT -أو إﺗﺼﺎل ﻟﺒﻮاﺑﺔ
ﺟﺪول اﻟﻤﻘﺎﻃﻌﺎت IDTR ,ﯾﻤﻜﻦ أن ﯾﺤﺘﻮي ﻋﻠﻰ ٣وﻫﻲ :ﻋﻤﻠﯿﺔ ﻟﺒﻮاﺑﺔ -أو ﻣﻘﺎﻃﻌﺔ ﻟﺒﻮاﺑﺔ -أو ﻣﺼﯿﺪة ﻟﺒﻮاﺑﺔ
ﻣﺎذا ﻋﻦ ﺟﺪول اﻟﻮاﺻﻔﺎت اﻟﻤﺤﻠﻲ LDTR ,ﻫﺬا اﻟﺠﺪول ﻣﺸﺎﺑﺔ ﻟﺠﺪول اﻟﻮاﺻﻔﺎت اﻟﺸﺎﻣﻞ GDTR
واﻟﻔﺮق أن اﻷول ﻣﺤﻠﻲ واﻟﺜﺎﻧﻲ ﻋﺎم ،وﺗﺴﺘﻄﯿﻊ أن ﺗﺴﺘﺨﺪم اﻟﺠﺪول اﻟﻌﺎم ﺑﺪل اﻟﻤﺤﻠﻲ
وﯾﺴﺘﺨﺪم اﻟﻤﺤﻠﻲ ﻋﺎدة ﻟﻤﻌﺎﻟﺠﺔ اﻹﺳﺘﺜﻨﺎءات واﻷﺧﻄﺎء وﺑﻌﺾ اﻹﺟﺮاﺋﺎت ،وﺑﻌﺪ ﻗﻠﯿﻞ ﺳﻨﺮى
ﻓﻲ ﺑﻌﺾ اﻷﻣﺜﻠﺔ ﻋﻠﻰ ﻧﻈﺎم وﻧﺪوز أﻧﺔ ﻻ ﯾﺴﺘﺨﺪم ﺟﺪول اﻟﻮاﺻﻔﺎت اﻟﻤﺤﻠﻲ ؟!!
أﻋﺘﻘﺪ أﻧﺔ ﻻﯾﻮﺟﺪ ﺑﺮﻧﺎﻣﺞ ﯾﺴﺘﻄﯿﻊ اﻟﻮﺻﻮل إﻟﻰ ﻫﺬة اﻟﻤﻨﺎﻃﻖ ﻓﻲ اﻟﻨﻈﺎم ﻋﺪى اﻟﺒﺮﻧﺎﻣﺞ اﻹﺣﺘﺮاﻓﻲ -اﻟﺴﻮﻓﺖ آﯾﺲ-
اﻷﻣﺮ اﻷول GDTوﻫﻮ ﻟﻌﺮض ﺟﺪول اﻟﻮاﺻﻔﺎت اﻟﺸﺎﻣﻞ وﻣﺤﺘﻮاة ﻓﻲ ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ اﻟﺬي ﺗﺴﺘﺨﺪﻣﺔ
ﻻﺣﻆ اﻟﻌﻤﻠﯿﺎت وﻛﯿﻒ ﺗﺮﺗﯿﺒﻬﺎ ،ﺳﺘﻼﺣﻆ ﻧﻔﺲ اﻟﻤﻌﻠﻮﻣﺎت اﻟﺘﻲ ذﻛﺮﻧﺎﻫﺎ وﻫﻲ
وﻵن ﺳﻨﺤﺎول اﻟﻮﺻﻮل ﻟﻜﻮد ﺑﺮﻧﺎﻣﺞ ﻣﻌﺮف ﻓﻲ ﺟﺪول اﻟﻮاﺻﻔﺎت اﻟﺸﺎﻣﻞ ،ﻧﺒﺪأ
ﺷﻐﻞ اي ﺑﺮﻧﺎﻣﺞ دﯾﺒﻐﺮ ﺗﺴﺘﻄﯿﻊ ﻣﻦ ﺧﻼﻟﺔ ﻋﺮض ﻗﯿﻢ ﻣﺴﺠﻼت اﻷﻗﺴﺎم ﻟﻠﺒﺮﻧﺎﻣﺞ ،أﻧﺎ ﺳﺄﺳﺘﺨﺪمolly
ﺑﻌﺪ ﺗﺸﻐﯿﻞ ollyﺗﺠﻮل ﻓﻲ ﺟﻬﺎزك وإﺧﺘﺮ أي ﻣﻠﻒ ﺗﻨﻔﯿﺬي ،وﺑﻌﺪ ﻓﻚ اﻟﺘﺠﻤﯿﻊ ﻻﺣﻆ ﻗﯿﻢ اﻟﻤﺴﺠﻼت
وأﻫﻢ ﺷﻲء ﻣﺴﺠﻞ ﻗﺴﻢ اﻟﻜﻮد CS ,وﻟﯿﻜﻦ ﻣﺜﻼ ﯾﺴﺎوي CS = 1B ,واﻵن ﺷﻐﻞ اﻟﺴﻮﻓﺖ آﯾﺲ
ﺛﻢ أﻛﺘﺐ ﻓﻲ ﺳﻄﺮ اﻷواﻣﺮ GDTوإﺿﻐﻂ إﻧﺘﺮ ،ﺑﻌﺪ ذﻟﻚ إﺑﺤﺚ ﻋﻦ اﻹزاﺣﺔ x 1B ,ﻻﺣﻆ اﻟﻤﻌﻠﻮﻣﺎت اﻟﺘﻲ
ﺑﺠﺎﻧﺒﺔ ،أوﻻً :اﻟﻘﺴﻢ ﻫﻮ ﻗﺴﻢ ﻛﻮد ٣٢ﺑﺖ ﺑﻬﺬا اﻟﺸﻜﻞ code32ﻣﺴﺘﻮى اﻹﻣﺘﯿﺎز أو اﻟﺤﻠﻘﺔ ﯾﺴﺎوي ٣
أي أﻧﺔ ﺑﺮﻧﺎﻣﺞ ﻓﻲ ﻣﺴﺘﻮى اﻟﻤﺴﺘﺨﺪم ،أﻣﺎ ﻋﻦ اﻟﻌﻨﻮﻧﺔ ،ﺳﻨﻔﻬﻤﻬﺎ ﻓﻲ اﻟﻘﺴﻢ اﻟﺜﺎﻧﻲ ﻣﻦ اﻟﺪرس ﻷﻧﻬﺎ ﺗﺘﻄﻠﺐ ﻓﻬﻢ
واﻵن ﺟﺪول اﻟﻮاﺻﻔﺎت اﻟﻤﺤﻠﻲ ،أﻧﺎ ذﻛﺮت أن اﻟﻮﻧﺪوز ﻻﯾﺴﺘﺨﺪﻣﺔ ﻷﻧﻲ أﺳﺘﻨﺪ إﻟﻰ ﻫﺬة اﻟﻤﻌﻠﻮﻣﺎت
ﺷﻐﻞ اﻟﺴﻮﻓﺖ آﯾﺲ وﻓﻲ ﺳﻄﺮ اﻷواﻣﺮ أﻛﺘﺐ LDT ,ﻟﺘﻈﻬﺮ ﻟﻚ رﺳﺎﻟﺔ NO LDT
ﺷﻐﻞ اﻟﺴﻮﻓﺖ آﯾﺲ وأﻛﺘﺐ اﻷﻣﺮ idtوﺳﺘﺮى اﻟﺒﻮاﺑﺔ ! وﻫﻲ ﻋﺒﺎرة ﻋﻦ إﺟﺮاﺋﺎت ﻣﻌﺮﻓﺔ ﻓﻲ اﻟﺬاﻛﺮة
وﯾﻌﺮض ﻟﻚ اﻟﺴﻮﻓﺖ آﯾﺲ إﺳﻢ اﻟﺘﻌﺮﯾﻒ وﻣﻠﻒ اﻟﻨﻈﺎم اﻟﺬي ﯾﺤﺘﻮﯾﻬﺎ ,,,
وﻓﻲ ﻣﺜﺎﻟﻨﺎ ﻋﻠﻰ وﻧﺪوز إﻛﺲ ﺑﻲ ،ﻫﺬة ﺑﻌﺾ ﻣﻠﻔﺎت اﻟﻨﻈﺎم اﻟﺘﻲ ﺗﺤﺘﻮي ﻋﻠﻰ اﻟﺒﻮاﺑﺎت:
----
وﺑﻬﺬا ﻧﻜﻮن ﻗﺪ أﺧﺬﻧﺎ ﻣﻘﺪﻣﺔ ﻓﻲ ﺑﺮﻣﺠﺔ اﻷﻧﻈﻤﺔ ٣٢ﺑﺖ ،وﺑﻘﯿﺖ ﺑﻌﺾ اﻟﻤﺴﺠﻼت ﻟﻠﺘﺤﻜﻢ و ﺑﻌﺾ اﻟﺠﺪاول
اﻟﺨﺎﺻﺔ ﺑﺎﻟﺬاﻛﺮة وﺻﻔﺤﺎت اﻟﺬاﻛﺮة ،وﺑﻘﻲ أﻫﻢ ﺟﺰء وﻫﻲ اﻷﺳﺎﻟﯿﺐ اﻟﺠﺪﯾﺪة ﻓﻲ ﺑﺮﻣﺠﺔ أﻧﻈﻤﺔ ٣٢ﺑﺖ
ﺑﺈذن اﷲ ﺗﻜﻮن ﻫﺬة اﻟﻤﻮاﺿﯿﻊ اﻟﺠﺰء اﻟﺜﺎﻧﻲ ﻟﺒﺮﻣﺠﺔ أﻧﻈﻤﺔ ٣٢ﺑﺖ .
وﺑﺎﻟﺘﻮﻓﯿﻖ,,,,
JAAS - 2004