PDA

View Full Version : یک بازی با اسمبلی



hassan_kahrizy
جمعه 06 خرداد 1384, 05:43 صبح
بسمه تعالی
سلام علیکم
امروز می خواهم تکلیف هفته گذشته درس اسمبلی که یک پازل هست قرار بدم
امیدوارم مفید باشه

aakh1361
دوشنبه 09 خرداد 1384, 12:17 عصر
جالب بود :موفق: :تشویق:

ali643
سه شنبه 10 خرداد 1384, 20:07 عصر
آقا توضیح بده توش چی کار کردی که :mrgreen: به استاد ارائه بدیم :mrgreen:

hassan_kahrizy
چهارشنبه 11 خرداد 1384, 06:43 صبح
بسمه تعالی
سلام علیکم
در این برنامه ما ابتدا جدول خود را با نام sheklمقدار دهی می کنیم و سپس در زیر آن جدول درست را وارد می کنیم
هر بار از کاربر یک کلید می گیریم
چک می کنیم که امکان جابه جای در جدول وجود دارد یا خیر و در صورت امکان خانه ها جدول را تغییر داده و نمایش می دهیم و چک می کنیم که آیا جدول درست شده یا خیر و در صورت درست شدن خارج شده و در غیر اینصورت دوباره منتظر کلیذ می مانیم

اگر کافی نبود بیشتر توضیح دهم

مهدی
پنج شنبه 12 خرداد 1384, 19:44 عصر
خوب بود :موفق:

abdollahi
شنبه 14 خرداد 1384, 19:06 عصر
خوب بود

hassan_kahrizy
یک شنبه 15 خرداد 1384, 05:16 صبح
بسمه تعالی

خواهش می کنم

قابل نداشت

compiau
چهارشنبه 05 مرداد 1384, 06:42 صبح
بسمه تعالی
سلام علیکم
امروز می خواهم تکلیف هفته گذشته درس اسمبلی که یک پازل هست قرار بدم
امیدوارم مفید باشه
;kl;klkklopopu9875545rtu8iy987pokjj

arshia_
چهارشنبه 05 مرداد 1384, 17:22 عصر
جدی است یه سرکاری؟:-/

hassan_kahrizy
یک شنبه 09 مرداد 1384, 02:53 صبح
بسمه تعالی
با سلام خدمت دوستان
متاسفانه در قروم جدید قایل ها حذف شده که دوباره آپلود می کنم
این یک برنامه دست گرمی بود

Ariyan
جمعه 04 شهریور 1384, 02:07 صبح
فکر کنم ایراداتی داره
به تصویر ضمیمه نگاه کنید !!!؟؟؟

hassan_kahrizy
شنبه 23 مهر 1384, 07:02 صبح
بسمه تعالی
با سلام
یک ایرا کوچیکه چون من نمی تونستم کاملش کنم اون رو به این ترتیب در آوردم کافی است در سورس برنامه درستش کنید.

shabpareh64
شنبه 15 خرداد 1389, 22:38 عصر
سلام
بازیتون جالبه.
ممنون
فقط میشه مشکل این ردیف آخرو حل کرد که اعداد به ترتیب از 13 و از سمت چپ سر جاشون قرار بگیرین ؟
چطوری میشه ؟

hassan_kahrizy
شنبه 15 خرداد 1389, 23:11 عصر
بسمه تعالی
سلام
بله کافیه اون اعدادش رو جابجا کنید

shabpareh64
دوشنبه 17 خرداد 1389, 22:34 عصر
سلام
میتونم خواهش گنم یک توضیح کامل از طرز کار و کدهای موجود در این برنامه رو به من بدید ؟
واقعاً ممنون میشم اگه اینکارو کنید.
خیلی نیاز دارم.
اگه تونیستید بگید تا من ایمیلمو بهتون بدید.
ممنون میشم.

hassan_kahrizy
سه شنبه 18 خرداد 1389, 00:05 صبح
بسمه تعالی
سلام علیکم
در این برنامه ما ابتدا جدول خود را با نام sheklمقدار دهی می کنیم و سپس در زیر آن جدول درست را وارد می کنیم
هر بار از کاربر یک کلید می گیریم
چک می کنیم که امکان جابه جای در جدول وجود دارد یا خیر و در صورت امکان خانه ها جدول را تغییر داده و نمایش می دهیم و چک می کنیم که آیا جدول درست شده یا خیر و در صورت درست شدن خارج شده و در غیر اینصورت دوباره منتظر کلیذ می مانیم

