کد اسمبلی ، Quiz گروه اول ( ساعت 8 )

فکر کنم Quiz کسایی که ساعت اول برنامه نویسی سیستم داشتن این بود که یه رشته از ورودی بگیره و اگر داخل رشته کارکتر a و هم کارکتر s بود ، پیام پیدا شد و در غیر اینصورت پیدا نشد نشون بده.


* گروه اول ، ساعت 8



طول رشته ورودی 20 کارکتر فرض شده !


یسری نکته هم ، تو 3 تا پست پایین تر اشاره شد ، اون ها رو هم بخونید 


یه نکته دیگه : فکر کنم برای ارسال mail به استاد ، subject رو باید gh q بنویسید !


دریافت Source Code


دریافت Source Code

تعداد Jump ها در این Source Code کاهش یافته



Source Code برای Quiz گروه دوم را هم می تونید از اینجا بگیرید !

نظرات 11 + ارسال نظر
۱ 1390/01/24 ساعت 05:04 ب.ظ

ممنون به خاطر زحمتی که کشیدین چون هر کسی برای گروه دیگه همچین کاری انجام نمیده.
میگم برنامه رو خیلی پیجیده کردین ساده تر از این هم میشد نوشت.

ب هر حال ممنون

ممنون میشدم اسمتون رو هم می گفتید.

علی 1390/01/24 ساعت 05:20 ب.ظ

خواهش می کنم.

پیچیده؟
کجاش دقیقا؟

اصل برنامه فقط 2 تا scas با jump هست

۱ 1390/01/25 ساعت 04:13 ب.ظ


بله فرمایش شما درسته ولی میشد تعداد جامپ ها رو کاهش داد.به جای ۴ تا جامپ میشد فقط از یک یا فکر کنم ۲ جامپ استفاده کرد.
از نظر درستی که درسته ولی از نظر تعداد خطوط گفتم.

ممنون میشم ، خودتون رو معرفی کنید.

علی . ب 1390/01/25 ساعت 04:32 ب.ظ

1 جامپ؟
با یه جامپ که نمیشه !

ولی حق با شماست .
میشه تعداد Jump هارو کاهش داد ، 2 جا اضافه نوشته بودم. ( برای وضوح کد )

ولی باز به نظرم با 2 جامپ هم نمیشه
تو بخش نمایش خروجی هم لازمه یه Jump باشه.

خوشحال میشم ، اگه کدتون رو بهم میل کنید تا ببینم .
ali.bhz@gmail.com

۱ 1390/01/25 ساعت 09:00 ب.ظ

با جامپ نمایش خروجی که تعداد به ۵ میرسه.
من همچین کدی رو نوشتم ولی از صحتش مطمئن نیستم.
از نظر منطقی به نظرم درسته ولی اجراش نکردم.
غریبه نیستم.
همدیگرو می شناسیم.
کد رو به ایمیلتون میفرستم اگه مشکلی داشت خوشحال میشم بهم بگین.

بله ، تو کد اول فکر کنم به 5 تا برسه.
ولی تو کد دوم فکر کنم کلا شد 3 تا.

علی 1390/01/25 ساعت 09:07 ب.ظ

همدیگر رو میشناسیم !؟
چه راهنمایی خوبی

خوشحال میشم ، کد رو ببینم.

[ بدون نام ] 1390/01/25 ساعت 09:24 ب.ظ

برنامه رو براتون سند کردم.

علی 1390/01/25 ساعت 09:50 ب.ظ

بله ، ایمیل رو دریافت کردم.
کد درست بود از نظر منطقی ،
کلا هم از 3 Jump استفاده شده بود.
ایمیلتون رو چک کنید.

۱ 1390/01/26 ساعت 12:14 ق.ظ

lea ax,not_found ; lea DOFST,not_found -> ghalat ast , nemishe az memory be memory montaghel kard

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

میتونید از خود dx به صورت مستقیم استفاده کنید نیازی به DOFST نیست سید

علی 1390/01/26 ساعت 06:54 ق.ظ

خوب ، تو اسمبلی با دستور lea از مموری به مموری فکر کنم نمیشد ،
اگه این کد رو بنویسید ، خطا می گیره : ( به این دلیل غلط بود )
lea DOFST,not_found
اگر تو emu8086 و یا masm هم استفاده کنیم با خطای wrong parameters یا operand must be register مواجه مییشم.

خوب ، این خط و خط بعدش رو باید باهم می نوشتید :
lea ax,not_found
mov DOFST,ax

اول به آفست رشته پیام رو به داخل یه ثبات کمکی ( مثل ax ) میریزیم ، بعد از ثبات کمکی به متغیر منتقل می کنیم.

یا از دستور mov استفاده کنیم :
mov DOFST, offset not_found

۱ 1390/01/26 ساعت 12:13 ب.ظ


ok
ممنون

برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد