آموزش برنامه نویسی با زبان اسمبلی

Ros3

عضو جدید
با سلام،
ممنون از توجه تون!

آیا بعد از دستورlink چهار بار اینتر زدید؟
در مورد سؤال دوم هم فکر می کنم پون زمان زیادی از پست ها گذشته تشکرها غیر فعال شده! البته نیازی به تشکر هم نیست! امیدوارم که بتونم کمکی کنم!
ممنون که به این سرعت جواب دادید.
اصلا اون چهار قسمت که باید اطلاعات وارد بشه نمیاد!!!
یه سوال دیگه اسمبلی یه اسمبلر نداره که همون جا کامپایلش کنی بعد خروجی رو ببینی؟
 

sayyad84

متخصص زبان Assembly
کاربر ممتاز
ممنون که به این سرعت جواب دادید.
اصلا اون چهار قسمت که باید اطلاعات وارد بشه نمیاد!!!
یه سوال دیگه اسمبلی یه اسمبلر نداره که همون جا کامپایلش کنی بعد خروجی رو ببینی؟

خواهش می کنم!
اگه امکان داره یه عکس از اون بخش بگیرید و اینجا بذارید تا با اطمینان بیشتری جواب بدم!
در مورد سؤال دوم هم اسمبلرهای زیادی وجود داره اما ممکنه کمی دستورات مورد استفاده توشون متفاوت باشه و یا بعضی از دستوراتی که خوندید کار نکنه!
اگه عجله ندارید فردا جواب دقیق تری می دم!
 

Ros3

عضو جدید
خواهش می کنم!
اگه امکان داره یه عکس از اون بخش بگیرید و اینجا بذارید تا با اطمینان بیشتری جواب بدم!
در مورد سؤال دوم هم اسمبلرهای زیادی وجود داره اما ممکنه کمی دستورات مورد استفاده توشون متفاوت باشه و یا بعضی از دستوراتی که خوندید کار نکنه!
اگه عجله ندارید فردا جواب دقیق تری می دم!
اینم عکس!



نه عجله ای ندارم خیلی هم لطف میکنید.:gol:
 

sayyad84

متخصص زبان Assembly
کاربر ممتاز
اینم عکس!



نه عجله ای ندارم خیلی هم لطف میکنید.:gol:
با سلام،
البته باید ازتون می پرسیدم ولی فکر نمی کردم که ویندوزتون غیر ار XP باشه!!!
باید بدونید که Masm با ویندوز ویستا و 7 مشکل داره و کار نمی کنه! البته چون فقط با XP کار کردم دنبالش نرفتم که ورژن سازگار با اون ها پیدا کنم!
شما می تونید از VMWare استفاده کنید و روی یه ماشین مجازی ویندوز XP بریزید و اون جا از MASM استفاده کنید و یا از Emulator اون استفاده کنید که به EMU8086 معروفه! می تونید این ابزار رو از طریق ضمیمه ی این پست و پست بعدی دانلود کنید!
در مورد سؤال دیروز هم دو تا اسمبلر دیگه که محیط مورد نظر شما رو داشتن رو تست کردم اما با دستوراتی که ما ازشون استفاده می کنیم سازگار نبودن! پس بهترین گزینه برای شما همین EMU اه!
 

پیوست ها

  • EMU8086.part1.rar
    1.4 مگایابت · بازدیدها: 0
  • Like
واکنش ها: Ros3

sayyad84

متخصص زبان Assembly
کاربر ممتاز
دانلود EMU8086 به همراه سریال

دانلود EMU8086 به همراه سریال

دو بخش دیگه رو هم از طریق ضمیمه دانلود کنید.
برای فعال سازی برنامه از موارد زیر استفاده کنید و اون ها رو در قسمت About نرم افزار وارد کنید!
کد:
[LEFT]MyNet
12N0ZXJKASERKKN837C1[/LEFT]
 

