ورود

View Full Version : نحوه ی اجرای اسمبلی 16 بیتی در ویندوز



Samir.uk
جمعه 04 اسفند 1385, 19:34 عصر
سلام

دوستان عزیز 1 سوال داشتم ممنون می شم اگه جواب بدین :

نحوه ی اجرای اسمبلی 16 بیتی در ویندوز ( آیا محدودیتی در int ها یا ... وجود داره یا نه ؟) و بطور کلی چطور میشه این کار رو انجام داد؟

ممنون

Best Programmer
جمعه 04 اسفند 1385, 21:32 عصر
سلام

دوستان عزیز 1 سوال داشتم ممنون می شم اگه جواب بدین :

نحوه ی اجرای اسمبلی 16 بیتی در ویندوز ( آیا محدودیتی در int ها یا ... وجود داره یا نه ؟) و بطور کلی چطور میشه این کار رو انجام داد؟

ممنون

من درست منظور سوالتان را متوجه نشدم.
در بخش MMU : معمولا در داس ما از semgent model استفاده می کنم که اگر به چند پست قبلی مراجعه کنی تا حدی جواب می گیری (برای اطلاعات بیشتر مرجع IA32 را مطالعه کن)
در بخش Enviroment Subsystems : در ویندوز برای برنامه های داس یک ماشین مجازی به اسم Virtual Dos Machine (VDM) وجود دارد که وظیفه شبیه سازی پیاده سازی و اجرای برنامه های dos را دارد . این ماشین سرویس های int21 , وقفه های bios را شبیه سازی می کند (البته با یک سری محدودیت ها) مانند دسترسی مستقیم به Hardware .(کلا عملیات I/O , CPU schedualing) .
البته این ماشین مجازی هیچ گونه تضمینی بابت شبیه سازی و اجرای تمام برنامه های DOS را ندارد.
توضیح : ویندوزهای Windows XP Professional x64 Edition (AMD64) , Windows XP 64-bit Edition (IA-64), Windows Server 2003 (x64) و Windows Vista دیگر این ماشین مجازی را پشتیبانی نمی کنند.
مراجعی برای مطالعه بیشتر :
1: Operating System Concepts (chapter 21) البته در ویرایش های مختلف فرق میکنه در کتابی که من دارم در فصل 23 توضیح داده ولی فرض من این است که شما آخرین ویرایش را دارید.
2: Windows Internals 4th edition
3: Virtual DOS Machine Structure (http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/prork/pric_run_tzvh.mspx)