>دورة الاسمبلي : الدرس السادس

>

 
 
 
السلام عليكماليوم السادس فى الأسمبلى،،سنكمل بإذن الله ما بدأناه فى اليوم السابق من سرد تعليمات الأسمبلى،ولق إستعرضنا فى اليوم السابق(الخامس) التعليمات الحسابيه مثل ADD,SUB,MUL,DIV

اليوم ، نبدأ بتعليمات عامه منها ما يستخدم بكثره ولقدحاولت قدر الإمكان أن أبتعد عن التعليمات التى لا تستخدم إطلاقا إلى فى حالات نادرهيمكن أن نتحدث عنها آن حدوثها ، المهم … خذ نفس عميق … ركز …. و Let’s Go

MOV
——-
التعليمه تستخدمفى المساواة بدلا من “=” أو لتحميل مكان ما بالذاكره( سواء مسجلات أو عناوين ذاكرهرام ) بقيم أو بمحتويات ذاكره أخرى و من هنا نستنتج أن هذه التعليمه تحتاج إلى 2مدخل Argument المصدر و الجهه Source and destination . ويذكر أن هذه التعليمه أشهرتعليمات الأسمبلى و أكثرها إستخداما ،،أمثله :-

CODE

MOV AX,2345H ; AX = 2345H
MOV AL,34 ;AL = 34 Decimal
MOV [2312] , BX ;Memory location 2312 IN current data segment = BX Contents
MOV [SI] , 30 ;Memory location in SI Contents = 30 Decimal
.
.
.

لاحظ :-
———

لا يمكن نقل محتويات ذاكره رام إلى محتويات ذاكره رامبنفس التعليمه ، أو أى تعليمه أخرى …. وذلك لأن البروسسور لا يستطيع القيامبالتعامل مع الذاكره أكثر من مره واحده لكل تعليمه أسمبلى (المقابله لها بلغةالأله) >>>


CODE

MOV [1000],[2000] ;Error

لا يمكن النقلبين مكانين مختلفى الحجم ، بمعنى أنه لا يمككنا أن ننقل ما بداخل مسجل بعرض 16 بتإلى مسجل آخر بعرض 32 بت أوالعكس .


CODE

MOV AX,AL ;Error
MOV AL,AX ;Error

عند النقل من مكان فىالذاكره إلى مسجل فإن البيانات التى تنتقل حقيقاً هى بيانات إبتدأءا من هذا العنوانو بعرض المسجل ، وخذ فى إعتبارك ان الذاكره مقسمه BYTES بمعنى أنك أردت تحميل AX وهو بعرض 32 بت بمحتويات الذاكره عند 1000 فإنه يبدأ بتحميل 4 بايت من عند هذاالعنوان .


CODE

MOV CX,[0110] ;CX = 4 BYTES Contents starts from address 0110 at current data segment


————————————————————————————————————————————————————————

NOP
——-
هذه التعليمه تعبر عن إضاعة الوقتو هى إختصار ل No Operation و هى تضيع و قت تعليمه قياسيه بحيث أنك إذا أردت عملإنتظار Delay فإن هذه التعليمه قياسيه و تستخدم و طبعا تستخدم فى دوره بحيث أنكمثلا لو اردت إنتظار ثانيه فإنك تكررها 100000 مره على الأقل ( لم احسبها و هىتتوقف على سرعة المعالج لديك ) .

أمثله :-

CODE

NOP ;Instruction tells the processor too do nothing this instruction cycle time
;and used to waste a small time according to cpu clocking speed


————————————————————————————————————————————————————————

HLT
——-
وتستخدم فى إنهاء عمل البروسسور ولست اقصد الجهاز نفسه ، يعنى إحتمال يهنج و إحتمال لا يفعل أى شىء ، يعنى هىإستخدامها كان زمان فى الإصدارات القديمه من اللغه ، أما فى الوقت الحالى ، فإنهتوجد تعليمات أخرى تخبر المعالج بإيقاف البرنامج أو إنهاءه وما شابه

أمثله:-

CODE

HLT ;No commant


————————————————————————————————————————————————————————