پیوست ها

  • EMU8086.part2.rar
    1.4 مگایابت · بازدیدها: 0
  • EMU8086.part3.rar
    68.8 کیلوبایت · بازدیدها: 0
  • Like
واکنش ها: Ros3

Ros3

عضو جدید
دو بخش دیگه رو هم از طریق ضمیمه دانلود کنید.
برای فعال سازی برنامه از موارد زیر استفاده کنید و اون ها رو در قسمت About نرم افزار وارد کنید!
کد:
[LEFT]MyNet
12N0ZXJKASERKKN837C1[/LEFT]
ممنونم از راهنماییتون
قبلا Emulator رو به عنوان یه مبدل که کدهای سایر برنامه ها رو به اسمبلی تبدیل میکنه نصب کرده بودم ولی تا بحال باهاش کار نکرده بودم.
از اونجایی که امتحانمون تئوریه و همه بچه ها دارن تئوری میخونن منم فعلا تئوری دارم میخونم.:surprised::surprised::surprised:
از هفته بعد میام تو محیطش!;)
همین که یه جزئیاتی از نحوه اجرای برنامه هاش بدست آوردم البته با کمک شما، پیش زمینه ی خوبی بود برای شروع.
شاد باشید:gol:
 

hibye90

عضو جدید
سلام
استاد سیاد تو این بخش اموزش اسمبلی فایل های ضمیمه که گذاشتین و نمی تونم دانلود کنم fail میشه :surprised:
چی کنم؟
دو سه بار امتحان کردم !!!!!
چون ADSL نیستم اینجوره؟ ولی حجم شون هم کمه اخه!!!
اگه مشکل داشت دوباره میزارین؟

 

sayyad84

متخصص زبان Assembly
کاربر ممتاز
سلام
استاد سیاد تو این بخش اموزش اسمبلی فایل های ضمیمه که گذاشتین و نمی تونم دانلود کنم fail میشه :surprised:
چی کنم؟
دو سه بار امتحان کردم !!!!!
چون ADSL نیستم اینجوره؟ ولی حجم شون هم کمه اخه!!!
اگه مشکل داشت دوباره میزارین؟


با سلام،
ربطی به سرعت اینترنت تون نداره! من الان امتحان کردم مشکلی نداشت! باید روشون کلیک زاست کنید و Save target as رو انتخاب کنید!
 

پاپاتیا

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

hibye90

عضو جدید
سلام
ممنون ، خیلی به دردم خورد


سلام:gol:
استاد sayyad مطالبی که تو این بخش برای اسمبل کردن بود را انجام دادم.
سیستم 32 بیتی هست.cmd را تو bin کپی کردم....
اما exe نساخت!!
enter که می زنم همین خط اخر تکرار میشه!​

Untitled.jpg
 
آخرین ویرایش:

sayyad84

متخصص زبان Assembly
کاربر ممتاز
سلام:gol:
استاد sayyad مطالبی که تو این بخش برای اسمبل کردن بود را انجام دادم.
سیستم 32 بیتی هست.cmd را تو bin کپی کردم....
اما exe نساخت!!
enter که می زنم همین خط اخر تکرار میشه!​

مشاهده پیوست 54706
با سلام،
قبلاً هم گفتم که ربطی به 32 بیتی بودن ویندوز نداره و MASM با سیستم عامل های بعد از XP مشکل داره! اگه چندتا پست قبلی رو هم بخونید می بینید که دوست دیگه مون هم همین مشکل رو داشتن!
مگه ویندوز XP نریخته بودید!؟
 

hibye90

عضو جدید
با سلام،
قبلاً هم گفتم که ربطی به 32 بیتی بودن ویندوز نداره و MASM با سیستم عامل های بعد از XP مشکل داره! اگه چندتا پست قبلی رو هم بخونید می بینید که دوست دیگه مون هم همین مشکل رو داشتن!
مگه ویندوز XP نریخته بودید!؟
سلام استاد sayyad
مثل همیشه شما درست گفتید:gol::gol::gol:
بالاخره exe را ساخت:smile:
اما تو قسمت خروجی error میده! اگه درست خونده باشم از مطالبی که قبلا گفتید!
بعد از 4 بار اینتر جلوی خط ادرس اسم برنامه را باید بنویسیم بعد اینتر بزنم تا خروجی بده!اما نشد!
یه بار هم با debug امتحان کردم بازم نشد!
 

