فیلم آموزش اسمبلی
فیلم آموزش اسمبلی
فهرست سرفصل ها و رئوس مطالب مطرح شده در این مجموعه آموزشی، در ادامه آمده است:
بخش اول:
وظیفه پردازنده را می توان در سه عمل خلاصه کرد:
- واکشی دستور بعدی
- رمزگشایی دستور
- اجرای دستور
پردازنده به دو بخش تقسیم شده است: واحد محاسبه و منطق ( ALU) و واحد کنترل (CU)
- واحد ALU : عملیات محاسباتی ، منطقی و شیفت انجام میدهد.
- واحد CU : دستورات و دادهها را دریافت کرده ، آدرس را برای ALU رمز گشایی میکند.
ثبات ها (Register): در داخل پردازنده مرکزی ، حافظه های سریع به نام ثبات ها وجود دارند که مستقیماً به واحد کنترل و واحد محاسبه و منطق متصل هستند.
ثبات های عمومی
ثبات های سگمنت
ثبات های اندیس
معرفی نرم افزار emu8086
زبان اسمبلی یک زبان برنامه نویسی سطح پایین می باشد که زبانی نزدیک به زبان ماشین است و مستقیم تر از بقیه زبان ها با سخت افزار در ارتباط است. از نرم افزار emu8086 برای شبیه سازی و کامپایل کردن برنامه های اسمبلی می توان به راحتی استفاده کرد. این نرم افزار برای دانشجویان رشته کامپیوتر و برنامه نویسان، بسیار مناسب است و می توانند برنامه خود را به زبان اسمبلی نوشته و نتیجه را مشاهده کنند. این نرم افزار برای افراد مبتدی بسیار مفید است و به برنامه نویس اجازه می دهد تا برنامه ها را در حالت گام به گام اجرا کند. و تمامی ثبات ها، حافظه، پشته، متغیرها و پرچم ها را در طول اجرای برنامه مشاهده کند
قابلیت های کلیدی نرم افزار emu8086:
– شبیه سازی و کامپایل کردن برنامه های اسمبلی
– اجرای برنامه به صورت گام به گام
– نمایش تمامی ثبات ها، حافظه، پشته، متغیرها و پرچم ها
– بررسی و ویرایش آسان تمامی مقادیر حافظه
– اجرای دستورالعمل ها به صورت رو به جلو و یا رو به عقب
جهت دانلود نرم افزار emu8086 از لینک زیر اقدام کنید.
راهنمای نصب
۱- اقدام به نصب نرم افزار کنید.
۲- با استفاده از اطلاعات درون فایل Serial.txt در هنگام نصب و یا پس از نصب نرم افزار را رجیستر کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
stksg segment 'stack' db 32 dup("stack") stksg ends datasg segment para 'data' msg db 'this is first output:',"$" msg2 db 'this is another output:',"$" datasg ends codesg segment para 'code' main proc far assume ds:datasg,cs:codesg,ss:stksg mov ax,datasg mov ds,ax mov ah,6h mov al,25 mov ch,0 mov cl,0 mov dh,24 mov dl,79 mov bh,12h int 10h ;******************** mov ah,2h mov dh,5 mov dl,15 mov bh,0 int 10h ;********************* mov dx,offset msg mov ah,9h int 21h ;***************** mov ah,2h mov dh,7 mov dl,15 mov bh,0 int 10h ;********************* mov dx,offset msg2 mov ah,9h int 21h ;***************** mov ax,4c00h int 21h main endp codesg ends end main |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
stksg segment 'stack' ;http://donyafile.ir db 32 dup("stack") stksg ends datasg segment para 'data' msg1 db 'Pleas enter a charecter:',"$" msg2 db 'You typed this character:',"$" help db ? datasg ends codesg segment para 'code' main proc far assume ds:datasg,cs:codesg,ss:stksg mov ax,datasg mov ds,ax mov ah,6h mov al,25 mov ch,0 mov cl,0 mov dh,24 mov dl,79 mov bh,12h int 10h ;******************** mov ah,2h mov dh,5 mov dl,15 mov bh,0 int 10h ;********************* mov dx,offset msg1 mov ah,9h int 21h ;************** mov ah,1h int 21h mov help,al ;***************** mov ah,2h mov dh,7 mov dl,15 mov bh,0 int 10h ;********************* mov dx,offset msg2 mov ah,9h int 21h ;***************** mov dl,help mov ah,2h int 21h ;***************** mov ax,4c00h int 21h main endp codesg ends end main |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
stksg segment 'stack' ;http://donyafile.ir db 32 dup("stack") ;part 15 stksg ends datasg segment para 'data' msg1 db 'Enter the student name:',"$" msg2 db 'You typed this name:',"$" strlist label byte max db 20 len db ? buffer db 20 dup(' ') dolar db '$' datasg ends codesg segment para 'code' main proc far assume ds:datasg,cs:codesg,ss:stksg mov ax,datasg mov ds,ax mov ah,6h mov al,25 mov ch,0 mov cl,0 mov dh,24 mov dl,79 mov bh,12h int 10h ;******************** mov ah,2h mov dh,5 mov dl,15 mov bh,0 int 10h ;********************* ;mov dx,offset msg1 lea dx,msg1 mov ah,9h int 21h ;************** mov ah,0ah lea dx,strlist int 21h ;************** mov ah,2h mov dh,7 mov dl,15 mov bh,0 int 10h ;********************* mov dx,offset msg2 mov ah,9h int 21h ;***************** lea dx,buffer mov ah,9h int 21h ;***************** mov ax,4c00h int 21h main endp codesg ends end main |
در ادامه در بخش شانزدهم از آموزش برنامه نویسی اسمبلی، پرچم ایران را ترسیم می کنیم.
محاسبات
ثبات پرچم (Flag Register): شانزده بیتی هستند که بیت های آن وضعیت فعلی پردازنده یا نتیجه عملیات محاسباتی را نشان می دهد.
۱- بیت پرچم نقلی CF: این بیت موقعی یک می شود (CF=1)، که : الف: در دستورات ۸ بیتی از بیت ۸، یک بیت نقلی ایجاد شود.
۲- پرچم تشخیص صفر ZF: این بیت موقعی یک می شود که، نتیجه عملیات محاسباتی یا منطقی برابر صفر شود.
۳- پرچم علامت SF: این بیت موقعی یک می شود که، نتیجه عملیات منفی باشد.
۴- پرچم نقلی کمکی AF: اگر از چهارمین بیت، بیت نقلی به بیت بعدی ایجاد شود، AF برابر یک می شود.
۵- پرچم توازن PF: اگر تعداد بیت ها زوج باشد ، بیت توازن PF یک می شود.
۶- بیت پرچم سر ریز OF: چنانچه در انجام محاسبات، آخرین بیت ( بیت با ارزش ) به دلیل سر ریز شدن از بین برود، این بیت یک می شود.
دستور جمع ADD: شکل کلی دستور: عملوند منبع، عملوند مقصد ADD
ساختار های تصمیم و تکرار
دستورالعمل پرش غیر شرطی
دسـتورالعمل پـرش غیـر شـرطی در زبـان اسـمبلی JMP مـی باشـد. ایـن دستورالعمل معادل دستورالعمل GOTO در سایر زبان های برنامه نویـسی مـی باشـد.
شکل کلی این دستورالعمل بصورت زیر می باشد. این دستور روی هـیچ فلگـی اثـر ندارد. برچسب دستور JMP
پرش های شرطی
در پرش های شرطی لازم است مقایسه ای صورت پذیرد و بر اساس نتایج مقایسه عمل پرش انجام می شود.
دستورالعمل های زیادی برای انجام پرش وجود دارند. ابتدا روش انجام مقایسه را بررسی کرده سپس به دستورات پرش های شرطی می پردازیم.
انجام مقایسه در پرش های شرطی
برای انجام مقایسه و بررسی شرط ها از دستورCMP استفاده می شود.
مثال: برنامه ای که رشته ای را از ورودی خوانده، آن را کاراکار به کاراکتر به خروجی می برد.
در این برنامه، لیستی به نام strlist برای دریافت رشته از ورودی تعریف شده است که اجزای آن عبارتند از: max حداکثر طول رشته، len طول واقعی رشته، buffer محل ذخیره رشته. برای ایجاد حلقه تکرار از ثبات CX به عنوان شمارنده حلقه استفاده شده است. مقدار اولیه آن صفر است و پس از هر بار تکرار، یک واحد به آن اضافه می شود و این روند تا رسیدن CL به len ( طول واقعی رشته ) ادامه دارد. پس از اینکه مقدار CL به len رسید، حلقه تکرار خاتمه می یابد. توجه داشته باشید که برای دسترسی به کاراکتر های رشته، ابتدا آدرس آفست رشته را در ثبات BX قرار داده ایم و هر بار یک واحد به آدرس آن اضافه شده است. برای خروجی کاراکتر نیز از وقفه ۲۱h استفاده شده است.
مشاهده بخش بیست و یکم (در آپارات)
مشاهده بخش بیست و ذوم(در آپارات)
مشاهده بخش بیست و سوم (در آپارات)
مشاهده بخش بیست و چهارم(در آپارات)
سایر بخش ها بزودی در سایت بارگزاری می شوند. با تشکر دنیا فایل
مطالب مرتبط
۸ دیدگاه + فرستادن دیدگاه
فرستادن دیدگاه
نوشتههای تازه
- دانلود پیاده سازی رمزنگاری اثر انگشت
- دانلود پیاده سازی مقاله رمزنگاری چندگانه تصویر بر اساس جایگشت عناصر تصویر در متلب
- دانلود ترجمه مقاله رمزنگاری تصویر رنگی مبتنی بر سیستم فوق آشوب
- دانلود پیاده سازی مقاله رمزنگاری تصویر مبتنی بر دنباله های DNA و چندین نگاشت آشوب یک بعدی بهبود یافته در متلب
- رمزنگاری تصویر رنگی مبتنی بر ترکیب سیستم آشوب و دنباله های DNA
- دانلود ترجمه مقاله الگوریتم رمزنگاری تصویر مبتنی بر آشوب با استفاده از عملیات دنباله DNA
- دانلود ترجمه مقاله یک روش جدید رمزنگاری تصویر مبتنی بر اغتشاش و انتشار با استفاده از اتوماتای سلولی و دنباله DNA
- پیاده سازی مقاله رمزنگاری تصویر رنگی مبتنی بر سیستم های فوق آشوب و اتوماتی سلولی
- پیاده سازی مقاله رمزنگاری تصویر مبتنی بر دنباله های DNA و توابع آشوب
- دانلود سورس پیاده سازی مقاله رمزنگاری تصویر رنگی مبتنی بر عملگر های DNA و سیستم فوق آشوب
سلام خسته نباشید سپاس فراوان برای آموزشاتون خیلی عالیه فقط فایل اون کتابی که دارین باهاش یاد میدینو میتونین برام ایمیل کنین ؟خیلی ممنونم
سلام
بسیار علی و زیبا
ان شاالله همیشه موفق باشید و ادامه بدهید
[…] […]
سلام.
ببخشید چرا فیلم ها لینک دانلود مستقیم ندارند. و کار را سخت تر کردید. بهتر است برای هر فیلم یک لینک مستقیم دانلود هم قرار بدهید. شما که زحمت کشیدید و این فضا را آماده کردید. چون قطعا ما فیلم های آموزشی را آنلاین نمی خواهیم ببینیم و در کامپیوتر باید داشته باشیم و مرور کنیم.
سلام
در آپارات بخش دانلود فیلم آموزشی، فرمت های مختلفی ازکیفیت فیلم قرار داده شده است. شما با توجه به فرمت مورد نظر و حجم مختلف فیلم آموزشی اسمبلی، می توانید دانلود داشته باشید.
کارتون عالیه…یکی از بهترین آموزشهای برنامه نویسی بود که دیدم مخصوص در زمینه اسمبلی که یکی از سخت ترین زبانهاست در یادگیری
سلام. بسیار سپاسگزارم از لطف جنابعالی.
سلام
خسته نباشید
بسیار عالی
فقط صدا پایین بود که با نرم افزار نرمال شد
استاد عزیز
بررسی کردم بیشتر نرم افزارهای تجاری وقدرتمند با محیط++ visual c نوشته شده اند
حتی نرم افزار های خود ویندوز
که متاسفانه در ایران به این زبان اهمیت داده نشده و فقط به بخش کنسولی پرداخته اند
امیدوارم جنابعالی پا در این عرصه بگذارید
موفق باشید