المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : دورة الأسمبلى - اليوم السابع



MaX2arab
14-01-2008, 10:11 PM
مازلنا بتعليمات الأسمبلى ، هذا آخر درس بإذن الله فى تعليمات الأسمبلى الأساسيهقبل أن نبدأ بكتابة برامج بالأسمبلى من اليوم القادم ،،، و من ثم نكمل باقى تعليماتالتحكم و الدورات و باقى التعليمات المهمه ....

أتذكر أن آخر تعليماتتناولناها سويا الدرس السابق هى التعليمات المنطقيه ، و نسيت ذكر واحده فقط ،سأذكرها هنا أولا :

NOT هذهالتعليمه مسؤوله عن عكس القيمه التى بداخل المكان الذى يذكر بعدها ، بمعنى ... مممممممممم ، أنظر المثال الأتى :

مثال :
-------

لو أنهيوجد بالمسجل AL قيمه ثنائيه على هذا الشكل 01110010ونريد عكس هذه القيمه لتكونهكذا 10001101 ، نستخدم هذه التعليمه و هو مساويه للمقابل الأول First Complement ،كل بت يتم عكس قيمته .





CODE


MOV AL,01110010B
NOT AL
;AL = 100011010B NOW






--------------------------------------------------------------------------------------------------------------------------
نأتىلتعليمات الإزاحه و الدوران Shift And Rotate Instructions- هذه التعليمات تتعامل مع التشكيل الثنائى المنطقى كما تتعاملالتعليمات المنطقيه السابقه مع القيم المختلفه Logic Bit Instructions
- تستخدمهذه التعليمات بكثره فى دوال التحكم فى وحدات الإدخال و الإخراج Control I/O Divices
- تستخدم مع جميع أنواع المسجلات و الذاكرهأولا : تعليمات الإزاحه : Shift Instructions- معنى الإزاحه هى إزاحة القيم الثنائيه المتتاليه إلى اليمينأو اليسار (>>> || <<<)
- تستخدم فى العمليات الحسابيه مثلالضرب و القسمه (إزاحه لليسار بت واحده تعنى ضرب فى 2 و إزاحه لليمين بت واحد تعنىقسمه على 2)
- هناك أربع تعليمات إزاحه عباره عن مجموعتين (إزاحه منطقيه Logical Shift و إزاحه حسابيه Arithmatic Shift)
- جميع هذه التعليمات تتم من خلال علمالحمل Carry Flag
- وكما ترى بالشكل الأتى ، كيفية عمل هذه التعليمات و الفرقبينهما .



http://www.geek4arab.com/vb/imgcache2/2008/01/12.gif
- تلاحظ أن الإزاحه المنطقيهإلى اليسار SHL تتم الإزاحه و يتم وضع من اليمين صفر ، وفى الإزاحه المنطقيه إلىاليمين SHR يتم وضع صفر من اليسار .
- تلاحظ فى تعليمات الإزاحه الحسابيه إلىاليسار SAL مثل الإزاحه المنطقيه إلى اليسار ، أما الإزاحه الحسابيه إلى اليمينفيتم وضع نفس القيمه فى االبت الأخير كما هى و هذا بسبب عدم تأثر إشارة القيمهالموجوده و لذلك سميت إزاحه حسابيه .
- يمكن إستعمال الإزاحه المنطقيه مع القيمالتى بدون إشاره Unsigned Numbers .
- يمكن إستعمال الإزاحه الحسابيه مع القيمالتى بإشاره Signed Number .
- لا يمكن إستعمال الإزاحه مع مسجلات المقاطع مطلقاوفيما عذا ذلك يمكن إستخدامها.أمثله لتعليمات الإزاحه المختلفه :-
--------------------------------------





CODE


SHR AH,3 ;AX is logically shifted Right 3 places
SHL CX,12 ;CX is logically shifted right 12 places
SHR [1000] , 3 ;The memory location adrresed by 1000 in the data segment is right shifted by 3 places
MOV CL,10
SAR DX,CL ;DX is arithmatically shefted to right by number in CL
;Note that CL Here called the sheft count register and can be used as above
SAL EDX,1 ;EDX is arithmaticaly shifted by 1 place



مثال لإستخدامعملية الإزاحه إلى اليسار فى ضرب القيمه الموجوده داخل المسجل AX فى القيمه 1010وهى مساويه ل10 فى النظام العشرى .





CODE


SHL AX,1
;AX = AX * 2B
MOV BX,AX
;BX = AX * 2
SHL AX,2
AX = AX * 8
ADD AX , BX
;AX =AX * 10
;AX = AX * 1010B
; :)






--------------------------------------------------------------------------------------------------------------------------
ثانيا : تعليمات الدوران : Rotate Instructions- تقوم هذه التعليمات بعمل إزاحه من طرف المسجل أو المكانبالذاكره إلى الطرف الأخر.
- أربع تعليمات مقسمين إلى مجموعتين ( دوران خلال علمالحمل Rotate أودوران خارج علم الحملRoate throught carry )
- وكما ترى بالشكلالأتى ، كيفية عمل هذه التعليمات و الفرق بينهما .


http://www.geek4arab.com/vb/imgcache2/2008/01/12.gif
- يتضح من الشكل المبين سابقا أن تعليمات الدوران من خلال علمالحمل RCL , RCR تدور البتات من طرف إلى علم الحمل إلى الطرف الأخر .
- أماالتعليمات الأخرى ROR , RRL تدور البتات من طرف إلى الأخر ومن ثم وضع البت المنقولهإلى علم الحمل كما هو مبين بالشكل.
- أمثله :-


CODE


ROL SI,14 ;SI rotated left by 14 places
RCL BL,6 ;BL rotates left through carry by 6 places
ROL ECX,18 ;ECX rotates left by 18 places
RCR AH,CL ;AH rotates through carry by the number of places in CL
ROR WORD PTR[BP] , 2 ;The word contents of the stack segment memory location addressed by BP rotate right by 2 places






--------------------------------------------------------------------------------------------------------------------------
تعليماتالبحث عن البت 1 : Bit Scan Instructions- وظيفة هذه التعليمات هى البحث عن بت واحد داخل مسجل ما أومكان بالذاكره .
- هذه التعليمات لها صيغتين وهما BSF (Bit Scan Forward) & BSR (Bit Scan Reverce) 2
- BSF وتقوم بالبحث من اليسار إلى اليمين (من البت 0إلى البت 15 فى AX )
- BSR وتقوم بالبحث من اليمين إلى اليسار (من البت 15 إلىالبت 0 فى AX)
- تأخذ التعليمه مدخلان (Source & Destination) ،
- عندمايجد المعالج 1 فإنه يقوم بتصحيح القيمه التى بعلم الصفر If a 1-bit is encountered , zero flag is set . ومن ثم يوضع رقم هذه البت فى المدخل الأول Destination .مثال :-





CODE


MOV AL,00101000
BSF BL,AL
;Zero Flag is set
;BL contains 3 , the 1-bit position in Al from left
BSR CL,AL
;Zero Flag is set
;CL Contains 4 , the 1-bit position in AL from right

عاشق البندقية
16-01-2008, 12:20 PM
عمو مكس


ممكن سؤال :7'zol:


ليك في التكريك والا لاءة


ليك مش كده ياعفريت

طيب ابقى حط كم درس في التكريك بالغة دي


ويسلمو ومجهودك حقا ً مذهل

محمود010
02-03-2014, 08:06 PM
بارك الله فيك
خلصت الدورة ونسيت اشكرك :)

http://file7azm.info/do.php?img=807