پیوست ها

  • untitled.jpg
    untitled.jpg
    23.3 کیلوبایت · بازدیدها: 0
آخرین ویرایش:

sayyad84

متخصص زبان Assembly
کاربر ممتاز
سلام استاد sayyad
مثل همیشه شما درست گفتید:gol::gol::gol:
بالاخره exe را ساخت:smile:
اما تو قسمت خروجی error میده! اگه درست خونده باشم از مطالبی که قبلا گفتید!
بعد از 4 بار اینتر جلوی خط ادرس اسم برنامه را باید بنویسیم بعد اینتر بزنم تا خروجی بده!اما نشد!
یه بار هم با debug امتحان کردم بازم نشد!
فکر می کنم Stack براش تعریف نکردید! در ابتدای برنامه بعد از model small باید stack 64h قرار بدید!
 

hibye90

عضو جدید
فکر می کنم Stack براش تعریف نکردید! در ابتدای برنامه بعد از model small باید stack 64h قرار بدید!

استاد sayyad من اون برنامه ی Hellow Word ! را که مثال زده بودید تو مطالب قبلی را اجرا نکردم!
این را اجرا کردم که خیلی خیلی ساده تر از اون هست!(جمع 5 عدد!!!!!) با این حساب این خط فکر نکنم بهش بخوره!
برنامه ای که نوشتم اینه:
 

پیوست ها

  • untitled1.jpg
    untitled1.jpg
    27.8 کیلوبایت · بازدیدها: 0

sayyad84

متخصص زبان Assembly
کاربر ممتاز
استاد sayyad من اون برنامه ی Hellow Word ! را که مثال زده بودید تو مطالب قبلی را اجرا نکردم!
این را اجرا کردم که خیلی خیلی ساده تر از اون هست!(جمع 5 عدد!!!!!) با این حساب این خط فکر نکنم بهش بخوره!
برنامه ای که نوشتم اینه:

شما به فرم موردقبول اسمبلر TASM براتون رو نوشتید که به وسیله ی MASM اسمبل نمی شه!! فرم برنامه رو همون طور که تو قسمت "ساختار کلی برنامه در اسمبلی" گفتم تغییر بدید، فکر می کنم مشکل تون حل بشه! مثلاً در ابتدای برنامه باید بنویسید: model small.
 

hibye90

عضو جدید
شما به فرم موردقبول اسمبلر TASM براتون رو نوشتید که به وسیله ی MASM اسمبل نمی شه!! فرم برنامه رو همون طور که تو قسمت "ساختار کلی برنامه در اسمبلی" گفتم تغییر بدید، فکر می کنم مشکل تون حل بشه! مثلاً در ابتدای برنامه باید بنویسید: model small.

بله درست گفتید:gol:ممنون:gol:
جالبه که اصلا استادمون به این موضوع اشاره ای نکرده بود:surprised:!!!!
با تغییر برنامه به فرم اصلی masm همون طور که گفتین اشکال رفع شد .
اما قسمت اخر هنوز خروجی نمیده!
 

پیوست ها

  • untitled12.jpg
    untitled12.jpg
    44.1 کیلوبایت · بازدیدها: 0
  • untitled122.jpg
    untitled122.jpg
    22.2 کیلوبایت · بازدیدها: 0

sayyad84

