فاصله در اسمبلی؟ فوری فوری مهم

computer_soft

اخراجی موقت
سلام خوبین ؟ من هنوز مبتدی ام پس همه میتونین جوابمو بدین!!
اول سوال اینه که فاصله (space) توی اسمبلی کد اش چیه؟
و بعد اگع میتونین کمکم کنین
برنامه ی جدول ضرب رو میخوام
یه صورت مربع چاپ کند
اگه میشه تا یک شنبه آینده میخوام مرسی
10 0000 4 3 2 1
0000 8 6 4 2
0000 12 9 6 3
0000 16 12 8 4
0
0
0
100 10
 

sayyad84

متخصص زبان Assembly
کاربر ممتاز
سلام خوبین ؟ من هنوز مبتدی ام پس همه میتونین جوابمو بدین!!
اول سوال اینه که فاصله (space) توی اسمبلی کد اش چیه؟
و بعد اگع میتونین کمکم کنین
برنامه ی جدول ضرب رو میخوام
یه صورت مربع چاپ کند
اگه میشه تا یک شنبه آینده میخوام مرسی
10 0000 4 3 2 1
0000 8 6 4 2
0000 12 9 6 3
0000 16 12 8 4
0
0
0
100 10

با سلام،
بره این کار باید از gotoxy استفاده کنید. البته منظورم این نیست که این دستور در اسمبلی وجود داره! کدش به این صورته:
کد:
[LEFT]mov ah,2h
mov dh,ROW
mov dl,COL
mov bh,0
int 10h[/LEFT]
که ROW شماره ی سطر و COL شماره ی ستون هستند. برای نوشتن برنامه مقدار اولیه ی dh رو یک و dl را دو قرار دهید. همین طور مقدار al و cl رو یک بگیرید.
نیاز به دو حلقه دارید که حلقه ی داخلی مقادیر dl را سه تا سه تا اضافه می کند و از mul cl استفاده کرده و از gotoxy استفاده می کند و مقدار را چاپ می کند. همین طور به al یکی اضافه می شود.
حلقه ی خارجی نیز تنها سه تا به dh می افزاید و یکی به cl.
توجه کنید که امکان چاپ مستقیم اعداد در اسمبلی وجود ندارد و باید عدد به رشته تبدیل و چاپ شود.
اگه سؤالی داشتید بپرسید، ولی این جا!
با آرزوی موفقیت!​
 
آخرین ویرایش:

computer_soft

اخراجی موقت
با سلام،
بره این کار باید از gotoxy استفاده کنید. البته منظورم این نیست که این دستور در اسمبلی وجود داره! کدش به این صورته:
کد:
[LEFT]mov ah,2h
mov dh,ROW
mov dl,COL
mov bh,0
int 10h[/LEFT]
که ROW شماره ی سطر و COL شماره ی ستون هستند. برای نوشتن برنامه مقدار اولیه ی dh رو یک و dl را دو قرار دهید. همین طور مقدار al و cl رو یک بگیرید.
نیاز به دو حلقه دارید که حلقه ی داخلی مقادیر dl را سه تا سه تا اضافه می کند و از mul cl استفاده کرده و از gotoxy استفاده می کند و مقدار را چاپ می کند. همین طور به al یکی اضافه می شود.
حلقه ی خارجی نیز تنها سه تا به dh می افزاید و یکی به cl.
توجه کنید که امکان چاپ مستقیم اعداد در اسمبلی وجود ندارد و باید عدد به رشته تبدیل و چاپ شود.
اگه سؤالی داشتید بپرسید، ولی این جا!
با آرزوی موفقیت!​

گفتین مقدار al و cl رو یک بگیرم. مگه همون برنامه ای که برای gotoxy نوشتین کافی نیس؟
گفتین که یک حلقه ی داخلی که dl را 3تا 3تا اضافه کند چه طوری؟
و بعد گفتین از gotoxy استفاده میکند. یعنی در برنامه اول باید بنویسیم dl رو بگیم 3تا 3تا اضافه کنه بعد دستور های مربوط به gotoxy رو بنویسیم؟
و خودمون باید به al ذاضافه کنیم؟
 

