زبان اسمبلی

22
ی ل ب م س ا ن ا ب ز دمات ق م

Upload: liza

Post on 08-Jan-2016

125 views

Category:

Documents


3 download

DESCRIPTION

زبان اسمبلی. مقدمات. دسته بندی لایه ای زبان های برنامه سازی. زبان ماشین زبان اسمبلی زبان های میانی زبان های سطح بالا زبان های بسیار سطح بالا. امتیازات زبان اسمبلی. حجم اشغال حافظه کمتر و سرعت اجرای بالا انجام کارهای فوق العاده بیشتر سازگاری مناسب با برنامه هایی که زمان بلادرنگ دارند - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: زبان اسمبلی

زبان اسمبلی

مقدمات

Page 2: زبان اسمبلی

دسته بندی الیه ای زبان های برنامه سازی

زبان ماشینزبان اسمبلیزبان های میانیزبان های سطح باالزبان های بسیار سطح باال

Page 3: زبان اسمبلی

امتیازات زبان اسمبلی

حجم اشغال حافظه کمتر و سرعت اجرای باالانجام کارهای فوق العاده بیشتر سازگاری مناسب با برنامه هایی که زمان بالدرنگ

دارندراحت تر نوشتن برنامه های مقیم در حافظه

Page 4: زبان اسمبلی

ملزومات زبان اسمبلی

کامپیوتر شخصی همساز باIBM سیستم عاملDOSو آشانیی با فرامین آن ویراستار برای تایپ و ویرایش کد مترجم زبان اسمبلی، اسمبلر، مانند توربو اسمبلر یا ماکرو

اسمبلرآشنایی با سیستم اعداد و ساختمان ماشین

Page 5: زبان اسمبلی

آماده سازی و اجرای برنامه

تایپ در یک ویراستار متنی و ذخیره با پسوند.asm

اسمبل نمودن برنامه با اسمبر مانند توربو اسمبلر یا ماکرو اسمبلر. فایل با ساخته میشودobjپسوند .

. پیوند دادن برنامه با استفاده از پیوند دهنده. تبدیلobj. به exe

اجرای برنامه و رفع خطا در صورت وجود

Page 6: زبان اسمبلی

شناسه

از عناصر برنامه اسمبلی میباشد: نام برنامه،زیربرنامه،برچسب،عملوند

.شناسه باید دارای نام باشد

ترکیبی از حروفa تا z و A تا Z و کاراکتر هایی مانند ?,9 ، ارقام صفر تا @,-,$

نام شناسه نباید با ارقام شروع شود

.از @ برای شروع نام استفاده نکنید

کاراکتر است.31حداکثر طول نام هر شناسه

Page 7: زبان اسمبلی

دستورات کلی قالب

دستورالعمل.1. شوند می ترجمه ماشین زبان کد به که دستوراتی.2. دارند نام اسمبلر راهنمای که دستوراتی

[شناسه] دستورالعمل [عملوندها] [;توضیحات]

Page 8: زبان اسمبلی

عملوندی دو العمل دستور

. گیرد می قرار آنجا در باید دستورالعمل عمل نتیجه که است جایی مقصد عملوند

. گیرد می قرار آنجا در دستورالعمل نیاز مورد اطالعات که است جایی منبع عملوند

[شناسه] دستورالعمل >عملوند مقصد< , >عملوند منبع< [;توضیحات]

Page 9: زبان اسمبلی

تعریف سگمنت ها

پارامتر هاپارامتر تنظیم1.پارامتر ترکیب2.پارامتر کالس3.

segment نام سگمنت پارامترها...

نام سگمنت ends

segment نام سگمنت [پارامتر ترکیب] [پارامتر تنظیم][پارامتر کالس]

Page 10: زبان اسمبلی

تنظیم – پارامتر سگمنت های پارامتر

شروع نقطه از سگمنت مرز تعیین

BYTE : حافظه از ای نقطه هر از سگمنت آدرس

WORD : باشد زوج آن آدرس که حافظه از ای نقطه هر از سگمنت آدرس

PARA ( : بر که جایی پاراگراف مرز از سگمنت ( 16آدرس باشد قسمت قابل

PAGE : بر که جایی هر از سگمنت باشد 256آدرس قسمت قابل

سیستم فرض پیش نشود ذکر تنظیم پارامتر .PARAاگر میشود گرفته نظر در

Page 11: زبان اسمبلی

پارامتر های سگمنت – پارامتر ترکیب

) برنامه ) ترجمه از پس ها سگمنت سایر با جاری سگمنت پیوند کننده مشخص

NONE :به است ممکن ولی است جدا دیگر های سگمنت از سگمنت منطقی طور به . به مخصوص پایه آدرس سگمنت هر میشود فرض باشند هم کنار در فیزیکی طور

. دارد را خود

PUBLIC :های سگمنت دادن قرار هم توسط PUBLICکنار یکسان کالس و نام بادهنده پیوند برنامه

