حيث اني لا استطيع تجربة الكود المكتوب لـ x64 فهنا يأتى دوركم معى لتصحيح الأخطاء
يوجد لدى الكود التالى و هو مكتوب لـ x86
.486 .model flat, stdcall .code MemCopyB PROC, Dest:PTR DWORD, Src:PTR DWORD, Len:DWORD push esi ; save esi push edi ; save edi mov ecx, Len ; put length in ecx mov esi, Src ; put source in esi mov edi, Dest ; put destination in edi rep movsb ; repeat copy until ecx is zero pop edi ; restore edi pop esi ; restore esi ret MemCopyB ENDP END
قمت بتحويله لـ x64 ليتسع مدى نسخ القيم من خلال الداله و اصبح كالتالى
.code MemCopyB PROC, Dest:PTR QWORD, Src:PTR QWORD, Len:QWORD push rsi ; save rsi push rdi ; save rdi mov rcx, Len ; put length in rcx mov rsi, Src ; put source in rsi mov rdi, Dest ; put destination in rdi rep movsb ; repeat copy until rcx is zero pop rdi ; restore rdi pop rsi ; restore rsi ret MemCopyB ENDP END
فهل الكود الخاص بـ x64 صحيح؟
و الله ولى التوفيق