sayyad84

متخصص زبان Assembly
کاربر ممتاز
گفتین مقدار al و cl رو یک بگیرم. مگه همون برنامه ای که برای gotoxy نوشتین کافی نیس؟
گفتین که یک حلقه ی داخلی که dl را 3تا 3تا اضافه کند چه طوری؟
و بعد گفتین از gotoxy استفاده میکند. یعنی در برنامه اول باید بنویسیم dl رو بگیم 3تا 3تا اضافه کنه بعد دستور های مربوط به gotoxy رو بنویسیم؟
و خودمون باید به al ذاضافه کنیم؟

با سلام،
برنامه رو تو بخش "برنامه های نوشته شده به زبان اسمبلی" می زارم! روش فکر کنید و اگه سؤالی بود بپرسید!
البته نه جوری که من مجبور باشم کل اسمبلی رو براتون بنویسم!!
 

computer_soft

اخراجی موقت
با سلام،
برنامه رو تو بخش "برنامه های نوشته شده به زبان اسمبلی" می زارم! روش فکر کنید و اگه سؤالی بود بپرسید!
البته نه جوری که من مجبور باشم کل اسمبلی رو براتون بنویسم!!

lea تواسمبلی چی کار میکنه؟
همچنین push و call و pop?
اون قسمت هایی رو هم که نوشتین 111 و 115 و ... چی است؟
 

sayyad84

متخصص زبان Assembly
کاربر ممتاز
با سلام،
یعنی هیچ کدوم رو نخوندین؟!!
lea برای قرار دادن آدرس یه متغیر تو یه ثباته. برای چاپ رشته باید آدرسش در dx قرار بگیره!
push برای اضافه کردن یه مقدار به پشته(Stack) و pop برای برداشتن این مقدار از پشته! برای کار با زیربرنامه ها اغلب ورودی زیربرنامه رو در پشته قرار می دن!
دستور Call برای فراخوانی یه زیر برنامه اس!
l1 و l2 و ... هم Label هستن. گاهی لازمه که کنترل از یه خط به چند خط بعدتر بره و دستورات اون جا رو اجرا کنه. آدرس اون جای موردنظر با Label تعیین می شه!
اگه نمی خواید از زیربرنامه استفاده کنید می تونید محتوای اون رو به جای Call X جایگزین کنین. البته لازمه که تغییراتی توش بدین.
 

computer_soft

اخراجی موقت
L1,L2 رو خونده بودیم

ممنون از راهنماییتون یک چیزایی نوشتم 2ساعت زود تر از کلاس بردم پیش استادم برنامه نوشته شد فقط چپه است!!!!!
تا 9*9 هم هست!!!

بازم ممنون
 

manspider2003200

عضو جدید
و يك را ديگه هم تعريف يك آرايه هست كه انقدر پرش نكنيد كلي برنامه طولاني ميشه فقط آخر اين آرايه رو به اسكي تبديل و نمايش بدين!
بره این کار باید از gotoxy استفاده کنید. البته منظورم این نیست که این دستور در اسمبلی وجود داره!
و خدا ماكرو را براي همين كار آفريد :D هر وقت بهش نياز داشتين بهش پارامتر ميدين
 

manspider2003200

عضو جدید
و يك را ديگه هم تعريف يك آرايه هست كه انقدر پرش نكنيد كلي برنامه طولاني ميشه فقط آخر اين آرايه رو به اسكي تبديل و نمايش بدين!
بره این کار باید از gotoxy استفاده کنید. البته منظورم این نیست که این دستور در اسمبلی وجود داره!
و خدا ماكرو را براي همين كار آفريد :D هر وقت بهش نياز داشتين بهش پارامتر ميدين
 

Similar threads

بالا