PDA

View Full Version : سوال: منها کردن



masoodinfo
جمعه 08 آبان 1388, 21:50 عصر
با سلام

دوستان می خواستم بدونم چگونه میشه عددی که در DX:AX قرار دارد رو منهای یک عددی کرد مثلا 5 ، 6 .به طور واضح تر بخوام بگم ،ابتدا عمل ضرب را انجام داده ام که جواب داخل دو ثبات بالا قرار گرفته است.و حالا می خواهم عددی را ازش کم کنم.
با تشکر

tdkhakpur
شنبه 09 آبان 1388, 10:52 صبح
فكر كنم به اين شكل ميشود


mov bx, 5;// عدد شما مانند 5 يا 6
sub ax, bx
jnz jmp1
add ax, ffffh
sub dx, 1
jmp1:

masoodinfo
شنبه 09 آبان 1388, 12:05 عصر
خوب این که نوشتید چی کار می کنه ؟:متفکر:

tdkhakpur
شنبه 09 آبان 1388, 13:30 عصر
ميشه اين مطلبي كه شما خواستيد

حالا می خواهم عددی را ازش کم کنم.

masoodinfo
شنبه 09 آبان 1388, 16:58 عصر
من که می خوام کم کنم باید از ax کم کنم یا از dx ؟
میشه از Jnz و به بعد رو توضیح بدید.:لبخند:

tdkhakpur
شنبه 09 آبان 1388, 21:01 عصر
من که می خوام کم کنم باید از ax کم کنم یا از dx ؟
میشه از Jnz و به بعد رو توضیح بدید.:لبخند:

نه نميشه.....:لبخندساده:
شما اول دستي عمل تفريق دو سه عدد رياضي را با هم انجام بديد خواهيد فهميد.
ولي در مورد jnz مفهومش اينه كه عدد موجود در ax كوچكتر از عدد موجود در bx‌ نيست.

masoodinfo
یک شنبه 10 آبان 1388, 22:15 عصر
با سلام

فکرکنم بفهمیده باشم :لبخند:.
مثلا یعنی اگر جواب شده 20 ،0 در ax قرار می گیره و 2 در dx درسته ؟
بعد می بینیم که ax از عدد ما کوچکتر است .از Dx یکی کم می کنیم و یک FFFF به ax اضافه می کنیم درسته ؟
حالا اندازه FFFF درسته ؟ یا باید کمتر باشه؟ چون اگر ax مثلا یک باشه صفر میشه ax.

tdkhakpur
دوشنبه 11 آبان 1388, 13:04 عصر
حالا اندازه FFFF درسته ؟ یا باید کمتر باشه؟ چون اگر ax مثلا یک باشه صفر میشه ax.
نه صفر نميشه.
به قبل از jns نگاهي بندازين اين عددموجود با sub شدن منفي ميشه و اين عدد جديد يعني FFFF به روي مقدار منفي افزوده ميشود.

masoodinfo
دوشنبه 11 آبان 1388, 18:50 عصر
این jnz نمیگه که مخالف صفر باشه ؟ بعد یک دستور cmp جا نگذاشتید؟

tdkhakpur
دوشنبه 11 آبان 1388, 20:29 عصر
این jnz نمیگه که مخالف صفر باشه ؟ بعد یک دستور cmp جا نگذاشتید؟

jnz منظورش اينكه اگر نتيجه sub عدد منفي شد پرش كند.

masoodinfo
سه شنبه 12 آبان 1388, 12:57 عصر
فکر کنم مُجِّلم حل شد شده باشه.
راستی من با EMU8086 کار می کنیم که انگار فقط DB و DW رو ساپورت می کنه.نرم افزار دیگه ای هست که DD DT هم ساپورت کنه ؟

masoodinfo
سه شنبه 12 آبان 1388, 13:19 عصر
اگر عدد 65536 رو در DX:AX قرار داده باشیم یعنی dx=1 و ax=0 و بخواهیم 10 تا ازش کم کنیم چه جوری میشه ؟
از ax که 0 هست 10 تا کم می کنیم میشه FFF6 بعد چون عدد منفی شده ax رو ffff تا افزایش می دهیم و از Dx یکی کم می کنیم درسته ؟
ای جوری که ax میشه FFF5 ولی جواب ما FFF6 باید بشه این طور نیست ؟:گیج:

tdkhakpur
سه شنبه 12 آبان 1388, 14:14 عصر
نه عزيز زياد با اين كار ور نرو محاسبه درسته بقيه تفكرات رو بزار به عده cpu:لبخندساده:

masoodinfo
چهارشنبه 13 آبان 1388, 11:17 صبح
ممنون از جواب کاملتون :متفکر: