تالار گفتمان مانشت
سوال پایه اسمبلی - نسخه‌ی قابل چاپ

سوال پایه اسمبلی - reza_a - 07 مهر ۱۳۹۲ ۰۹:۱۲ ب.ظ

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

صورت سوال: برنامه ای به زبان اسمبلی بنویسید که مقدار ۶۵ را به هر یک از ثبات های CX CH CL منتقل کند و خروجی را مشخص کند.
حلش اینطوری میشه؟

MOV CX,65
MOV CH,CX
MOV CL,CH

خروجی: هر سه تا = ۶۵

یا اینکه چون CX خودش شامل CL+CH هست نمیشه طبق مرحله دو CX رو ریخت توی CH؟
پیشاپیش ممنونم.

RE: سوال پایه اسمبلی - reza_a - 08 مهر ۱۳۹۲ ۰۵:۴۱ ب.ظ

کسی نیست منو راهنمایی کنه؟

RE: سوال پایه اسمبلی - afshin18 - 08 مهر ۱۳۹۲ ۰۷:۲۹ ب.ظ

چون که رجیستر CX تشکیل شده از cl ,ch کد بالا غلطه
در دستور mov تعداد بیت های دو رجیستر باید برابر باشه
MOV CX,35
وقتی ما این دستور رو بنویسیم ابتدا cx رو مقدار ۳۵ بهش دادیم چون تعداد بیت های عدد ۳۵ به اندازه ی نیست که به ch هم وارد بشه مقدار cx=cl=35 و ch=0
MOV CH,CL
بعد از این دستور مقدار ch برابر ۳۵ می شود ولی قائدتا مقدار cx دیگر برابر ۳۵ نخواهد بود

RE: سوال پایه اسمبلی - reza_a - 08 مهر ۱۳۹۲ ۱۰:۰۲ ب.ظ

(۰۸ مهر ۱۳۹۲ ۰۷:۲۹ ب.ظ)afshin18 نوشته شده توسط:  چون که رجیستر CX تشکیل شده از cl ,ch کد بالا غلطه
در دستور mov تعداد بیت های دو رجیستر باید برابر باشه
MOV CX,35
وقتی ما این دستور رو بنویسیم ابتدا cx رو مقدار ۳۵ بهش دادیم چون تعداد بیت های عدد ۳۵ به اندازه ی نیست که به ch هم وارد بشه مقدار cx=cl=35 و ch=0
MOV CH,CL
بعد از این دستور مقدار ch برابر ۳۵ می شود ولی قائدتا مقدار cx دیگر برابر ۳۵ نخواهد بود

پس چه کنیم که در پایان هم همه یعنی هر سه همین مقدار رو حفظ کنن؟

RE: سوال پایه اسمبلی - Eternal - 08 مهر ۱۳۹۲ ۱۱:۳۳ ب.ظ

دوستمون اول درست توضیح داده دیگه.
خب دوست من نمیشه که همشون یعنی هم CX هم CLهم CHمقدارشون یکسان باشه
ببین CX شامل CL و CH هستش خب ، یعنی اون دوتا با هم CX رو تشکیل میدن ، هر کدوم یک بایته که با هم CX دو بایتی رو تشکیل میدن.

شاید روی مسئله رو متوجه نشدید ویا منظور استادتون به طور همزمان نبود.

[attachment=13201]

RE: سوال پایه اسمبلی - reza_a - 09 مهر ۱۳۹۲ ۰۹:۴۰ ق.ظ

اگر به طور همزمان نبوده باشه همون
CX,65
CH,65
CL,65

کافیه؟

RE: سوال پایه اسمبلی - Eternal - 09 مهر ۱۳۹۲ ۰۱:۲۱ ب.ظ

بله کافیه.

فقط mov ها یادتون نره Big GrinTongue

موفق باشید