Upload
liza
View
120
Download
3
Embed Size (px)
DESCRIPTION
زبان اسمبلی. مقدمات. دسته بندی لایه ای زبان های برنامه سازی. زبان ماشین زبان اسمبلی زبان های میانی زبان های سطح بالا زبان های بسیار سطح بالا. امتیازات زبان اسمبلی. حجم اشغال حافظه کمتر و سرعت اجرای بالا انجام کارهای فوق العاده بیشتر سازگاری مناسب با برنامه هایی که زمان بلادرنگ دارند - PowerPoint PPT Presentation
Citation preview
زبان اسمبلی
مقدمات
دسته بندی الیه ای زبان های برنامه سازی
زبان ماشینزبان اسمبلیزبان های میانیزبان های سطح باالزبان های بسیار سطح باال
امتیازات زبان اسمبلی
حجم اشغال حافظه کمتر و سرعت اجرای باالانجام کارهای فوق العاده بیشتر سازگاری مناسب با برنامه هایی که زمان بالدرنگ
دارندراحت تر نوشتن برنامه های مقیم در حافظه
ملزومات زبان اسمبلی
کامپیوتر شخصی همساز باIBM سیستم عاملDOSو آشانیی با فرامین آن ویراستار برای تایپ و ویرایش کد مترجم زبان اسمبلی، اسمبلر، مانند توربو اسمبلر یا ماکرو
اسمبلرآشنایی با سیستم اعداد و ساختمان ماشین
آماده سازی و اجرای برنامه
تایپ در یک ویراستار متنی و ذخیره با پسوند.asm
اسمبل نمودن برنامه با اسمبر مانند توربو اسمبلر یا ماکرو اسمبلر. فایل با ساخته میشودobjپسوند .
. پیوند دادن برنامه با استفاده از پیوند دهنده. تبدیلobj. به exe
اجرای برنامه و رفع خطا در صورت وجود
شناسه
از عناصر برنامه اسمبلی میباشد: نام برنامه،زیربرنامه،برچسب،عملوند
.شناسه باید دارای نام باشد
ترکیبی از حروفa تا z و A تا Z و کاراکتر هایی مانند ?,9 ، ارقام صفر تا @,-,$
نام شناسه نباید با ارقام شروع شود
.از @ برای شروع نام استفاده نکنید
کاراکتر است.31حداکثر طول نام هر شناسه
دستورات کلی قالب
دستورالعمل.1. شوند می ترجمه ماشین زبان کد به که دستوراتی.2. دارند نام اسمبلر راهنمای که دستوراتی
[شناسه] دستورالعمل [عملوندها] [;توضیحات]
عملوندی دو العمل دستور
. گیرد می قرار آنجا در باید دستورالعمل عمل نتیجه که است جایی مقصد عملوند
. گیرد می قرار آنجا در دستورالعمل نیاز مورد اطالعات که است جایی منبع عملوند
[شناسه] دستورالعمل >عملوند مقصد< , >عملوند منبع< [;توضیحات]
تعریف سگمنت ها
پارامتر هاپارامتر تنظیم1.پارامتر ترکیب2.پارامتر کالس3.
segment نام سگمنت پارامترها...
نام سگمنت ends
segment نام سگمنت [پارامتر ترکیب] [پارامتر تنظیم][پارامتر کالس]
تنظیم – پارامتر سگمنت های پارامتر
شروع نقطه از سگمنت مرز تعیین
BYTE : حافظه از ای نقطه هر از سگمنت آدرس
WORD : باشد زوج آن آدرس که حافظه از ای نقطه هر از سگمنت آدرس
PARA ( : بر که جایی پاراگراف مرز از سگمنت ( 16آدرس باشد قسمت قابل
PAGE : بر که جایی هر از سگمنت باشد 256آدرس قسمت قابل
سیستم فرض پیش نشود ذکر تنظیم پارامتر .PARAاگر میشود گرفته نظر در
پارامتر های سگمنت – پارامتر ترکیب
) برنامه ) ترجمه از پس ها سگمنت سایر با جاری سگمنت پیوند کننده مشخص
NONE :به است ممکن ولی است جدا دیگر های سگمنت از سگمنت منطقی طور به . به مخصوص پایه آدرس سگمنت هر میشود فرض باشند هم کنار در فیزیکی طور
. دارد را خود
PUBLIC :های سگمنت دادن قرار هم توسط PUBLICکنار یکسان کالس و نام بادهنده پیوند برنامه
STACK . در: را پشته یک حداقل گیرد می نظر در عمومی را پشته دهنده پیوند برنامه . ، پشته چند وجود صورت در گیرد می .SPنظر کرد خواهد اشاره پشته اولین به
COMMON :یکسان آدرس یکسان، کالس و نام با های سگمنت به دهنده پیوند برنامه. دهد می
AT : پاراگراف آدرس صورت باید ATبه قبال پاراگراف آدرس که رود می کار به. باشد شده تعریف
پارامتر های سگمنت – پارامتر کالس
کمک کردن به پیوند دهنده جهت پیوند سگمنت ها با ناممختلف
مشخص کردن کردن سگمنت هاکنترل ترتیب سمگمنت ها
datasg segment para public‘data’
…darasg endsstacksg segment para stack ‘stack’
…stacksg ends
ویژگی های سگمنت کد و تعریف PROCEDURE
حاوی دستور العمل های برنامه
حاوی یک یا چندprocedure
نام رویه procfar
…نام رویه endp
سگمنت کدی که از یک رویه تشکیل شده است:
codesg segment para none ‘code’pname proc far
…pname endpcodesg ends
تعیین اهداف هر سگمنت
.بعد از تعیین سگمنت ها باید اهداف هر سگمنت را مشخص شود
.هر سگمنت به ثبات آن سگمنت مرتبط میشود
(از راهنمایdirective )assume:استفاده میکنیم
assume cs:سگمنت کد, ds:سگمنت داده, es:سگمنت اضافی, ss:سگمنت پشته
تعیین اهداف هر سگمنت
stacksg segment para stack ‘stack’…
stacksg endsdatasg segment para public‘data’
…darasg endscodesg segment para ‘code’proc1 proc far
assume cs:codesg, ds:datasg,ss:stacksg
…proc1 endscodesg ends
تعریف داده ها در سگمنت داده ها با استفاده DBاز دستور
.جهت تعریف داده ها در برنامه اسمبلی باید آن ها را در سگمنت داده ها قرار دهید
دستورdb.برای داده های یک بایتی به کار می رود
مقادی بازه اعداد چقدر است؟
شناسهdb مقدار
pl1 db 0;value is 00
pl2 db -128;value is 80pq db 255
;value is FF
تعریف داده ها در سگمنت داده ها با استفاده DBاز دستور
درdb.میتوان مقادیر کاراکتری و رشته ای را تعریف کرد
)تعریف کاراکتر از ‘ )کوتیشن تنها
)تعریف رشته از “ )کوتیشن دوتایی
نکته: اگر رشته ای به کوتیشن دوتایی محصور شود، وجود کوتیشن تنها در آنبعنوان یک کاراکتر داده محسوب می شود.
str1 db ‘x’pl2 db “Jack’s book”pq db “my first code”
تعریف داده ها در سگمنت داده ها با استفاده DBاز دستور
.دستور فوق سه بایت از حافظه را تعریف می کند 05مقادیرh,0fh,1eh.را در آن قرار می دهد
pl1 db 5, 15, 30
امکان تعریف چند مقدار در دستورdb.وجود دارد
تعریف داده ها در سگمنت داده ها با استفاده DWاز دستور
برای تعریف داده های یک کلمه ای به کار میرود.
یک کلمه چند بایت است؟ بازه ی قابل قبولشناسه چقدر است؟dwبرای این
dw w1مقدار dw -32768;value is 8000
w2 dw 65535 ;value is FFFF
w3 dw -10000;value is FC18
تعریف داده ها در سگمنت داده ها با استفاده DWاز دستور
اگر برای تعریف کاراکتر از دستورdw استفاده کنیم کاراکتر مورد نظر در بایت کم ارزش قرار می گیرد و
خواهد شد.00محتویات بایت با ارزش در صورت تعریف رشته با دستورdw رشته های هداکثر ،
کاراکتر باشند.2باید
str1 dw ‘x’str2 dw “no”str3 dw ‘ok’
تعریف داده ها در سگمنت داده ها با استفاده DWاز دستور
.دستور فوق چهار کلمه از حافظه را تعریف می کند 05مقادیرh,0fh,1eh.را در آن قرار می دهد
pl1 dw 5, 15, 30
امکان تعریف چند مقدار در دستورdw.وجود دارد
تعریف داده ها در سگمنت داده ها با استفاده DWاز دستور
. کند می تعریف را حافظه از کلمه چهار فوق دستور
05مقادیرh,0fh,1eh. دهد می قرار آن در را
1234hمقدار pl1 dw 5, 15, 30
.درداخل یک کلمه بایت ها به ترتیب معکوس ذخیره می شوند.بایت کم ارزش در آدرس پایین تر قرار دارد