PDA

View Full Version : معادل دستور[22fh]



amir_civil
چهارشنبه 06 آبان 1388, 19:11 عصر
سلام دوستان
کسی میدونه که معادل دستور زیر تو سی++ چه میشه؟


mov eax,[22fh]

behnam-s
چهارشنبه 06 آبان 1388, 23:27 عصر
سلام دوستان
کسی میدونه که معادل دستور زیر تو سی++ چه میشه؟


mov eax,[22fh]
دوست عزیز با کد زیر می تونید دستورات اسمبلی رو در سی اجرا کنید.

asm
{
mov eax,[22fh]
}

amir_civil
پنج شنبه 07 آبان 1388, 13:51 عصر
سلام
بیشتر منظورم این قسمتش هست

[22fh]
با اشاره گرها میشه؟

tdkhakpur
پنج شنبه 07 آبان 1388, 14:11 عصر
چرا معادل دارد.


mov eax,[22fh]
به
unsigned int tmp, ptr=0x22f;
memcpy( &tmp, (void *)ptr, 4);
asm mov eax, tmp

amir_civil
پنج شنبه 07 آبان 1388, 17:37 عصر
memcpy( &tmp, (void *)ptr, 4);

کد معادل mov eax,dword ptr [ptr]

سلام
برنامه کرش میکنه!

tdkhakpur
پنج شنبه 07 آبان 1388, 17:46 عصر
خوب معلومه بايد كرش كنه!
مگه اون عددي كه داديد كجاي حافظه را مشخص ميكنه؟ يك عدد تصادفي نيست؟

amir_civil
پنج شنبه 07 آبان 1388, 19:59 عصر
اون عدد الکی بود ولی عدد اصلی ادرس peb هست

خوب معلومه بايد كرش كنه!
چرا؟ میشه توضیح بدید

tdkhakpur
پنج شنبه 07 آبان 1388, 20:24 عصر
خوب براي اينكه ويندوز اجازه دسترسي به هر نقطه از حافظه را نمي دهد

amir_civil
شنبه 09 آبان 1388, 23:08 عصر
این برنامه هم کار برنامه بالا رو میکنه؟
درسته؟

int *d=(int *)0x22f;
int q;
q=*d;
std::cout<<q<<endl;
یک سوال دیگه هم داشتم
ویندوز اجازه دسترسی به حافظه برنامه های دیگه رو نمیده برای حل این مشکل راهی وجود داره؟

tdkhakpur
یک شنبه 10 آبان 1388, 00:40 صبح
ببينيد وقتي شما برنامه را طراحي كرده و سپس اجرا ميكنيد ويندوز كه حالت حفاظت شده هست كنترل دقيقي روي ميزان حافظه و محدوده آن دارد ولي اگر بخواهيد روي حافظه مستقيما كار كنيد بايد اين آدرس شما داخل محدوده اي باشد كه برنامه به هنگام اجرا شدن از سيستم گرفته است و يا اينكه خودتان توسط new اين مقدار از حافظه را گرفته باشيد.
اون كد شما هم درسته و اگر ادرس داده شده قابل دسترس باشد ايرادي نخواهد گرفت.