STACK . در: را پشته یک حداقل گیرد می نظر در عمومی را پشته دهنده پیوند برنامه . ، پشته چند وجود صورت در گیرد می .SPنظر کرد خواهد اشاره پشته اولین به

COMMON :یکسان آدرس یکسان، کالس و نام با های سگمنت به دهنده پیوند برنامه. دهد می

AT : پاراگراف آدرس صورت باید ATبه قبال پاراگراف آدرس که رود می کار به. باشد شده تعریف

Page 12: زبان اسمبلی

پارامتر های سگمنت – پارامتر کالس

کمک کردن به پیوند دهنده جهت پیوند سگمنت ها با ناممختلف

مشخص کردن کردن سگمنت هاکنترل ترتیب سمگمنت ها

datasg segment para public‘data’

…darasg endsstacksg segment para stack ‘stack’

…stacksg ends

Page 13: زبان اسمبلی

ویژگی های سگمنت کد و تعریف PROCEDURE

حاوی دستور العمل های برنامه

حاوی یک یا چندprocedure

نام رویه procfar

…نام رویه endp

سگمنت کدی که از یک رویه تشکیل شده است:

codesg segment para none ‘code’pname proc far

…pname endpcodesg ends

Page 14: زبان اسمبلی

تعیین اهداف هر سگمنت

.بعد از تعیین سگمنت ها باید اهداف هر سگمنت را مشخص شود

.هر سگمنت به ثبات آن سگمنت مرتبط میشود

(از راهنمایdirective )assume:استفاده میکنیم

assume cs:سگمنت کد, ds:سگمنت داده, es:سگمنت اضافی, ss:سگمنت پشته

Page 15: زبان اسمبلی

تعیین اهداف هر سگمنت

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

Page 16: زبان اسمبلی

تعریف داده ها در سگمنت داده ها با استفاده DBاز دستور

.جهت تعریف داده ها در برنامه اسمبلی باید آن ها را در سگمنت داده ها قرار دهید

دستورdb.برای داده های یک بایتی به کار می رود

مقادی بازه اعداد چقدر است؟

شناسهdb مقدار

pl1 db 0;value is 00

pl2 db -128;value is 80pq db 255

;value is FF

Page 17: زبان اسمبلی

تعریف داده ها در سگمنت داده ها با استفاده DBاز دستور

درdb.میتوان مقادیر کاراکتری و رشته ای را تعریف کرد

)تعریف کاراکتر از ‘ )کوتیشن تنها

)تعریف رشته از “ )کوتیشن دوتایی

نکته: اگر رشته ای به کوتیشن دوتایی محصور شود، وجود کوتیشن تنها در آنبعنوان یک کاراکتر داده محسوب می شود.

str1 db ‘x’pl2 db “Jack’s book”pq db “my first code”

Page 18: زبان اسمبلی

تعریف داده ها در سگمنت داده ها با استفاده DBاز دستور

.دستور فوق سه بایت از حافظه را تعریف می کند 05مقادیرh,0fh,1eh.را در آن قرار می دهد

pl1 db 5, 15, 30

امکان تعریف چند مقدار در دستورdb.وجود دارد

Page 19: زبان اسمبلی

تعریف داده ها در سگمنت داده ها با استفاده DWاز دستور

برای تعریف داده های یک کلمه ای به کار میرود.

یک کلمه چند بایت است؟ بازه ی قابل قبولشناسه چقدر است؟dwبرای این

dw w1مقدار dw -32768;value is 8000

w2 dw 65535 ;value is FFFF

w3 dw -10000;value is FC18

Page 20: زبان اسمبلی

تعریف داده ها در سگمنت داده ها با استفاده DWاز دستور

اگر برای تعریف کاراکتر از دستورdw استفاده کنیم کاراکتر مورد نظر در بایت کم ارزش قرار می گیرد و

خواهد شد.00محتویات بایت با ارزش در صورت تعریف رشته با دستورdw رشته های هداکثر ،

کاراکتر باشند.2باید

str1 dw ‘x’str2 dw “no”str3 dw ‘ok’

Page 21: زبان اسمبلی

تعریف داده ها در سگمنت داده ها با استفاده DWاز دستور

.دستور فوق چهار کلمه از حافظه را تعریف می کند 05مقادیرh,0fh,1eh.را در آن قرار می دهد

pl1 dw 5, 15, 30

امکان تعریف چند مقدار در دستورdw.وجود دارد

Page 22: زبان اسمبلی

تعریف داده ها در سگمنت داده ها با استفاده DWاز دستور

. کند می تعریف را حافظه از کلمه چهار فوق دستور

05مقادیرh,0fh,1eh. دهد می قرار آن در را

1234hمقدار pl1 dw 5, 15, 30

.درداخل یک کلمه بایت ها به ترتیب معکوس ذخیره می شوند.بایت کم ارزش در آدرس پایین تر قرار دارد