ParsX.com
پذیرش پروژه از دانشجویی ... تا سازمانی 09376225339
 
   ProfileProfile   Log in to check your private messagesLog in to check your private messages  |  FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups Log inLog in   RegisterRegister 

برنامه نويسي در مدل NORMALL

 
Post new topic   Reply to topic    ParsX.com Forum Index -> ساختمان و زبان ماشين
View previous topic :: View next topic  
Author Message
vahid
بي تو هرگز


Joined: 26 Nov 2004
Posts: 3067
Location: Tehran

PostPosted: Sun Dec 26, 2004 8:47 pm    Post subject: برنامه نويسي در مدل NORMALL Reply with quote

در اين مدل از برنامه نويسي نام گذاري سگمنتها بر عهده خودمان است بنابراين ميتوانيم از چندين سگمنت كد يا داده استفاده كنيم .
شبه دستور تعريف سگمنت 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 فقط در سگمنت پشته به كار ميرود و استفاده از ان كاملا اجباري است .
NAME SEGMENT STACK

اين دستور مشخص ميكند كه سگمنت پشته برنامه با سيستم عامل تركيب شود و يك سگمنت واحد تشكيل دهد .
[CLASS] در هنگام پيوند برنامه ها براي تركيب سگمنت هاي از يك نوع به كار ميرود . بنابراين سگمنت داده از يك برنامه با سگمنت داده از برنامه ديگر تركيب ميشود وبراي اين منظور كلمات ‘DATA’ ‘STACK’ ‘CODE’ در كوتيشن قرار ميگيرند .
شبه دستور ASSUME
ارتباط بين نام هر سگمنت و ثباتهاي سگمنت ها را برقرار ميكند . پردازشگر ثبات سگمنت CS را براي ادرس شروع سگمنت كد استفاده ميكند .
ASSUME SS: نام سگمنت پشته  , DS:  نام سگمنت داده  , CS:  نام سگمنت كد

اين دستور بلافاصله بعد از معرفي كردن سگمنت CODE اورده ميشود .
دستور ASSUME به اسمبلر ميگويد كه در حال حاضربروي كدام سگمنت عمليات انجام دهد .
مقدار دهيثباتهاي سگمنت CS , SS توسط سيستم عامل انجام ميشود اما مقدار دهي ثباتهاي DS , ES توسط كاربر انجام ميشود .
در ضمن يادتان باشد كه مقدار دهي ثباتهاي سگمنت توسط رجيسترهاي AX , BX , … انجام ميشود . چون نميتوان انها را مستقيما ادرس دهي نمود
Back to top
Display posts from previous:   
Post new topic   Reply to topic    ParsX.com Forum Index -> ساختمان و زبان ماشين All times are GMT + 3.5 Hours
Page 1 of 1

 
Jump to:  
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