متخصص زبان Assembly
کاربر ممتاز
بله درست گفتید:gol:ممنون:gol:
جالبه که اصلا استادمون به این موضوع اشاره ای نکرده بود:surprised:!!!!
با تغییر برنامه به فرم اصلی masm همون طور که گفتین اشکال رفع شد .
اما قسمت اخر هنوز خروجی نمیده!
یکمی بی دقتی کردیدا!!!
اول این که Data_in رو کجا تعریف کردید؟ ثانیاً اسمبلی از اون چیزی که فکر می کنید خیلی خنگ تره!! وقتی که طی حلقه ی موجود در برنامه مقدار SUM بدست میاد لازمه که مقدارش رو به رشته تبدیل کنید و به کمک سرویس چاپ رشته اون رو چاپ کنید!
حتی در اسمبلی امکان چاپ مستقیم یه عدد هم وجود نداره چه برسه به این که خودش بفهمه یه چیزی رو باید چاپ کنه!
 

hibye90

عضو جدید
یکمی بی دقتی کردیدا!!!
اول این که Data_in رو کجا تعریف کردید؟ ثانیاً اسمبلی از اون چیزی که فکر می کنید خیلی خنگ تره!! وقتی که طی حلقه ی موجود در برنامه مقدار SUM بدست میاد لازمه که مقدارش رو به رشته تبدیل کنید و به کمک سرویس چاپ رشته اون رو چاپ کنید!
حتی در اسمبلی امکان چاپ مستقیم یه عدد هم وجود نداره چه برسه به این که خودش بفهمه یه چیزی رو باید چاپ کنه!

سلام سلام:gol:
sayyad عزیز بالاخره "خروجی" داد!! :cry::cry:( این اشکه شوقه!!!!!) پیر شدم در این راه...!!!!
ممنون از sayyad عزیز:gol::gol:
اینم خروجی(البته اگه درست باشه!):
 

پیوست ها

  • progcmd.jpg
    progcmd.jpg
    42.7 کیلوبایت · بازدیدها: 0

software89

عضو جدید
نمایش تاریخ سیستم

نمایش تاریخ سیستم

با سلام
ببخشید استاد میشه مرا در مورد چگونگی نوشتن برنامه نمایش تاریخ سیستم در اسمبلی راهنمایی نمایید.
با تشکر
 

m.malakzadeh

عضو جدید
سلام..ببخشيد من كتاب سيدرضي رو خوندم...اما هنوز نمي تونم برنامه بنويسم..چيكار كنم اسمبليم قوي شه؟استادمون پروژه داده كه
1. Write an Assembly code that multiplies 2 matrices.
2. Write an Assembly code that multiplies 2 16 bit number

اصلا نميتونم بنويسم..برام سخته نوشتن..اصلا نميدونم كه چه جوري شروع كنم:cry::cry:
لطفا راهنماييم كنين چيكاركنم....لطفااااااااااااااااااااااااااااااااااااااااااااااااا............:cry:
 
آخرین ویرایش:

3erERFAN

عضو جدید
ترتیب استفاده از ثبات ها

ترتیب استفاده از ثبات ها

سلام
ممنون از آموزش خوبتون
اگه میشه لطف کنید یکم بیشتر در مورد ثبات ها و مواقع استفاده از اون ها توضیح بدید.
مثلا کی میریزیم تو dx. کی تو cl یا al , ah , bh و.... من هر جا گشتم توضیح مناسبی براش پیدا نکردم.:surprised: متاسفانه استادمون سر کلاس هم اشاره ای نکرد.
بازم ممنون:redface:
 

sayyad84