اگر کافی نبود بیشتر توضیح دهم

دوست عزیز این برای 5 سال پیشه و من الان حضور ذهن ندارم
باور کن اصلا این سورسش رو هم ندارم
بازم اگر توضیحات بالا کمکت نکرد بگو سورسشو بخونم شاید بتونم کمکتون کنم

shabpareh64
سه شنبه 18 خرداد 1389, 23:48 عصر
می دونم که واسه 5 سال پیشه.
ولی اگه بتونی یک وقتی بزاری و سورسشو بخونی توضیحاتشو بم بدی واقعاً یه دنیا ممنونت میشم.
این لطفو در حقم بکن.

hassan_kahrizy
چهارشنبه 19 خرداد 1389, 01:19 صبح
بسمه تعالی
با سلام
دوست عزیز من چه در دوران دانشجویی چه الان بنا ندارم با گذاشتن سورس یا حتی دادن آن زمینه تقلب رو پیش بیارم ولی معتقد به تبادل افکار و راهنمایی هستم پس نکات و ساختار کلی را عرض می کنم شما هم زحمت بکشید به دقت چند با ر سورس را بخوانید حتما متوجه می شوید.

ببیند ما دو تا آرایه داریم که یکی شکل SHEKL و دومی CORRECT است که ما اولی را نمایش می دهیم و با بالا پایین کردن مکان نما عملا شما محتویات آرایه SHEKL را عوض می کنیم و هر دفعه با آرایه CORRECT مقایسه می کنیم اگر برابر شده بود یعنی درست چیده شده است

الگوریم برنامه رو خدمتتون گفتم
حالا برای بقیه و بحث اینتراپت ها هم با مطالعه سورس و کتاب های مربوطه به راحتی مطلب برای شما روشن خواهد شد

shabpareh64
چهارشنبه 19 خرداد 1389, 11:30 صبح
بله میدونم.
من قصد جسارت نداشتم.
ولی بازم ممنونم از شما.
من فقط طرز کار چند تا از وقفه ها رو بلد نبودم.
بازم تشکر از زحمات شما
ممنون

1485159
چهارشنبه 19 خرداد 1389, 15:40 عصر
سلام
با اسمبلی هم میشه با opengl(کتابخانه گرافیکی) ارتباط برقرار کرد؟

hassan_kahrizy
چهارشنبه 19 خرداد 1389, 18:26 عصر
بسمه تعالی
با سلام

بله میدونم.
من قصد جسارت نداشتم.
ولی بازم ممنونم از شما.
من فقط طرز کار چند تا از وقفه ها رو بلد نبودم.
بازم تشکر از زحمات شما
ممنون

من قصد ناراحت کردن شما رو نداشتم ولی دوست عزی وقفه ها که چیزخاصی نیستند فقط گرفتن کلید از صفحه کلید و نمایش شکل در صفحه است این هم که خیلی ساده است

مرجع وقفه های 8086:
http://www.farsilearning.com/2008/04/18/interrupts-8086.html
http://forum.webalfa.net/thread-3176.html

اصلا سخت نیست باور کنید
یک ذره تمرکز کنید و وقت بزارید مشکلتون حتما حل می شه در ضمن می تونید این برنامه رو ارتقا بدید تا دوستان دیگه هم استفاده کنند
موفق باشید

salmanbnd
سه شنبه 25 خرداد 1389, 05:20 صبح
سلام
می خواستم بدونم چرا کدهایی که به ما یاد دادن با کد هایی که شما از اونها استفاده کردید زمین تا آسمون فرق می کنه؟! اسمبلر فرق می کنه؟ به ما 80386 یاد دادن...

hassan_kahrizy
سه شنبه 25 خرداد 1389, 17:50 عصر
بسمه تعالی
با سلام
نمی دونم به شما چی یاد دادن این با 8086 نوشته شده است
خود من هم 5 سالی هست دست به اسبلی نزدم
چون نیازی بهش ندارم
فقط از ایده هایی که در آن سطح بسیار پایین داشتم گاها در جاهایی که گیر می کنم استفاده می کنم

Omid Khakshoor
جمعه 28 خرداد 1389, 12:12 عصر
سلام دوست عزيز ميشه لطف بكني كد كل برنامه رو بزاري؟؟؟
منم كد برنامه مار ميخواستم به EMU 8086 اجرا بشه
ممنون ميشم اگه خو برنامه با كد كل برنامه رو بزاري توسايت...
باتشكر

