PDA

View Full Version : مبتدی: مشکل در مسئله درسی (add,sub)



alasht
یک شنبه 03 بهمن 1389, 18:35 عصر
با سلام خدمت دوستان
من این مسئله رو موندم چرا اینطوری حل شده
سوال رو بخونید بعد مشکلم رو بعد سوال نوشتم

برنامه ای بنویسید که 3 متغیر a,b,c را با مقادیر 20,fa,af با هم جمع و حاصل را در e قرار دهد و سپس b را از c کم کند .
پاسخ :



Move Al,a;
Add Al,b;
Add Al,c;
Move c,Al;
Move Ah,b;
Sub Ah,c;


سوال من اینه که چرا برای جمع a,b,c اون رو اول Al قرار داد و مستقیم جمع نکرد و بعد موقع کم کردن اول b رو در Ah قرار بعد از c کم کرد ؟

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

میشه قاعدشو بگین تا هر وقت سوالو دیدم سریع تشخیص بدم که چه موقع باید اول به Al یا Ah انتقال بدیم بعد عملیات رو انجام بدیم ؟

ممنون میشم جواب بدید چون فردا صبح ساعت 8 امتحان دارم و همین اوایلش گیر کردم :گریه:

saber187518
یک شنبه 03 بهمن 1389, 21:21 عصر
با سلام
دوست عزیز
کدی که شما نوشتید و برداشتی که من ازش داشتم اینه که فقط و فقط مقصودش از این حرکت حفظ کردن مقدار جمع هست و نه چیزی غیر از این.
موفق باشی
یا علی...

xman_1365_x
دوشنبه 04 بهمن 1389, 03:47 صبح
برنامه ای بنویسید که 3 متغیر a,b,c را با مقادیر 20,fa,af با هم جمع و حاصل را در e قرار دهد و سپس b را از c کم کند .

از اين قسمت چيزي نفهميدم چي نوشتين
در كدهاتونم بايد mov به اينصورت باشد!

Mov Al,a;
Add Al,b;
Add Al,c;
Mov c,Al;
Mov Ah,b;
Sub Ah,c;

كاري كه اين كد انجام ميده
a+b+c=c
b رو در ah قرار ميده
c رو از ah كم ميكنه

سوال من اینه که چرا برای جمع a,b,c اون رو اول Al قرار داد و مستقیم جمع نکرد و بعد موقع کم کردن اول b رو در Ah قرار بعد از c کم کرد ؟

*اينكه مستقيم a+b+c انجام نداده چون ما اپكدي براي جمع دو مقدار حافظه نداريم بايد حداقل يكي رو در ثبات بريزيم و بعد محاسبات انجام بديم
ضمنا محاسبات در ثبات ها باشه بهتره چون سرعت اونها قابل قياس با سرعت رم نيست.

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

میشه قاعدشو بگین تا هر وقت سوالو دیدم سریع تشخیص بدم که چه موقع باید اول به Al یا Ah انتقال بدیم بعد عملیات رو انجام بدیم ؟

خوب شما كتابو نخوندين اگرنه مشكلي نداشتين
مثلا
add dst,src
dst+src=dst
نتيجه در dst ذخيره ميشه!
mov ah,2
ah+2=ah