INC
——
تستخدم فى عمل زياده للمعطى بمقدار 1 ، وهى تقابل عملية جمع واح + القيمه الى بداخل المعطى و من ثم تخزين القيمهالجديده .

أمثله :-

CODE

INC AX ;AX = AX + 1 === ADD AX,1
INC [BX] ;[BX] = [BX] + 1 === ADD [BX] , 1
INC CX ;CX = CX + 1


————————————————————————————————————————————————————————

DEC
——-
وهى عكس سابقتها و تستخدم فىإنقاص المعطى Operand بواحد . و هى تقابل التعليمه SUB …..,1 و بالطبع فإن المكانالخالى يتم وضع ال Operand

أمثله :-

CODE

DEC [SI] ;[SI] = [SI] -1
DEC AX ;AX = AX – 1 === SUB AX,1
DEX CX

عند إستخدام هذهالتعليمه مع مسجل أو مكان بالذاكره يحتوى على 0 فإنها تدخل فى النطاق السالب بعده ويتم تغيير علم الإشاره SIGN Flag فى مسجل الأعلام.


————————————————————————————————————————————————————————

NEG
——–
وهى تستخدم فى تغيير غشارةالمعطى Operand ، وهى إختصار للكلمه الإنجلييزيه Negiate بمعنى جعل القيمه سالبه وطبعا تعمل مع جميه القيم السالبه لتجعلها موجبه و الموجبه التى تحلها إلى سالبهأمثله :-

CODE

MOV AX,100 ;AX = 100
NEG AX ;AX = FF00 = -100
NEG AX ;AX = 100 Again


————————————————————————————————————————————————————————

سننتقلالأن إلى تعليمات الأسمبلى المنطقيه Logic Instructions

AND
——-
وهى تقوم بعملية “و” المنطقيه AND Gate بين 2 Operrand ومن ثم تخزن القيمه فى ألأول كالعاده ،،،أمثله :-

CODE

MOV AX,10 ;AX = 10
MOV BX,5 ;BX = 5
AND AX,BX ;AX = 0 Because that 10 (1010) and 5(0101) = 0000🙂

تستخدم هذهالتعليمه فى عمليه تسمى Masking ،


————————————————————————————————————————————————————————

OR
—–
وهذه التعليمه كما أستنتجت فهىتعبلر عن العمليه المنطقيه “أو” OR Gate و لها نفس شروط ال AND ،أمثله :-

CODE

OR AX,CX
OR [1020],CL
OR AX,0000


————————————————————————————————————————————————————————

XOR
——-
هذه التعليمه تستخدم فى العمليهالمنطقيه XOR ، كما سنرى فىالأمثله :-


CODE

MOV AX,1000 ;AX = 1000
XOR AX , 2000 ;AX = 1080
XOR AX,2000 ;AX = 1000

لاحظ أنهذهالتعليمه تستخدم فى التشفير الأحادى Single Encyreption لأنه كما لاحظنا فى المثالالسابق ، فإننا عملنا تشفير للقيمه بداخل المسجل AX فإستخدمنا المفتاح (القميهالأخرى التى تستخدم فى فك التشفير أو إرجاع القيمه الأصليه ثانيا) و هى 2000ومن ثم عند القيام بنفس العمليه مع نفس القيمه فإنه يتم إرجاع القيمه الأصليه
لقد صممت برنامج بسيك بالأسمبلى يقوم بتشفير نصوص مدخله من قبل المستخدم و منثم يعيد فكها ثانيا بإستخدام مفتاح ثابت بداخل البرنامج و لرؤية البرنامج و السورسكود الخاص به ، يمكنك الإطلاع على الدرس التاسع فى موقعى http://ezzuz.tk ” !!!!!!!!

لا حظ أيضاأنالتعليمات المنطقيه Logic Instructions تستخدم فى عمليات البت Bit Operation وكمانعلم أن البت هى اصغر وحدة تخزين بالحاسب ، ومن ثم تستطيع تسخير هذه التعليماتلمساعدتك فى تكوين و التعامل مع المتغيرات المنطقيه Boolean Variables والتى تحتملقيمتين فقط أما صح أو خطأ True or False ،،،

أضف تعليقاً

Filed under الاسمبلي - ASSEMBLY

أضف تعليقاً

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s