قالب کلی دستورات اسمبلی ومعرفی عملوند های حافظه
قالب کلیدستورات اسمبلی به این شکل است:
[توضیحات;][عملوندها]دستورالعمل[شناسه]
دستورالعمل های اسمبلی ممکن است فاقد شناسه، عملوندها و توضیحات باشند.
شناسه از عناصر اصلی برنامه اسمبلی مثل نام برنامه و برچسب هاست.
هر دستور زبان اسمبلی می تواند یک، دو یا هیچ عملوندی نداشته باشد. اگر دستور العمل دو عملوند داشته باشد فرمت کلی آن دستور العمل بصورت زیر است:
[توضیحات;]<عملوند منبع>و<عملوند مقصد>دستورالعمل[شناسه]
مثال:
L1: Mov Ax,4c00h;This is a Sample
عملوند مقصد جایی است که نتیجه عمل دستورالعمل باید در آن قرار گیرد و می تواند ثبات یا یک محل از حافظه باشد.
عملوند منبع جایی است که اطلاعات مورد نیاز دستورالعمل در آن ها قرار دارد. عملوند منبع می تواند یک مقدار ثابت ، ثبات یا یک محل حافظه باشد.
قالب کلی برنامه اسمبلی که ما اینجا باهاش سر کار داریم:
تعریف سگمنت پشته
تعریف سگمنت داده
نام سگمنت کد
Proc Far نام برنامه
.
.
.
Endp نام برنامه
Ends نام سگمنت کد
نام برنامه End
تعریف سگمنت ها
پارامترها Segment نام سگمنت
.
.
.
Ends نام سگمنت
هر برنامه ممکن است چند سگمنت داشته باشد. مثلا: سگمنت داده، سگمنت پشته ، سگمنت کد، برای تعریف هر سگمنت از شبه دستور Segment بصورت بالا استفاده می شود.
پارامترهای که در تعریف سگمنت بکار می روند بر سه نوع اند:
1- پارامتر تنظیم(Align)
2- پارامتر ترکیب(Combine)
3- پارامتر کلاس(Class)
[پارامتر کلاس][پارامتر ترکیب][پارامتر تنظیم] Segment نام سگمنت
.
.
.
ENDS نام سگمنت
پارامتر تنظیم مرزی را که سگمنت باید از آن جا شروع شود را مشخص می کندپارامتر تنظیم یکی از مقادیر زیر را می پذایرد.
1-byte: آدرس سگمنت می تواند از هر نقطه ای از حافظه شروع شود.
2-word:آدرس سگمنت می تواند از هر نقطه ای از حافظه که آدرس آن زوج باشد شروع شود.
3-para:آدرس سگمنت می تواند از مرز پاراگراف یعنی جایی که بر 16 قابل تقسیم است می تواند شروع شود.
4-Page:آدرس سگمنت می تواند از مرز پاراگراف یعنی جایی که بر 256 قابل تقسیم است می تواند شروع شود.
نکته: اگر در مقدار پارامتر چیزی نوشته نشود مقدار پیشفرض Para است.
ادامه دارد........