vahidmy

وبلاگ شخصی وحید محمدی

vahidmy

وبلاگ شخصی وحید محمدی

وحیدمی

وبلاگ شخصی وحید محمدی . یک تایپیست که عاشق علم و تجربه است.


آدرس وبلاگ وحیدمی :

Home Page


https://vahidmy.blog.ir

+


Archive

آرشیو و بایگانی وبلاگ وحیدمی

https://vahidmy.blog.ir/archive

+


نقشه وبلاگ وحیدمی:

Sitemap

https://vahidmy.blog.ir/sitemap.xml

+

خوراکخوان وبلاگ وحیدمی

Feed

RSS

https://vahidmy.blog.ir/rss

+

آدرس مورد استفاده خزنده ها روباتها و موتورهای جستجوگر

Robot

https://vahidmy.blog.ir/robots.txt


+

مشخصات وبلاگ وحیدمی:


ساعات انتشار پست جدید وبلاگ :

بیست و چهار ساعته

وضعیت انتشار پست : نامنظم . در طول شبانه روز و در صورت صلاحدید ؛ پست جدید منتشر می کنم.


نام مدیر : وحید محمدی

گونه : وبلاگ شخصی با آدرس اختصاصی و محتوای عمومی

ژانر : تمام ژانرها

کاربرد : همه منظوره

هدف وبلاگ : به اشتراک گذاشتن دانش و تجربه با مردم و پرداخت زکات علم

مقصد مدیر وبلاگ : کسب رضای خداوند .

جنس وبلاگ : وبلاگ شخصی

تاریخ تاسیس : تیر 1398 خورشیدی



موضوعات وبلاگ : تمام علوم و فنون و مسائل مختلف در تمام زمینه


کپی برداری از مطالب وبلاگ وحیدمی به شرط لینک دادن به آدرس اصلی وبلاگ با دامنه vahidmy.blog.ir ، بلامانع و آزاد است . با خیال راحت ، کپی برداری نمایید . هیچگونه کپی رایت و انحصار برای وبلاگ وحیدمی ، وجود ندارد .

بروزرسانی:

وبلاگ وحیدمی منحصرا توسط سایت بلاگ دات آی آر به آدرس blog.ir میزبانی می شود . بنابراین بجز دامنه vahidmy.blog.ir سایر دامنه ها جعلی و فیک و خطرناک هستند .
برای مشاهده نکات جدید و ترفندهای امنیتی لطفا به آدرس زیر مراجعه فرمایید:

https://vahidmy.blog.ir/post/1



آدرس وبلاگهای تخصصی :

https://spasm.blog.ir

https://fasmy.blog.ir

https://binasm.blog.ir

طبقه بندی موضوعی
مطالب پربحث‌تر
  • ۰۱/۰۴/۱۱
    adc
نویسندگان
پیوندها



به نام خدا 



برنامه نویسی شیئ گرا در زبانهای ماشین و اسمبلی بخش اول 





علی الحساب به کلمات کلیدی زیر این پست نگاه کنید تا با مفهوم برنامه نویسی شیی گرا در زبانهای ماشین و اسمبلی   آشنا شوید .



این کلمات کلیدی به مرور زمان در  پستهای بعدی  تکمیل می شوند .



کلماتی که با  WM  یا   BM  یا  BN  شروع شده اند  همان رویدادهایی است که با کمک ماوس یا کی بورد  در زبانهای  سطح بالا  بر روی فرم اصلی برنامه  اجرا  می کنیم .



تعداد این رویدادهای شئ گرا  در کرنل سیستم عامل ویندوز  بسیار بیشتر از رویدادهای شیی گرا در زبانهای سطح بالا  می باشد . 


دستکم   ۲۵۶  رویداد در کرنل ویندوز  داریم که با  پیشوند  WM  شناخته می شوند و توسط ماوس  ایجاد می گردند . 

من تعدادی از رویدادهای کرنل ویندوز که به آنها  Window Message  نیز  گفته می شود در اینجا لیست می کنم : 

WM_CREATE

WM_CLOSE

WM_MOUSEMOVE


 ....‌



در واقع  ما در کرنل سیستم عامل ویندوز  بیش از  ۲۵۶  پیام داریم که با پیشوند  WM  شناخته می شوند و باید حتما  با حروف بزرگ و دقیقا به شکل بالا نوشته شوند .




هر کدام از این پیامها دقیقا با یک کد زبان ماشین  مطابقت دارد یعنی مستقیما به زبان ماشین ترجمه می شوند . 


پروسه ترجمه هر پیام به کد زبان ماشین ؛ توسط  اسمبلر   یعنی زبان اسمبلی  انجام می شود . 


نکته : 

برنامه نویسی شیی گرا در زبانهای سطح پایین یعنی ماشین و اسمبلی  با برنامه نویسی شیی گرا در زبانهای سطح بالا یعنی  بیسیک ،  پاسکال ، سی پلاس پلاس ؛ پایتون ؛ اسمال تاک و ...   اندکی  تفاوت دارد . 


در زبانهای ماشین و اسمبلی حتی  جزئی ترین و مخفی ترین اجزای سیستم عامل نیز  ؛  شیی محسوب می شوند که می تواند شما را شگفت زده و غافلگیر نماید 


لذا زبانهای ماشین و اسمبلی ؛ شیئی گرا ترین زبانهای برنامه نویسی جهان  محسوب می شوند . 


مثلا حتی چیزهای زیر در کرنل ویندوز  به  عنوان شیئی محسوب می شوند : 


MB_OK

MB_OKCANCEL

MB_YESNO


شاید اعتراض کنید و بگویید :  اینها که شیئ نیستند اینها ثابتهای سیستم عامل ویندوز هستند که هر کدامشان با یک کد زبان ماشین  برابر هستند .


اما باید بدانید که در ویندوز تمام اجزا حتی ثابتها   در حکم شیئ می باشند . 


حتی دکمه های  بزرگنمایی و کوچک نمایی پنجره اصلی نرم افزارهای ویندوز  ؛ شیئ محسوب می شوند 


حتی نوار عنوان بالای پنجره ها نیز یک شیئ محسوب می شود .

حتی منوبار و تولبار نیز شیئ محسوب می شوند 


تمام دیالوگ ها نیز  شیئ محسوب می شوند . 


پنجره اصلی نرم افزارهای ویندوز نیز بعنوان شیئ مادر محسوب می شود و سایر اشیا  بعنوان فرزندان ؛ از او ارث می برند .


مثلا منوبار و تولبار و تایتل بار -  نوار عنوان بالای پنجره  -  فرزندان پنجره اصلی برنامه هستند و  برخی خواص را  از او ارث می برند . 


توارث و ارث بری  در ویندوز  در تمام ارکان و ساختارها  وجود دارد . حتی در  پروسه های مقیم در حافظه  RAM  نیز برخی پروسه ها از یکدیگر  یا از پروسه مادر  ارث می برند . 


به همین دلیل است که در ویندوز با مشکلی به نام  وابستگی یا دپندنسی تودرتو  که واقعا دیوانه کننده است و مثل اسپاگتی یک کلاف سردرگم و بی سر و ته است    کمتر مواجه هستیم زیرا تمام پروسه های ویندوز  از   پروسه معروف   Svchost.exe  که  در  Task Manager  دیده می شود  ارث می برند و سیستم را ساده می کنند . 


ما در ویندوز  به ندرت با  دپندنسی  سروکار داریم . 


لذا سیستم  عملکرد  ویندوز یک سیستم  توارث ساده و منسجم است . 


تمام پروسه های سیستم عامل ویندوز  ؛ از فایل Svchost.exe یا  پروسه میزبان برای سرویسهای ویندوز ؛   ارث می برند و کار  ما  را  راحت کرده و زحمت ما  را کم می کنند. 


این یک شاهکار توارث و برنامه نویسی شیئ گرا در ویندوز محسوب می شود . 



ویندوز یک سیستم عامل بسیار غنی و کامل و به شدت شیئ گرا  می باشد .


