با سلام مجدد!
قراره چند تا دستور مهم تو کد های اسمبلی رو بهتون بگم که تو Debug کردن نرم افزار خیلی بهتون کمک میکنه :)
دستور MOV :
مثلا در اسمبلی MOV [LOCAL.1], 0 معادلش میشه LOCAL.1] = 0 ] یعنی دو مقدار رو برابر هم قرار میده!
دستور XOR :
این یک مقدار Bool ی است! مثلا:
XOR EAX, EAXXOR ECX, ECXXOR EDX, EDX
هر جا در این دستور دو آرگومان برابر باشد مثل XOR EAX, EAX آرگومان خود را که الان EAX است رو برابر 0 قرار می دهد .
نکته : EAX ،EBX ، ECX ، EDX ثبات نام دارند و مانند یک متغییر مقادیری را در خود نگه میدارند که انداره هر کدام 32 بیت می باشد و محاسبات روی این ثباتها انجام می شود. برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
نکته: تو OllyDBG در پنجره Registers مقادیر این ثبات ها نشون داده میشه!
دستور IMUL :
دستور IMUL مخفف Integer Multiply هست و برای ضرب دو عدد استفاد می شود به این صورت که آرگومان اول را در دومی ضرب و در اولی ذخیره می کند.
مثلا IMUL EAX, EDX رو میشه به صورت EAX = EAX * EDX نوشت!
دستور ADD :
دو مقدار رو با هم جمع می کنه و در آرگومان اول ذخیره می کنه!
مثلا ADD EAX, 57 رو به صورت EAX = EAX + 87 میشه نوشت!
دستور INC :
مخفف کلمه Increase یعنی افزایش و یه واحد به آرگومان خود اضافه می کند.
مثلا INC ECX در زبان اسمبلی یعنی ECX = ECX + 1 !
دستور CMP :
دستور CMP دو مقدار را با هم برسی میکند و اگر برابر بود پرچم Z را به مقدار یک تغییر میدهد.
نکته : یه ثبات 32 بیتی به نام Eflag وجود دارد که 16 بایت اول آن را ثبات پرچمها گویند و وضیت برخی از فعالیت ها مثل محاسبات یا مقایسه ها رو کتنرل میکند.
مثلا در :CMP ECX, 5
در صورتی که ECX برابر 5 شود پرچم Z برابر یک می شود !
بقیه دستورات (شامل دستورات پرشی و غیره) رو الان می نویسم و تقدیم می کنم!
با تشکر علی برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
Bookmarks