سلام برای اجرای برنامه های اسمبلی نیاز به یک اسمبلر دارید که من در برای اجرای برنامه ها همان طور که قبلا گفته بودم از ماکرواسمبلر 6.11 استفاده خواهم کرد که به MASM6.11 معروف است می تونید از لینک زیر این برنامه رو دانلود کنید حجم 12.85 مگابایت ، مدت زمان دانلود یک ساعت و پنجاه و هفت دقیقه می باشد داشتن این نرم افزار اجباری می باشد :
http://www.phatcode.net/downloads.php?id=175
موفق باشیددستور A ( Assemble)
با استفاده از این دستور می توانیم دستورات اسمبلی 8086 ، یا 8088 ، و 80286 را تایپ نمائیم تا جهت اجرای آن دستورات ، نیازی به اسمبلر نباشد . با دستور A می توانیم براحتی برنامه های اسمبلی خود را در debug بنویسیم وسپس در فایل COM و EXE ذخیره کنیم . این دستور به صورت زیر به کار می رود :
A [Address]
Address محل شروع کار دستور A را مشخص می کند .
مثال :
ادامه مطلب...
دستور L ( Load)
این دستور برای انتقال سکتورهایی از دیسک به حافظه به کار می رود و به صورت زیر استفاده می شود :
] سکتور2 سکتور1 درایو[ ]آدرس[
آدرس محلی از حافظه را مشخص می کند که سکتورهای خوانده شده از دیسک باید از آنجا به بعد ذخیره شوند. درایو شماره درایوی است که مشخص می کند اطلاعات باید از آن درایو خوانده شوند شماره صفر مشخص کننده درایو A و شماره یک مشخص کننده درایو B ، شماره 2 مشخص کننده درایو C و غیره است.
سکتور 1 مشخص کننده اولین سکتوری است که خواندن اطلاعات از روی دیسک باید از آنجا شروع شود.
سکتور 2 مشخص کننده تعداد سکتور هایی است که با شروع از سکتور 1 باید از روی دیسک خوانده شوند.
مثال :
ادامه مطلب...
برنامه ای بنویسید که 1000 عدد تصادفی تولید کند و سپس این اعداد را به روشهای Bubble sort و Quick sort و Insertion sort و Heap sort و Merge sort و Tree sort و Radix sort و Shell sort و Exchange sort مرتب کرده و سپس در خروجی نمایش دهد.
به علت زیاد بودن کد ها اونها رو به صورت PDF در لینک زیر قرار دادم می تونید از لینک زیر دانلود کنید.
موفق باشید
http://www.sendmefile.com/00658019
دستور Q ( Quit)
این دستور برای خروج از برنامه debug بدون ثبت تغییرات اعمال شده به فایل مورد نظر به کار می رود و به صورت زیر استفاده می شود :
Q
دستور G (GO)
این دستور موجب اجرای برنامه ای که توسط debug به حافظه منتقل شده است می شود و به صورت زیر به کار می رود:
G [=address] [address]
اگر دستور G بدون آدرسهای لازم به کار برده شود فایل موجود در حافظه ، همانطور که در سطح سیستم عامل اجرا می گردد در debug نیز اجرا خواهد شد. اولین آدرس که با علامت "=" شروع می شود ، به debug می گوید که از چه آدرسی شروع به اجرای برنامه بنماید. آدرسهای بعدی و همچنین اولین آدرس اگر همراه با علامت مساوی ( =) نباشد ، به عنوان آدرسهای توقف محسوب می شوند که حداکثر تا 10 نقطه توقف قابل تعریف است. پس از اینکه اجرای برنامه به نقطه توقف رسید ، اجرای آن متوقف شده و محتویات ثباتها مشابه به حالتی که از فرمان R استفاده شده باشد ، روی صفحه نمایش ظاهر خواهند شد. وقتی اجرای برنامه به یک نقطه توقف رسید ، نقطه توقف بعدی نادیده گرفته خواهد شد . اگر پس از رسیدن به نقطه توقف از دستور G استفاده کنیم ، اجرای برنامه از این نقطه تا انتهای آن ادامه پیدا می کند.
مثال :
G CS : 7550
دستور فوق موجب اجرای برنامه موجود در حافظه تا آدرس 7550 از ناحیه CS می شود و سپس محتویات جدید ثباتها را نمایش می دهد.
ادامه مطلب...
Debug ابزاری جهت اشکالزدایی ، اجرا و تغییر در برنامه هاست و بیشتر برای کسانی مفید است که با زبان اسمبلی کار می کنند. این برنامه دارای خصیصه هایی است که به آسانی می توان از آنها استفاده نمود. بعضی از اعمالی که برنامه debug می تواند انجام دهد عبارتند از :
1- تست برنامه ها
2- انتقال فایلها به حافظه ، مشاهده محتویات آنها و اعمال تغییرات در آنها
3- اجرای برنامه های سیستم عامل DOS
4- خواندن سکتور هایی از دیسک و یا نوشتن محتویات جدیدی در آنها
5- ایجاد و اجرای برنامه های به زبان اسمبلی
یکی از مزایایی که نوشتن برنامه های به زبان اسمبلی در debug دارد این است که مستقیما قابل اجرا بوده و نیازی به ترجمه ندارند.
چون اعداد و ارقام و همچنین انجام محاسبات در debug در مبنای 16 می باشند ، لذا آشنایی مختصری با چگونگی انجام محاسبات در مبنای 16 ضروری است که دوستان عزیز حتما تبدیلات و مبناها رو بلدند.
از برنامه debug به صورت زیر استفاده می شود [path 1] DEBUG [Path 2] [File Name] [Parametring]
ادامه مطلب...
چگونه یک برنامه را اسمبل ، لینک و اجرا کنیم
کد منبع برنامه می تواند با هر متن نگاری مثل Notepad یا Edit وارد شود. کد منبع زبان اسمبلی معمولا در فایلی با پسوند .ASM ذخیره می گردد . برای این بخش ، من فرض کردم که برنامه ای که در بخش نوشتم به صورت فایلی بنام EXAMPLE.ASM ذخیره گردیده است.
من از اسمبلر ML از MASM 6.1 استفاده می کنم تا برنامه ها را اسمبل کنم. برای اسمبل کردن EXAMPLE.ASM باید دستور زیر را در پنجره اعلان DOS وارد نمائید بدین صورت :
Start -> Run -> Cmd
C:\> ml /c /coff example.asm
با فرض اینکه هیچ اشتباهی در برنامه وجود ندارد ، پیغامی شبیه به پیغام زیر را مشاهده خواهید کرد :
Microsoft (R) Macro Assembler Version 6.11
Copyright © Microsoft Crop 1981 – 1993 . All right reserved.
Assembling : example .asm
ادامه مطلب...
http://www.sendmefile.com/00657795
لینک دانلود :
http://www.sendmefile.com/00657055
فصل سوم به پایان رسید از جلسه ی آینده برنامه نویسی به زبان اسمبلی شروع می شود. می تونید از لینک زیر می تونید جلسه ششم رو دانلود کنید . موفق باشید.
http://www.sendmefile.com/00656899
http://www.sendmefile.com/00656254
دستورات نوع RX
فرمت این نوع دستورات در شکل زیر نشان داده شده است . اولین عملوند یک ثبات مانند R1 است که آدرس آن در بیت های 8-11 دستور قرار دارد. دومین عملوند در حافظه است که آدرسش بوسیله یک ثبات اندیس ، X2 ؛ ( بیتهای 12-15 دستور) یک ثبات پایه ، B2 ، ( بیتهای 16-19 ) و تفاوت مکان ( بیتهای 20-31 دستور) مشخص می گردد. این نوع دستورات 4 بیت را اشغال می کنند.

به عنوان مثال دستور 5B 35 C0 24 یک دستور نوع RX است . رمز این دستور 5B به معنی عمل تفریق است. اولین عملوند در ثبات 3 قرار دارد . دومین عملوند را مشترکا X2=5 ، B2=C ، D2=024 مشخص می نمایند. فرض کنید محتوی ثباتهای 5 و C به ترتیب 00000050 و 00007404 باشد آنوقت آدرس دومین عملوند 007478 خواهد بود.
با اجرای این دستور محتویات کلمه 007478 ( چهار بایت 747B – 007478 ) از محتویات ثبات 3 کم می شود و حاصل در ثبات 3 قرار می گیرد . محتوی کلمه ای از حافظه که دومین عملوند آدرس آن را مشخص می کند بدون تغییر باقی می ماند.
دستورات نوع RS
فرمت این دستورات در شکل زیر ارائه شده است. اولین عملوند آن R1 است و آدرس دومین عملوند که در حافظه اصلی قرار گرفته بوسیله B2 و D2 مشخص می گردد. سومین عملوند در ثبات R3 قرار دارد. دستورات نوع RS تنها دستوراتی هستند که دارای سه عملوند می باشند . البته دستوراتی از نوع RS وجود دارند که عملوند سوم ندارند در این دستورات بیت های 12-15 ندیده گرفته می شود.

به عنوان مثال دستور 9868C024 از نوع RS می باشد رمز دستور ، 98 به معنی بار کردن متعدد است . اولین عملوند ثبات 16 است . سومین عملوند ثبات 8 است . دومین عملوند بوسیله ثبات پایه C و تفاوت مکان 024 مشخص می گردد . اگر محتویات ثبات C برابر 00007404 باشد ، آدرس موثر دومین عملوند 007428 خواهد بود . در اجرای این دستور محتویات تمام کلمه های متوالی حافظه که از آدرس 007428 شروع می شوند در ثباتهای 6 و 7 و 8 کپی می گردند .
Reg6 ß [ 00 74 28 – 00 74 2B]
Reg7 ß [ 00 74 2C -- 00 74 2F]
Reg8 ß [ 00 74 30 -- 00 74 33]
محتویات عملوند دوم که در حافظه قرار دارد بدون تغییر باقی می ماند .
آشنایی با زبان ماشین در کامپیوتر های آی بی ام 360-370
در فصل گفتیم که واحد کنترل شونده در یک کامپیوتر ، دستورالعمل است. دستورات بصورت عددی رمز بندی شده و در حافظه اصلی قرار دارند. مجموعه ای از دستورات که به ترتیب خاصی اجرا می شوند تشکیل یک برنامه را می دهند ، و در حقیقت عمل برنامه نویسی یعنی نوشتن دستورالعمل ها بر اساس الگوریتم از پیش تعیین شده است . هر دستور شامل یک رمز دستور است که نوع عملی را که باید توسط کامپیوتر انجام گیرد مشخص می نماید. همچنین دستورات شامل آدرس های عملوند ها هستند ، که خانه هایی از حافظه یا ثباتهائی را که در عملیات کامپیوتر شرکت می نمایند مشخص می کنند.
دستورالعمل ها بر حسب زیر سیستم هائی که سروکار دارند می توان به طریق زیر دسته بندی نمود :
دستورالعمل های محاسباتی : این دستورات اط طریق زیر سیستم کنترل ، دستور اجرای عملی را به قسمت محاسبه و منطق صادر می کنند.
دستورالعمل های ورودی- خروجی : این دستورات با وسائل ورودی و خروجی سروکار داشته و به کمک آنها ، اطلاعات از وسایل جانبی مثل صفحه کلید ، دیسک و غیره دریافت می شود و به چاپگر ، دیسک و یا صفحه تلویزیون ارسال می گردد.
دستورالعمل های انتقال اطلاعات : این دستورات با حافظه اصلی سروکار داشته و اطلاعات را از یک مکان به مکان دیگر در حافظه منتقل می کند ، که گاهی نیز در حین انتقال تغییر مختصری در اطلاعات می دهند.
دستورالعمل های کنترل : این دستورالعمل ها جریان عادی اجرای دستورات را عوض می کند و اینکار با تغییری که در کلمه وضعیت برنامه داده می شود انجام می گیرد . از انواع معمول و مهم دستورالعمل ها ی کنترل ، دستورات نوع انشعاب شرطی می باشند که اجرای آنها یک آزمون روی کلمه وضعیت انجام داده و سپس بر حسب اینکه نتیجه آزمون چه باشد ، دستورالعمل بعدی (جریان عادی) و یا دستورالعمل دیگری در محل دیگری از برنامه اجرا می گردد. اهمیت این نوع دستورات در این است که می توان بوسیله آن در برنامه حلقه تکرار ایجاد نمود و همچنین تصمیم گیری کرد. در قسمت بعد نحوه آدرس دادن به عملوند ها را توضیح می دهم .
ادامه مطلب...
فصل دوم : زبان ماشین
در زبان ماشین دستورات به صورت مجموعه ای از صفر و یک می باشند . در این زبان دستورالعمل ها و داده ها به نحوی است که مستقیما توسط سخت افزار کامپیوتر قابل تفسیر و اجرا هستند. هر دستور در زبان ماشین دارای یک قسمت به نام رمز دستور و یک یا چند قسمت دیگر بنام عملوند یا آدرس عملوند می باشد .
رمز دستور ، نوع عملی را که دستور العمل باید انجام دهد تعیید می نماید . قسمت کنترل کامپیوتر از رمز دستور نوع عمل را تشخیص می دهد و مدارهای محاسباتی مربوطه را در واحد محاسبه و منطق راه اندازی می نماید. زبان ماشین به ساختمان سخت افزاری ماشین بستگی داشته و بنابراین در کامپیوتر های مختلف با یکدیگر فرق می کند. ولی امروزه با توسعه ریز برنامه سازی وابستگی زبان ماشین به ساختمان کامپیوتر تا حدودی کاهش پیدا کرده است .
ادامه مطلب...
ادامه فصل اول
نمایش اطلاعات و ساختار حافظه
سیستم های آی بی ام در اصل کامپیوتر های دودویی هستند که در آنها اعداد و آدرسها به شکل دودویی نمایش داده می شوند گفتم که یک بیت ، کوچکترین واحد فیزیکی حافظه است که می تواند رقم صفر و یا یک را در خود نگهداری نماید. یک گروه 8 بیتی تشکیل یک بایت را می دهد. در این کامپیوتر ها کوچکترین واحد آدرس پذیر حافظه را بایت گویند. هر بایت دارای آدرسی منحصر به فرد است. چون یک بایت 8 بیت است. بنابراین می تواند 2^8=256 حالت مختلف ، از 0000 0000 و 1111 1111 را نمایش دهد. و نیز قادر است 2 رقم مبنای 16 را در خود نگهداری نماید. به همین دلیل لیست روخوانی محتویات حافظه را بصورت ارقامی مبنای 16 تهیه می نماید.
آدرسها در کامپیوتر های مزبور اعداد 24 بیتی هستند. در نتیجه ، آدرس عددی بین 0 تا 2^24-1 (16777215) می باشد. این آدرس بندی را آدرس بندی مجازی می نامند. فضای آدرس هر برنامه می تواند از گنجایش حافظه اصلی بیشتر باشد. برای هر برنامه یک الی چند آدرس توسط سیستم عامل تهیه شده و بر روی دیسک قرار می گیرد. هنگام اجرای یک برنامه ، قسمتی از این فضای آدرس توسط سیستم عامل به داخل حافظه اصلی بار می گردد: نگاشت آدرس مجازی به آدرس واقعی نیز به عهده سیستم عامل می باشد. در بعضی از مدلهای ماشینهای آی بی ام آدرسها 31 بیتی می باشند. در هر کامپیوتر
ادامه مطلب...