در سیستم عامل ویندوز ؛  همه چیز ، شیئ است . 


+


ادامه معرفی سایر انواع اشیای ویندوز :






آنهایی که  با  پیشوند   BM یا  BN    شروع می شوند بر اثر فشرده شدن کلیدهای  کی بورد  ایجاد می گردند 


BM مخفف  BUTTOM  MESSAGE  می باشد 




ID  نیز یعنی  پاسخ برنامه  به  رفتار کاربر . یعنی همان فرایند برگشتی که در زبانهای سطح بالا با آن آشنا  هستیم . 

 




زبانهای ماشین و اسمبلی  از تمام رویدادها  و اشیا و صفات و  متدها  و وراثت   و سایر عناصر شیی گرایی   بطور مستقیم و کامل  استفاده  می کنند و دست  برنامه نویس را کاملا  باز  می گذارند . 






نکته : 

مباحث برنامه نویسی شیی گرا  براساس مستندات معتبر  خارجی  ؛ تولید و منتشر  خواهند شد . 



سعی می شود -  درصورت امکان -  از زبانهای ماشین و اسمبلی بطور همزمان  استفاده  شود..‌‌


در غیر اینصورت فقط از زبان اسمبلی  استفاده می شود . 


بروزرسانی : 


این پست فقط  یک مقدمه بود .


ادامه مباحث برنامه نویسی شیئ گرا در زبانهای ماشین و اسمبلی را به پستهای بعدی  موکول می کنم . 


علی الحساب به جان ویندوز بیفتید و خودتان شخصا  مواردی از شیئ گرایی و توارث را در ساختار و عملکرد و اجزای ویندوز پیدا کنید !


از پست بعدی سعی می کنم طبق خودآموزهای زبان اسمبلی ؛  برنامه نویسی شیئ گرا را به مرور زمان و به تدریج  آموزش دهم . انشاا...



منتظر پستهای بعدی باشید ...‌


مطالب بعدی این وبلاگ را  دنبال کنید و کپی برداری و بازنشر  نمایید .  با تشکر 





  • ۰۱/۱۰/۲۸
  • vahidmy

BM_CLICK

Beep

Click

Double Right Click

Event

Fasm

Form

ID

ID_CLICK

Keyboard

Left Click

MB

Masm32

Mouse

OOP

Object

Right Click

RosAsm

WM

WM_CLOSE

WM_CREATE

WM_MOUSEMOVE

WinHex

Window

Windows

assembler

c32asm

fasm

hex editor

hex editor neo

hexplorer

machine code

programming

vahidmy

vahidmy.blog.ir

win32 Assembly

آشنایی با اجزای پنجره های ویندوز

آشنایی با اشیای روی فرم اصلی نرم افزار

آشنایی با توابع ویندوز

آشنایی با رویدادها در برنامه نویسی شیئ گرا

آشنایی با عناصر شیئ گرایی در سیستم عامل ویندوز

اجزای مختلف پنجره در سیستم عامل ویندوز

اجزای مخفی سیستم عامل

اسمبلی شیئ گرا

اسپیکر

برنامه نویسی رویدادگرا

برنامه نویسی شیئ گرا

برنامه نویسی شیئ گرا تحت ویندوز

برنامه نویسی شیی گرا در زبانهای ماشین و اسمبلی

بستن پنجره اصلی نرم افزار

بلندگو

توابع API ویندوز

تولبار

تولید موسیقی با کمک زبان اسمبلی

تولید پنجره اصلی نرم افزار

ثابت های ویندوز

حرکت ماوس روی اشیا

دابل راست کلیک

راست کلیک

رویداد

رویداد حرکت ماوس

رویداد فشردن کلید

زبان اسمبلی

زبان ماشین

ساختارهای ویندوز

شیئ

فشردن کلید روی کی بورد

ماوس

منوبار

موسیقی

موسیقی ناشی از توابع ویندوز

وحیدمی

وسط کلیک

وین هگز

ویندوز

پیامهای ویندوز

چپ کلیک

کی بورد