hassan_kahrizy
جمعه 28 خرداد 1389, 13:44 عصر
بسمه تعالی
با سلام
سورس و exe برنامه که در گذاشتیمش اگ به صفحه ول مراجعه می کردید بود:
http://barnamenevis.org/forum/showpost.php?p=132513&postcount=10

برنامه درخواستی شما رو هم من ندارم

salmanbnd
دوشنبه 07 تیر 1389, 13:33 عصر
سلام
مثلا جمع دو عددی که خودم نوشتم تو اسمبلی این میشه :

.386
.MODEL FLAT
ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD
INCLUDE io.h
.data
prompt1 BYTE "Enter n1: ",0
prompt2 BYTE "Enter n2: ",0
temp DWORD ?
string BYTE 11 DUP (?)
label1 BYTE "sum= "
sum BYTE 32 DUP(?)
.CODE
_start:
output prompt1
input string,11
atod string
mov temp, eax
output prompt2
input string, 11
atod string
add eax, temp
dtoa sum, eax
output label1
INVOKE ExitProcess, 0 ; exit with return code 0
PUBLIC _start ; make entry point public
END
تفاوت در چیه؟:متفکر:

hassan_kahrizy
دوشنبه 07 تیر 1389, 18:03 عصر
بسمه تعالی
با سلام
تا اونجا که یادم هست این نوع small هستش البته احتمالا از نوع 386 هستش

salmanbnd
جمعه 11 تیر 1389, 01:17 صبح
بسمه تعالی
با سلام
تا اونجا که یادم هست این نوع small هستش البته احتمالا از نوع 386 هستش

سلام
منظورتون از small چیه؟
بله 386 هست، فقط اینکه تفاوتون در چیه؟

hassan_kahrizy
جمعه 11 تیر 1389, 13:01 عصر
بسمه تعالی
با سلام
من فکر کنم این اسمبلی تحت ویندوز باشه
http://support.microsoft.com/kb/94314
http://win32assembly.online.fr/tut1.html
http://pastebin.com/gnfstrz3

مدلهاي حافظه:
Memory Models

سينتكس:

.MODEL MemoryModel

مثال:

.model tiny


انواع:
SMALL, COMPACT, MEDIUM, LARGE, HUGE, TINY or FLAT.

= = = == = = = =
مدل tiny :
در اين مدل ، يك قطعه واحد براي كد و data داريم.
اين نوع برنامه مي تواند به فايل com تبديل شود.

مدل small :
كد در يك قطعه و data در يك قطعه ديگر.
و اين به اين معناست كه تمام زيربرنامه ها و متغيرها با آدرس دهي near و فقط توسط آفست ، آدرس دهي مي شوند.

مدل compact :
كد در يك قطعه و data در چند قطعه. پس اولي near ميشه و دومي far . يعني در دومي هم آدرس قطعه لازم دارد و هم آفست. ولي اولي فقط آفست لازم دارد.

مدل medium :
برعكس compact است. يعني data ميشه near و code ميشه far .

مدل large :
هر دو far .

مدل flat :
اين مدل نياز به DOS extender دارد.

http://forum.majidonline.com/archive/index.php/t-39048.html

salmanbnd
سه شنبه 02 شهریور 1389, 07:48 صبح
سلام دوست عزیز
ممنون از بابت اطلاعاتی که در اختیارم قرار دادید، مخصوصا به خاطر لینک ها
به نتایج خوبی دارم می رسم
راستی یه تاپیک باز کردم اگه امکانش هست یه سر بزن و اگه می تونی کمکم کن:
http://www.barnamenevis.org/forum/showthread.php?p=1073137#post1073137

xman_1365_x
پنج شنبه 04 شهریور 1389, 23:18 عصر
سلام
با اسمبلی هم میشه با opengl(کتابخانه گرافیکی) ارتباط برقرار کرد؟

================
سلام
بله ميشه هر كاري شما با زبان هاي سطح بالا انجام بدين رو ميشه انجام داد.
اسمبلي براي استفاده بهينه و سرعت از اين زبان مخصوصا براي بازي سازي
كه نياز به استفاده حد اكثري از سرعت پردازنده سيستم و كارت گرافيكي و استفاده حداقل از
منابع مي باشد استفاده ميشه! البته نه براي همه قسمت ها! مواقعي كه نياز به سرعت بحراني هست.
چون كار با توابع گرافيكي چه opengl چه directx نياز به فريم ريت بالا دارين تا بازي زنده باشه
موفق باشي
====================