فهم ما الذي يجعل ال instruction mov صحيحة أو خاطئة - نسخة قابلة للطباعة +- الفريق العربي للهندسة العكسية (https://www.at4re.net/f) +-- قسم : منتديات البرمجة - Programming Forums (https://www.at4re.net/f/forum-5.html) +--- قسم : البرمجة بالأسمبلي - Assembly Section (https://www.at4re.net/f/forum-16.html) +--- الموضوع : فهم ما الذي يجعل ال instruction mov صحيحة أو خاطئة (/thread-3330.html) |
فهم ما الذي يجعل ال instruction mov صحيحة أو خاطئة - R333T - 19-09-2022 أولا ذلك يعتمد على بنية الكمبيوتر.
32bit
bit = 1 bit nibble = 4 bits = 1/2 byte byte = 8 bits = 2 nibbles WORD = 2 bytes = 4 nibbles= 16 bits DWORD = 2 WORDs = 4 bytes = 8 nibbles = 32 bits QWORD = 2 DWORDs = 4 WORDs = 64 bits في نظام 64 bits ، سيكون مزدوجًا. حرف S يقصد به Signed تعني Signed binary numbers بأنه يمكن تمثيل كل من الأرقام الموجبة والسالبة. يمثل bit الأخير دلالة العلامة مثل BYTE فإذا أردنا أن نستعمل الموجب و السالب أصبحت SBYTE لو فرضنا أنه عندنا arrayA SBYTE -5, -4, 3, 2
arrayB WORD 3000h, 4000h, 6000h, 9000h arrayC SWORD -17, -36 MOV AX, arrayA غير صحيحة لأن AX تتكون من 16 bits و arrayA من نوع SBYTE أي 8 bits MOV AX, arrayB صحيحة لأن AX و arrayB من نوع 16 bits أو WORD MOV EAX, arrayC غير صحيحة لأن EAX من نوع DWORD أي 32 bits و arrayC من نوع SWORD MOV arrayD, arrayA لا توجد تعليمات "MOV memory/memory" يُسمح memory operand واحد فقط لكل instruction ولماذا الجواب لأنه هذه هي الطريقة التي يتم بها encode MOVZX AX, arrayB غير صحيحة لنه ليس هناك مكان ل zero-extended ولو كانت هنا AX و arrayB من نفس النوع أي 16 bits أي WORD. MOVZX arrayB, AL غير صحيحية لنه لا يوجد MOVZX memory, register ولكن يوجد فقط MOVZX register, memory أو MOVZX register, register MOV DS, AX صحيحة لأنه كلا DS و AX من نوع 16 bits MOV DS, 5000h غير صحيحة مع العلم أن قيمة DS هي 16 bits و 5000h تناسب 16 bits ولكن لا يوجد تعليمة هكذا MOV segment register, immediate لأن encoding يكون فقط هكذا MOV segment register, memory مثال MOV DS, [5000h] أو MOV segment register, register مثال MOV DS, AX RE: فهم ما الذي يجعل ال instruction mov صحيحة أو خاطئة - Abdelaziz sami - 20-09-2022 تسلم ايدك على الشرح |