More Related Content Similar to Documention (20) More from Mohammad Amin Amjadi
More from Mohammad Amin Amjadi (15) Documention1. کرمانباهنر شهید دانشگاه
یبازRiver Raidبانزبهاسمبلی8086
اراج و احیرط:
امجدی امیند ّمحم مضانیر احسان
امیرگ استاد:
جمشیدی وحید مهندس
تحصیلیساللاونیمسال91-90
2
2. فهرست
لاو بخش
صفحه
اسمبلی نامهرب یکساختار9
یبازمختلفهایندور10
سیجروپریاوماکر11
سیجروپروماکر13
اشیاء احیرط انواع14
اشیاءدینامیکی احیرط15
یباز ایندرمااشیاء16
صفحهکردنحرکت ینحوه17
سوختقسمت20
3
عنوان
12. سیجروپر وماکر:
Test Macro p1,p2,p3,…
pushA
Mov ax,p1
.
.
.
Call Test1
popA
Endm
Test1 proc
;…
Ret
Test1 endp
نکته:یک فراخوانی بار چندین صورت در
دستور از میتوان ماکرو.SALLنمود استفاده.
13
17. کردن حرکت ی نحوهصفحه:
یبازنوشتنهایشور:
1)هواپیما دادن حرکت:پایوباالواستروچپبهتواندمیهواپیماشوراین درین
پشتو هاحاشیهو کندمیحرکتاستر وچپسمت بهفقطموانعو کندحرکت
صفحدر نقطهباالترین بههواپیما کههنگامی بهو ،هستندثابتمینهزپشت ،برسد ه
اسایروموانعو ،میگیرد اررقصفحهپاییندرهواپیماوکرده تغییرمینهزمکاندر شیا
گیرندمی اررقخودمناسب.
18
18. کردن حرکت ی نحوهصفحه:
یبازنوشتنهایشور:
2)صفحه دادن حرکت:ودوبراسترو چپبهتواندمیفقطهواپیماشوراین در
حرایرداهمها حاشیهونمایندحرکتپایینوباالواستروچپبه اشیاسایرور کت
شودمی باالبهصفحهحرکت موجب که ،هستند پایینبه.
صیسازپیادهعدمترصودرو ،بودهترپیچیده قبلشوربهنسبتشوراینو حیح
بودخواهدیترپایینسرعتایردامناسب.
19
23. برنامه احیرطPixer:
24
که بود این داشتیم اسمبلی بانزبا که مشکالتی گترینربز از یکییک نمایش ایرب
توابع از یا و نمائیم شنور ار آن پیکسل به پیکسل بایستی می عکسApi
توابع این از استفاده به مجاز هژوپر این انجام ایرب و نمائیم استفاده، نبودیم
بانزبه توانستیم مشکل این فعر ایربC#قادر که نمائیم احیرط ار ای برنامه
نماید تبدیل اسمبلی کدبه اری عکس هراست.
24. ارزاف نرم توسط احیرط از بعد مشکالتpixer:
بواینشدیممواجهآنبا ،یبازایناحیرطایرب کهمشکالتیازدیگرازیکیدر کهد
.Codeازاستفادهوتعریفبا ،بودسیدهرخودگنجایش سقفبهاصلی.Codeهای
دیگرمدتیاز پسا ّام،شدحلمدتیایربمشکلماندیگر.Codeجدیدی
نمائیمتعریفنمیتوانستیم.
نمائیمتصل یکدیگربهاربرنامهچندیننمودیم سعیمشکلاینفعرایربباو ،م
link,libشدیم آشناو.
25
25. شزآموlink,lib:
نکته:که هاییبرنامهpublicفاقدندرداstackوmain procآخر ودراندendندردا.
مهمان برنامه
Public test
.model small
.data
;…..
.code other
Test proc
;…
RET
Endp
END
میزبان برنامه
Extern test:far
.model small
.stack 1000
.data
.code
Main proc
;using test as a usual routine
Main endp
END main
فایل اخوانیرفLst
Includelib test.lib
Extern test:far
.model small
.stack 1000
.data
.code
Main proc
;using test as a usual routine
Main endp
END main
ارزاف نرم توسط احیرط از بعد مشکالتpixer:
26
26. خطاها انواع:
_textکد قطعه لطو بودن طوالنی.
Fatal error A1010خطوط تعدادماکزیمم.
L1093فایلاسم بودن طوالنی.asm
A2088نگذاشتنترصو درEnd Main.
L4038گذاشتنترصودرENDکه ای برنامه درmain procدردا.
_DATAیکلمه نگذاشتنترصو درmacroوماکر تعریفدر.
27
28. 29
ن بندی دسته دهیم انجام بایستی میکه ار هاییرکا یباز نوشتن ایربکه مودیم
شود می یساز پیاده و احیرط اصلی قسمت دو شامل.
نم ، موانع، هواپیما مانند، داشتیم نیاز که ارآنچه هر احیرط قسمت درایشگر
نمودیم احیرط ار احلرمهرشما وسوخت انزمی.
واشیا از یک هر حرکت همچنین و یباز کلی ندور ، یساز پیاده قسمت درسایر
نمودیم یساز پیاده ار جزئیات.
29. احیرط
افیکیرگ اتردستو:
بدهیم تغییر ار رمانیتو مد باید افیکیرگاتردستو با کار ابتدای در.درهایی برنامه
افیکیرگ ومد متن مد کلی دونوعما شوند مینوشته اسمبلی بانز با کهرمانیتو ایرب
یمردا.
30
32. احیرط
متن مد(Text: )
در ار خود نظر درمو متنچاپ اتردستواز استفاده با توان میحالت این در
مان یصفحه پیکسلهای با توانید نمی ولی کنیدچاپ رمانیتو ی صفحهکار ریتو
میخطا برنامه اتردستو این از استفاده ترصو ودر کنیمدهد.
33
33. احیرط
افیکیرگ مد:
م ابتدا باید کنیم استفاده افیکیرگ مد اتردستواز بتوان اینکه ایرببه ار رمانیتو د
دادتغییر افیکیرگ مد.مانیترد واحد کوچکترینبا ما افیکیرگ حالت دریعنی رو
کنیم می کار پیکسل.پی تعداد ونگهار تعداد افیکیرگ مد از حالت هر درکسلها
هستند متفاوت.افیکیرگ مد مثال ایرب12Hو13Hیباز این ساخت در که ار
توان میازکنیممی معرفی کرد استفاده آنها.
34
40. احیرط
استفاد یرز ردستو از رمانیتوصفحه در پیکسل یک کردن شنور ایربه
میکنیم.مختصات(x,y)در ارCXوDXدر ار پیکسل نگروALمی اررق
در ار صفحه هرشما و دهیمBHدهیم می اررق.
Mov CX,x
Mov DX,y
Mov BH,0
Mov AL,color
Mov AH,0CH
INT 10H
41
42. احیرط
سمر تابعاستر به چپ از خط(LineLtoR)دلخواه نگر با:
LineLtoR macro x1,y1,x2,y2,color
Local Back
PushA
Mov CX,x1
Back :
Point CX,y1,color
INC CX
CMP CX,x2
JNE Back
Point CX,y1,color
PopA
endm
43
43. احیرط
صفحه یساز پاک(ClearScreen):کلگرداند می پاک ار نمایش صفحه.
Cls macro Color
PushA
Mov Ax,0600H
Mov CX,0000H
Mov DH,30
Mov DL,88
Mov BH,Color
INT 10H
PopA
endm
،وماکر این سرعت بودن باال بدلیل
پی از یادیز تعداد به بخواهیم که مانیزکسل
دهیم نسبت ار نگیر،صفحه های
نمائیم می استفادهوماکر ایناز.
44
44. احیرط
متحرک اشیاء احیرط(تی ، بنزین پمپ ، کشتی،کوپتر هلی ، هواپیمار:)
الف)متحرک ی ش چندین یباز ندور در و هستند حرکت ایردا اشیا این نچو
گونهبه آنها ی کدنویسو احیرط باید ، میشود داده نمایش همزمان ربطوکه باشد
جهتباشند داشته نیاز ار ممکن مانز کمترین نمایش.
میباشحلقه از استفاده سرعت گیرچشم کاهش عوامل از یکید
و مربع،خط هایوماکر نچو و...قسمتدر هستندحلقه ایردا
ننمائیم استفادهحلقه از که نمودیم سعی احیرط.
45
45. احیرط
متحرک اشیاء احیرط(تی ، بنزین پمپ ، کشتی،کوپتر هلی ، هواپیمار:)
ب)ما تربصو اگر ، میشوند داده نمایش هاربا اشیا این یباز ندور در نچووکر
و برنامه حجم شدن یادز باعث شوند نوشته...میشوند.
ما نچو و نمودیم استفاده سیجروپر ازمشکالت این فعر جهتوکر
،داد نسبت امتررپا آنبه میتوان و میباشد خواناتر
عرو لطو مقادیروماکرکه، نمودیم استفاده سجروپر وماکرازض
میدهد اررقمربوطهجیسترهایر در اری شبه مربوط.
46
46. احیرط
متحرک اشیاء احیرط(تی ، بنزین پمپ ، کشتی،کوپتر هلی ، هواپیمار:)
ج)نم واقعدر که شدن جابجا هنگامبه هستند حرکت ایردااشیا این نچوایش
دی قبلی مکان در همچنانآنها از قسمتی یا و کل ،است دیگر مکان در آنهاده
میشود.
گونهبه ار ی ش هربه مربوط های سیجروپر مشکلاین فعر ایربای
دردا ارخودش حاالت تمام نمودن پاک قابلیتکه نوشتیم.
*نوشتیم سیجروپر یکی ش هرحاالت ازکدام هر ایرب.
47
47. احیرط
متحرک اشیاء احیرط(تی ، بنزین پمپ ، کشتی،کوپتر هلی ، هواپیمار:)
د)دیگری شبه دربرخو هنگامبه اشیا این نچو(تیر به موانع)نم بایدداده ایش
نگر بجز نگیر از کهجا هر ، ی ش هر احیرط در، کندپاک ار خودش و نشود
م وماکرو نمودیم استفاده جیسترر از ، بود شده استفاده مینهز پشت، ربوطه
ق مربوطه جیسترهایر در ارآن اصلی های نگر ی ش بودن اکتیو ترصو درارر
ش شدن پاک جهت ار مینهز پشت نگر ، بودن اکتیو دی ترصو در و، میدهدی
میدهداررق مربوطه جیسترهایر در.
48
48. احیرط
متحرک اشیاء احیرط(تی ، بنزین پمپ ، کشتی،کوپتر هلی ، هواپیمار:)
ن)ماک ایرب باشد هم حرکت سرعت ایردای ش هر میخواستیم کهآنجایی ازیور
سر امتررپا میکنند حرکت استر وچپ سمت به که هاییی شبه مربوطدر عت
ایشزاف ، سرعت با متناسب اری ش لطو امتررپا که، گرفتیم نظر(کادر هش
چپ سمت به حرکت هنگام)میدهد.
باشد می یباز کلی سرعتبهوابسته های شی عرضحرکت.
49
49. احیرط
سوخت انزمی نمایشگر احیرط:
الف)شده گرفته نظر در های سوخت انزمی5،10،20،40،60،80،100میباشد
قبل هایقست شامل قسمت هرکهآنجایی از و بوده سجروپر یک هرکدام کهاز
نظر صرف قبلی های قسمت نوشتن از میباشدنیز خودم توسط و نمودیمیواکر
اخرف مقدار با متناسب سیجروپر آنکهرب عالوه و گرفته ار مقدار مربوطهشده وانی
مینمایداخوانیرفنیز ار کمتر مقادیر به مربوط سجرهایوپر ،.
مثالربطو:سجروپر80سجرهایوپر به مربوط هایقسمت
60و40و20و10و5درندا ار استخودش از قبلکه.
50
50. احیرط
سوخت انزمی نمایشگر احیرط:
ب)نمائیم پاک ار قسمت هر بتوانیم کهاست مزال کهآنجایی از(ک ترصو دراهش
سوخت انزمی)، نموده استفاده جیسترر از نگر بجای مربوطه سجرهایوپرو
میدهداررق مربوطه جیسترهایر در ارمناسب های نگرمربوطه یوماکر.
51
51. احیرط
احیرطاحلرمهرشما:
نوشتن ایرب سجروپر یک«Stage»تا یک اعداد ایرب هم تا نه و نوشتیم9.
د، نمائیم پاک ار مرحلههرشما وقفو متنهرشما بتوانیم باید کهآنجا ازر
شم وماکر یک بوسیله و نموده استفاده جیسترر از نگر بجای سجرهاوپرمرحلههرا
ق مربوطه جیسترهایر در ار مربوطه های نگر همچنینو داده نمایش ار متن وارر
میدهیم.
52
52. یساز پیاده
هواپیما یساز پیاده:
چپ یا نرمال که حالتشنیز و مختصات ایرب امتررپا ایردا هواپیما یوماکربه
باشد می ، است چپ به استر یا و استر.
53
53. یساز پیاده
کشتی یساز پیاده:
استر به چپ که حالتش نیز و مختصات ایرب امتررپا ایردا کشتی یوماکریا و
باشد می، بودن اکتیو وضعیتونیز، است چپ به استر.
س نیز و اکتیو ، حالت، مختصات امترهایرپا ایردا دینامیک کشتی یوماکررعت
هو هاحاشیه به که نموده ی سربر ار مختصات همچنین وماکر این ؛ میباشدمچنین
نشود درواسوخت انزمی و اتزامتیا نمایش محل.
54
54. یساز پیاده
کوپتر هلی یساز پیاده:
حالت نیز و مختصات ایرب امتررپا ایرداکوپتر هلی یوماکر1یا و استر به چپ که
حالت ، است چپ به استر2ونیز ، است باال جلو بال یا و پایین جلو بال که
باشد می ، بودن اکتیو وضعیت.
حالت ، مختصات امترهایرپا ایردا دینامیک کوپتر هلی یوماکر1،
حالت2سربر ار مختصات همچنین وماکر این ؛ میباشدسرعت نیز و اکتیو ،ی
درواسوخت انزمی و اتزامتیا نمایش محل همچنین و هاحاشیهبه که نمودهنشود
.
55
55. یساز پیاده
بنزین پمپ یساز پیاده:
، بودن اکتیو وضعیت و مختصات ایرب امتررپا ایردابنزین پمپ یوماکر
باشد می.
سنیز و اکتیو ، مختصات امترهایرپا ایردا دینامیکبنزین پمپ یوماکررعت
هو هاحاشیه به که نموده ی سربر ار مختصات همچنین وماکر این ؛ میباشدمچنین
نشود درواسوخت انزمی و اتزامتیا نمایش محل.
56
56. یساز پیاده
سوخت انزمی یساز پیاده:
باشد می مقدار امتررپا ایرداسوخت انزمی یوماکر.
متغیی، سوخت انزمی لکنتر نمایش بر عالوه سوخت انزمیتغییر یوماکرمربوط ر
نماید می لکنتر ارسوخت انزمیبه.
57
57. یساز پیاده
احلرمهرشما نمایش یساز پیاده:
بوده مرحلههرشما امتررپا ایردا، احلرم هرشما نمایش یوماکر.
، نمایش صفحهوسط در تقریبااحلرمهرشما
درندا مختصات گرفتنبه ینیاز پس ؛ شودمیداده نمایش
58
58. یساز پیاده
ندر تابع یساز پیاده:
همانند ها متغییراز یبسیار که خواهیم می یباز ندور درکهآنجایی از
و هاحاشیه هزاندا ، موانع اولیه مکان...نر وماکر، باشد تصادفی تربصوار د
نوشتیم.
قط ربطو نمیتوان که یمردا عددی به نیاز تصادفی عدد دنرآو بدست ایربگفتع
بدانیم ارآن حدود که هرچند،است چند آن مقدار که.
؟ یمرآو بدست یرچطو ار عدد این اما!
استفاد سیستم مانزاز کهاست این دردا وجود که مرسومی های شوراز یکیه
میدانیم ار حدودش آنکه با دردا یمقدارچه نمیدانیم قطع ربطو که نمائیم.
59
59. یساز پیاده
ندر تابع یساز پیاده:
ردستواز سیستم مانز خواندن ایرب2chوقففه21hنمودیم استفاده:
mov ah,2ch
int 21h
در ساعت مقدار وقفه این از استفاده از پسChدر دقیقه ،Cl،
در ثانیهDhدر ثانیه صدم وDlمیگیرد اررق.
60
60. یساز پیاده
ندر تابع یساز پیاده:
•هزبا در تصادفی عدد دنرآو بدست های شور[a,b]:
(
تصادفی عدد
تصادفی حداکثر عدد
∗ (b−a) )+a (الف
%تصادفی عدد) b−a+1 ) + a (ب
61
61. یساز پیاده
ندر تابع یساز پیاده:
•هزبا در تصادفی عدد دنرآو بدست های شور[a,b]:
ج)خوانده ار مانز دو کهاست این ، ایم نموده یساز پیاده ماکه یدیگر شورو
شیف نوع خود نبودن مشخصجهت و نمودیم استفاده شیفت عمل از سپس، ت
فویرز بعدی های شیفت ایرب در و نموده استفاده چپ به شیفت از ابتدالگ(ZF)
ب هزبا لطو از حاصل عدد که نمود ی سربر باید آخر در و، نمائیم می ی سربر اریشتر
حداکث و هزبا لطو بین اختالف هزاندا به بودن بیشتر ترصو در و نبودهاز ، مقدار ر
نموده جمع هزبا ابتدای با سپس و نموده کم حاصل عدد.
62
62. یساز پیاده
کلید صفحه سیجروپر یساز پیاده:
یباز سرعت لکنتر و هواپیما حرکت:
کلیصفحه بافر محتوایکه داشتیم این یه نیاز یباز یساز پیاده ایرببخوانیم ار د
ردستواز استفاده با ابتدا کار این ایرب ؛11hوقفه16hبافر که نمائیم میی سربر
ردستو از بافر نبودن خالی ترصورد؛ نه یا واست پر00hوقفه16hبافر محتوای
در که ارAhپا وباال های دکمهاسکن کدهای با مقایسه با و خوانده دردااررقیین
ح استر وچپ اسکن کدهای با مقایسه با و نموده لکنتر ار یباز ندور سرعترکت
نموده لکنتر ار هواپیما.
63
63. یساز پیاده
کلید صفحه سیجروپر یساز پیاده:
مشکالت برخی جواب در:
همانند هاییردستو از کهوقتی06Hوقفه21Hبا هواپیما حرکت نمودیم استفاده
راسکی کداتردستو این کهاست این امر این دلیل و بود شده مواجه مشکلدر ا
ب و یکسان یافته توسعه های دکمه تمام ایرب که میدهند اررق مانراختیاصفر ابرر
بوده.
64
64. یساز پیاده
کلید صفحه سیجروپر یساز پیاده:
مشکالت برخی جواب در:
فشردی می ار ای دکمه بار چند کهوقتی که بود این مشکالت از دیگر یکیم
باف کهوقتیکهاست این هم امر این دلیل و، شد می مشکل دچار یباز ندورار ر
کنیم خالی ار بافر باید خواندیم.
65
65. یساز پیاده
برخود یساز پیاده:
ن یا و اند نموده دربرخو مانعیبه تیر یا و هواپیماکه بدانیم اینکه ایربکافی ، ه
خطر نقاط که است(بالهایش دوسر و نوک هواپیما در)آ که نموده ی سربر ارنگیر یا
نه یا و ندردا مینهز پشت نگر بجز.
مختصات کار این ایرب(x,y)در ار(cx,dx)ردستو از و دادهاررق0dhوقفه10h
در نگر کد و نمائیم استفادهalمیگیرداررق.
، میدهد انجام هواپیما ایرب ار عمل این هواپیما انفجارسجروپر
سوخت انزمی ایشزافجهت بنزین پمپی سربر همچنینو
66
66. یساز پیاده
سوختن هنگام در هاکوپتر هلی یساز پیاده:
ک حرکت بالهایشان همچنان های کوپتر هلیکه خواستیم سوختن از پسایرب ند
بالهایش حالت کوپتر هلی نمایش از پس که نوشتیم ار ییوماکرکار اینتغییر ار
میدهد.
67
67. یساز پیاده
هاحاشیه یساز پیاده:
نوشیتی ار حاشیه وماکر کنند تغییر هاحاشیه مرحله هردر اینکه ایرببا که م
ب و نموده ی برس ارآن و نموده ایجاد ار تصادفی عدد ، ندر وماکراز استفادهایزا ه
تصادفی عدد مختلف مقادیر(ای هزبا تربصو)حاشلطو به خاص مقدار یکیه
دهد می نسبت.
68
68. یساز پیاده
یباز سرعت یساز پیاده:
ک نوشیتیم ار سرعت وماکر کنندتغییر سرعت مرحله هردر اینکه ایرببا ه
ب و نموده ی برس ارآن و نموده ایجاد ار تصادفی عدد ، ندر وماکراز استفادهایزا ه
تصادفی عدد مختلف مقادیر(ای هزبا تربصو)ب سرعت به خاص مقدار یکیاز
دهد می نسبت.
69
69. یساز پیاده
انتظار وماکر یساز پیاده:
میتو که داشتیم نیاز انتظار یا وقفه یک به که بود شده هاربا یباز دراین ایرب ان
سیس مانز با آنقدر ار وماکرعوشر مانز یا و نمائیم استفاده هاحلقه از کارتم
برسد نظر درمو مقداربه که نمائیم مقایسه.
70
70. یساز پیاده
یباز سرعت لکنتر یساز پیاده:
فشردن با و، نمودیم استفاده انتظار وماکراز سرعت لکنترجهت یباز درکلید
کند می تغییر انتظار انزمی پایین یا و باال.
کجهت، شود میبیشتر یباز سرعت دور میبین از مانع یک که هنگامی درلنتر
ائیمزاف می انتظار انزمی به هنگام این در سرعت.
71
71. یساز پیاده
یباز ندور یساز پیاده(1: )
بنزین پمپ و کشتی، کوپتر هلی تاسه یباز در(کدام هر از3تا)مرحله هر در یمردا
تصادفی تربصو هاحاشیه لطو و یباز سرعت و موانع سرعت و مکان ابتدامقدار
مقمرحله هرحاشیهسمر ایرب ؛ میشوندسمر هاحاشیهسپس میشوند دهیدار
و کنیم می مقایسهقبل مرحلهحاشیه لطو با ار فعلی مرحلهحاشیه لطودر
خط سمر به عوشر بود تر برگ ترصو(چپ به استر از)نم میسبز نگربا وو ائیم
حاشی تا نمائیم میسمر مینهز پشت نگر همخط بودن تر کوچک ترصو درهای ه
ب ای گونهبه شوند میسمر پایین به باال از ها خط نچو و شوند پاک قبلینظر
آید می پایین صفحه که میسد!!؟
72
72. یساز پیاده
یباز ندور یساز پیاده(2: )
ب میتوان کهاست یباز سرعت همان همسر پشت در خطوط سمر سرعت پسا
د که موانع ی عرض مکانسپس و نمود لکنتر ارآن انتظار وماکراز استفادهایرا
ف ار هایشانوماکر و میدهیمایشزاف ار هستد منفی ابتدایی ی عرض مکانار
مز تا و اند صفحه داخل ها مانع کهشود میمالحظه مدتی از بعد ، میخوانیمکه انی
مان هرکهوقتی، درداادامه ندور این نریسده صفحه پایین به مانع آخرینبه عی
ش نمی داده نمایش صفحه در دیگر و شده اکتیو دیمیرسد صفحه پایینپس و ود
هواپیم و موانع مقادیر وشده اخوانیرف مجددعوشر وماکرمرحله این اتمام ازو ا
...یابد می ادامه یباز سپس و کند می تعیین ار
73
73. یساز پیاده
یباز ندور یساز پیاده(3: )
اولیه سوخت مقدار که داشت توجه باید100و یافته کاهش مرحله هر در و بوده
اب در همچنین و شوند سوخت انزمی ایشزاف باعث میتوانند ها بنزین پمپهر تدای
شده اخوانیرف مرحلههرشما نمایش به مربوط وماکر مرحله.
ت شده اخوانیرف سوختن هنگامکوپتر هلیحلقه یک در سوختن هنگام درکه مانیز ا
شود فشرده یباز مجددعوشر یا و اتمام کلید.
اخوانیرف کلیدصفحه سجروپر موانع آمدن پایین هنگامبه ومرحله هر درو شده
نماید میی سربر ار دنز تیر عملیات و هواپیما مکان و یباز سرعت.
74