متخصص زبان Assembly
کاربر ممتاز
سلام
ممنون از آموزش خوبتون
اگه میشه لطف کنید یکم بیشتر در مورد ثبات ها و مواقع استفاده از اون ها توضیح بدید.
مثلا کی میریزیم تو dx. کی تو cl یا al , ah , bh و.... من هر جا گشتم توضیح مناسبی براش پیدا نکردم.:surprised: متاسفانه استادمون سر کلاس هم اشاره ای نکرد.
بازم ممنون:redface:
با سلام،
معمولاً هیچ محدودیتی برای استفاده از ثبات ها وجود نداره، مگر این که دستوری که قراره ازش استفاده کنید دارای محدودیت باشه!
مثلاً در ضرب، یکی از اعداد و در تقسیم، عدد مقسوم، حتماً باید در AX قرار بگیره!
یا در استفاده از دستور LOOP باید تعداد تکرار حلقه در CX باشه، اگه اشتباهاً این مقدار رو جای دیگه ای بریزید به طور پیش فرض مقدار CX بررسی می شه و می تونه باعث اشتباه اجرا شدن برنامه بشه!
همین طور در مورد استفاده از وقفه ها که شماره ی سرویس وقفه حتماً باید تو AH باشه و سایر ورودی ها هم با توجه به پیش فرض سرویس تو ثبات مناسب قرار بگیرن! مثلاً برای انتقال مکان نما به محل مورد نظر، مختصات نقطه رو تو DH و DL قرار می دیم! اگه جای دیگه ای بریزید با توجه به مقدار DH و DL کارش رو انجام می ده!
 

psp2004

عضو جدید
با نام خدا و سلام


سپاس از آموزش خوبتون
در مورد استفاده از اعداد اعشاری کمک می خواستم .... برای نمایش عدد اعشاری از تقسیم باقیمانده در مضربی از 10 و سپس تقسیم بر مقسوم استفاده میکنم ... میخواستم بدونم راه ساده تری هست؟؟؟

همچنین میخوام دو تا عدد اعشاری رو تقسیم کنم . که این رو اصن نمیدونم چی کار کنم ؟؟
 

هانا و هلنا

عضو جدید
سلام بچه ها میتونین کمکم کنین در مورد این برنامه ای که رشته ای رو که خودت بهش دادی و ازسطر آخر (یعنی سطر 24 ) شروع به چاپ کردن میکنه و این رشته ثانیه بعد به سطر 23 میاد و اینطوری توی تمام صفحه میچرخه و هر دفعه یک سطر بالا میاد و اگه به سطر اول رسید دوباره به آخر بیاد و دوباره همون عملیات قبلی تکرار میشه
 

alinaseri25

عضو جدید
من به شما دوست عزیز خسته نباشید میگم فقط خواستم یه اجازه ازتون بگیرم که بیام و بعد از مطالب شما اسمبلی سیستم های ۳۲ بیتی و ویندوز رو آموزش بدم البته اگه شما و ادمین عزیز و بقیه دوستان راضی باشید ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟!!!!!!!!!!!!!!!!!!!!!!!!!!

باز هم مرسی
 

sayyad84

متخصص زبان Assembly
کاربر ممتاز
من به شما دوست عزیز خسته نباشید میگم فقط خواستم یه اجازه ازتون بگیرم که بیام و بعد از مطالب شما اسمبلی سیستم های ۳۲ بیتی و ویندوز رو آموزش بدم البته اگه شما و ادمین عزیز و بقیه دوستان راضی باشید ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟!!!!!!!!!!!!!!!!!!!!!!!!!!

باز هم مرسی
با سلام،
و تشکر!
راستش اوایل تصمیم جدی داشتم که آموزش رو پیش ببرم اما به دلایلی نشد! خوشحال می شیم که شما ادامه دهنده باشید!
 

shincom_90

عضو جدید
با سلام
برنامه ای بنویسید که تمام صفحه نمایش را با * پرکند؟
برنامه ای بنویسید که *ها را به رنگ آبی و با زمینه سفید چاپ کند؟

برنامه را با نرم افزار masm611(ماکرو اسمبلر) در محیط DOS باید بنویسیم!!!!!!!
ابتدای برنامه این شکلی شروع میشه:
codseg......
MOV AX,0B800H
MOV DS,AX
MOV BX,0
.
.
.
...????
وقفه های 21و16و10 را هم تا حدودی بلدم!!!!!!!!
 
آخرین ویرایش:

yanehsar

عضو جدید
سلام چطور میشه برنامه ای نوشت که قابلیت اسکن کردن یک فایل داشته باشه . پس از بافتن علائم ویروس فایل رو پاکسازی کنه؟
 

Similar threads

بالا