TAHA
11-11-2009, 10:45 PM
توضیحی در مورد شبه دستورالعمل های اسمبلی:
Title
Page
Segment
Assume
Proc
end
ends
endp
Org
EQU
Public
Extrn
Include
Title:
متنی که در مقابل این شبه دستورالعمل نوشته می شود، به عنوان تیتر در سرصفحه listing درج می شود.
Title First Program
Page:
این شبه دستورالعمل 2 عدد می گیرد، مثلا 60, 80 در این صورت در listing هر صفحه شامل 60 خط و هر خط شامل 80 ستون خواهد شد.
تعداد ستون (کارکتر) ، تعداد سطر Page
Page 60,80
:Segment
این شبه دستورالعمل آغاز هر Segment را نشان می دهد.
چون 4 ناحیه داریم، این شبه دستورالعمل حداکثر 4 بار مورد استفاده قرار می گیرد،
نحوه استفاده:
| پارامتر کلاس| |پارامتر ترکیب| |پارامتر تنظیم| Segment نام Segment
پارمتر تنظیم: مرزی را که سگمنت باید از آنجا شروع شود مشخص می کند، می تواند مقادیر زیر را بگیرد.
Byte: آدرس سگمنت می تواند از هر نقطه ای از حافظه شروع شود.
Word: سگمنت می تواند از هر نقطه ای از حافظه که آدرس آن زوج باشد شروع شود.
Para: آدرس سگمنت از مرز پاراگراف شروع می شود.
Page: آدرس سگمنت می تواند از هر جایی که بر 100H (256) قابل قسمت باشد شروع شود.
پارامتر ترکیب:
مشخص می کند که آیا این سگمنت با سگمنت های دیگری که پس از ترجمه برنامه به آ« پیوند داده می شوند، ترکیب داده شود یا خیر و می تواند یکی از مقادیر None، Public، Stack و Comment را اختیار کند.
پارامتر کلاس:
به پیوند دهنده کمک می کنند تا سگمنت هایی با نام های مختلف را به هم پیوند دهد، سگمنت ها را مشخص کند و ترتیب آنها را کنترل کند.
Assume :
از این شبه دستورالعمل برای مرتبط کردن سگمنت ها با ثباتهایشان استفاده می شود.
بدین معنی که آدرس ابتدای سگمنت ها را در داخل ثبات های مربوطه قرار می دهد محل استفاده این دستور در Code Seg و در داخل زیر برنامه اصلی به عنوان اولین دستورالعمل می باشد.
Assume cs:codeseg, ds:dataseg
Proc:
شکل به کار گیری این دستور به صورت مقابل می باشد.
{near,far} proc نام زیر برنامه
در هر برنامه ای یک زیر برنامه از نوع far وجود دارد که آن زیر برنامه نشان دهنده آغاز دستورالعمل های اجرایی است مانند main() در C.
نکته: اگر فراخوانی از سگمنت دیگر باشد فراخوانی دور و اگر فراخوانی از سگمنت برنامه باشد فراخوانی نزدیک است.
endp, ends, end:
هر زیر برنامه به یک endp ختم می شود که پایان دهنده تعریف یک زیر برنامه است.
هر سگمنت به یک ends ختم می شود که پایان دهنده تعریف یک سگمنت است.
هر سگمنت به یک end ختم می شود که پایان دهنده همه سگمنت ها است.
ترتیب endp همانند ترتیب پرانتزهاست یعنی اولین Endp مربوط به آخرین proc است و بالعکس آخرین endp مربوط به اولین proc است.
Org:
این کلمه از organize به معنی سازماندهی گرفته شده است.
این شبه دستور به اندازه operand خود از آدرس جاری، حافظه رزرو می کند.
Add ax,20
Org 100H
Mov bx,4
دستور org 100H، به اندازه 100H خانه از حافظه را رزرو می کند.
EQU:
این دستور همانند دستور define در C می باشد.
EQUها می تواند تودرتو باشند ولی باید ترتیب رعایت شود.
Max EQU 100
Count EQU max
Public:
با استفاده از این شبه دستورالعمل متغیرها یا مقادیر برای دیگر برنامه ها و زیربرنامه ها به اشتراک گذاشته می شود.
Public sum, max, sort, …
Extrn:
این شبه دستورالعمل به اسمبلر اعلام می کند که متغیرهای معرفی شده توسط آن به عنوان متغیرهای خارجی هستند یعنی جای دیگر تعریف شده و در اینجا استفاده می شود.
Include:
برای پیوند دادن فایل ها و کتابخانه های استفاده شده در برنامه به برنامه استفاده می شود.
نام فایل یا کتابخانه ای را که عناصر آن در داخل برنامه استفاده کرده ایم بعد از آن می آوریم مثل uses در Pascal
Included IO.h
Title
Page
Segment
Assume
Proc
end
ends
endp
Org
EQU
Public
Extrn
Include
Title:
متنی که در مقابل این شبه دستورالعمل نوشته می شود، به عنوان تیتر در سرصفحه listing درج می شود.
Title First Program
Page:
این شبه دستورالعمل 2 عدد می گیرد، مثلا 60, 80 در این صورت در listing هر صفحه شامل 60 خط و هر خط شامل 80 ستون خواهد شد.
تعداد ستون (کارکتر) ، تعداد سطر Page
Page 60,80
:Segment
این شبه دستورالعمل آغاز هر Segment را نشان می دهد.
چون 4 ناحیه داریم، این شبه دستورالعمل حداکثر 4 بار مورد استفاده قرار می گیرد،
نحوه استفاده:
| پارامتر کلاس| |پارامتر ترکیب| |پارامتر تنظیم| Segment نام Segment
پارمتر تنظیم: مرزی را که سگمنت باید از آنجا شروع شود مشخص می کند، می تواند مقادیر زیر را بگیرد.
Byte: آدرس سگمنت می تواند از هر نقطه ای از حافظه شروع شود.
Word: سگمنت می تواند از هر نقطه ای از حافظه که آدرس آن زوج باشد شروع شود.
Para: آدرس سگمنت از مرز پاراگراف شروع می شود.
Page: آدرس سگمنت می تواند از هر جایی که بر 100H (256) قابل قسمت باشد شروع شود.
پارامتر ترکیب:
مشخص می کند که آیا این سگمنت با سگمنت های دیگری که پس از ترجمه برنامه به آ« پیوند داده می شوند، ترکیب داده شود یا خیر و می تواند یکی از مقادیر None، Public، Stack و Comment را اختیار کند.
پارامتر کلاس:
به پیوند دهنده کمک می کنند تا سگمنت هایی با نام های مختلف را به هم پیوند دهد، سگمنت ها را مشخص کند و ترتیب آنها را کنترل کند.
Assume :
از این شبه دستورالعمل برای مرتبط کردن سگمنت ها با ثباتهایشان استفاده می شود.
بدین معنی که آدرس ابتدای سگمنت ها را در داخل ثبات های مربوطه قرار می دهد محل استفاده این دستور در Code Seg و در داخل زیر برنامه اصلی به عنوان اولین دستورالعمل می باشد.
Assume cs:codeseg, ds:dataseg
Proc:
شکل به کار گیری این دستور به صورت مقابل می باشد.
{near,far} proc نام زیر برنامه
در هر برنامه ای یک زیر برنامه از نوع far وجود دارد که آن زیر برنامه نشان دهنده آغاز دستورالعمل های اجرایی است مانند main() در C.
نکته: اگر فراخوانی از سگمنت دیگر باشد فراخوانی دور و اگر فراخوانی از سگمنت برنامه باشد فراخوانی نزدیک است.
endp, ends, end:
هر زیر برنامه به یک endp ختم می شود که پایان دهنده تعریف یک زیر برنامه است.
هر سگمنت به یک ends ختم می شود که پایان دهنده تعریف یک سگمنت است.
هر سگمنت به یک end ختم می شود که پایان دهنده همه سگمنت ها است.
ترتیب endp همانند ترتیب پرانتزهاست یعنی اولین Endp مربوط به آخرین proc است و بالعکس آخرین endp مربوط به اولین proc است.
Org:
این کلمه از organize به معنی سازماندهی گرفته شده است.
این شبه دستور به اندازه operand خود از آدرس جاری، حافظه رزرو می کند.
Add ax,20
Org 100H
Mov bx,4
دستور org 100H، به اندازه 100H خانه از حافظه را رزرو می کند.
EQU:
این دستور همانند دستور define در C می باشد.
EQUها می تواند تودرتو باشند ولی باید ترتیب رعایت شود.
Max EQU 100
Count EQU max
Public:
با استفاده از این شبه دستورالعمل متغیرها یا مقادیر برای دیگر برنامه ها و زیربرنامه ها به اشتراک گذاشته می شود.
Public sum, max, sort, …
Extrn:
این شبه دستورالعمل به اسمبلر اعلام می کند که متغیرهای معرفی شده توسط آن به عنوان متغیرهای خارجی هستند یعنی جای دیگر تعریف شده و در اینجا استفاده می شود.
Include:
برای پیوند دادن فایل ها و کتابخانه های استفاده شده در برنامه به برنامه استفاده می شود.
نام فایل یا کتابخانه ای را که عناصر آن در داخل برنامه استفاده کرده ایم بعد از آن می آوریم مثل uses در Pascal
Included IO.h