ParsX.com
سايت دانشجويان رشته كامپيوتر و راهنماي كنكور كارشناسي ارشد و كارداني به كارشناسي (كارشناسي ناپيوسته ) |
| View previous topic :: View next topic |
| Author |
Message |
vahid بي تو هرگز
Joined: 26 Nov 2004 Posts: 2644 Location: Tehran
|
Posted: Sun Dec 26, 2004 8:47 pm Post subject: برنامه نويسي در مدل NORMALL |
|
|
در اين مدل از برنامه نويسي نام گذاري سگمنتها بر عهده خودمان است بنابراين ميتوانيم از چندين سگمنت كد يا داده استفاده كنيم .
شبه دستور تعريف سگمنت SEGMENT
شبه دستوري كه ابتداي سگمنت را مشخص ميكند SEGMENT است و انتهاي اين دستور با ENDS مشخص ميشود
| نام اختياري SEGMENT [Align] [Combine] [Class]
دستورات يا داده ها
نام اختياري ENDS |
ياداوري: حداكثر ظرفيت هر سگمنت 64K است .
مقاديري كه در كروشه نوشته شده اند كاملا اختياري هستند و ميتوانند نوشته نشوند .
[Align] ميتواند مقادري Byte , Word , Para , Page را بگيرند
هرگاه مقدار BYTE باشد سگمنت مذكور ميتواند از هر ادرسي شروع شود
هرگاه مقدار WORD باشد سگمنت مذكور ميتواند از هر ادرس زوجي شروع شود
هرگاه مقدار PARA باشد سگمنت ميتواند از ادرسهاي قابل تقسيم بر 16 يا 10H شروع شود . كه هر گاه ALIGN را خالي بگزاريد مقدار پيشفرض همين مقدار خواهد بود
هرگاه مقدار PAGE بگذاريم سگمنت ميتواند از ادرسهاي قابل تقسيم بر 256 يا 100H شروع شود .
[COMBINE] اين عملوند چگونگي تركيب سگمنت مذكور را با سگمنت همنوع تعيين ميكند اين عملوند ميتواند يكي از مقادير PUBLIC , STACK را بگيرد .
PUBLIC دو سگمنت همنام از دو برنامه را در موقع پيوند به يكديگر متصل ميكند و سبب تشكيل يك سگمنت بزرگتر ميشود . لذا در برنامه هايي كه از تنها يك سگمنت استفاده ميكنند استفاده از ان اختياري است .
STACK فقط در سگمنت پشته به كار ميرود و استفاده از ان كاملا اجباري است .
اين دستور مشخص ميكند كه سگمنت پشته برنامه با سيستم عامل تركيب شود و يك سگمنت واحد تشكيل دهد .
[CLASS] در هنگام پيوند برنامه ها براي تركيب سگمنت هاي از يك نوع به كار ميرود . بنابراين سگمنت داده از يك برنامه با سگمنت داده از برنامه ديگر تركيب ميشود وبراي اين منظور كلمات ‘DATA’ ‘STACK’ ‘CODE’ در كوتيشن قرار ميگيرند .
شبه دستور ASSUME
ارتباط بين نام هر سگمنت و ثباتهاي سگمنت ها را برقرار ميكند . پردازشگر ثبات سگمنت CS را براي ادرس شروع سگمنت كد استفاده ميكند .
| | ASSUME SS: نام سگمنت پشته , DS: نام سگمنت داده , CS: نام سگمنت كد |
اين دستور بلافاصله بعد از معرفي كردن سگمنت CODE اورده ميشود .
دستور ASSUME به اسمبلر ميگويد كه در حال حاضربروي كدام سگمنت عمليات انجام دهد .
مقدار دهيثباتهاي سگمنت CS , SS توسط سيستم عامل انجام ميشود اما مقدار دهي ثباتهاي DS , ES توسط كاربر انجام ميشود .
در ضمن يادتان باشد كه مقدار دهي ثباتهاي سگمنت توسط رجيسترهاي AX , BX , … انجام ميشود . چون نميتوان انها را مستقيما ادرس دهي نمود |
|
| Back to top |
|
 |
|
| |
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
s
Powered by phpBB © 2001, 2007 phpBB Group
|