حذف Break در اسمبلی

adel28

Member
چنانچه دستور Break حذف شود در ساختار تکه برنامه اسمبلی زیر چه تغییری ایجاد خواهد شد؟

کد:
[LEFT]switch (DX)
{
case 5:
Ax +=4;
Cx=0;
break;

case 10:
Ax - = 5;
Cx=10;
break;

case 20:
Ax++;
Cx=Ax;
break

Default:
Ax --;
Cx=Ax+10;
}
[/LEFT]
 

the_king

مدیرکل انجمن
چنانچه دستور Break حذف شود در ساختار تکه برنامه اسمبلی زیر چه تغییری ایجاد خواهد شد؟

اسمبلی؟ منظورتون اینه که این کد برنامه زبان اسمبلی است؟ این کد زبانی مثل ++C یا #C است، البته چند اشکال کوچک
هم داشت که به این شکل برطرف کردم :

کد:
	switch (DX)
	{
		case 5:
			AX += 4;
			CX = 0;
			break;
		case 10:
			AX -= 5;
			CX = 10;
			break;
		case 20:
			AX++;
			CX = AX;
			break;
		default:
			AX--;
			CX = AX + 10;
	}

در هر صورت اگر break ها حذف شوند، علاوه بر اجرای فرامین case ای که با مقدار DX مطابقت دارد، کلیه فرامین case های
بعدی نیز اجرا می شوند، یعنی :

اگر مقدار DX برابر 5 باشد علاوه بر اجرای فرامین case 5 فرامین case های 10 و 20 و default هم اجرا می شوند، در نتیجه
مقدار AX یک واحد کاهش یافته و CX برابر خواهد بود با AX + 10

اگر مقدار DX برابر 10 باشد علاوه بر اجرای فرامین case 10 فرامین case های 20 و default هم اجرا می شوند، در نتیجه
مقدار AX پنج واحد کاهش یافته و CX برابر خواهد بود با AX + 10

اگر مقدار DX برابر 20 باشد علاوه بر اجرای فرامین case 20 فرامین default هم اجرا می شوند، در نتیجه
مقدار AX تغییری نمی کند و CX برابر خواهد بود با AX + 10

اگر مقدار DX هیچکدام از مقادیر 5 و 10 و 20 نباشد صرفا فرامین default اجرا می شوند، در نتیجه
مقدار AX یک واحد کاهش یافته و CX برابر خواهد بود با AX + 10

کد:
	{
		case 5:
			AX += 4;
			CX = 0;
		case 10:
			AX -= 5;
			CX = 10;
		case 20:
			AX++;
			CX = AX;
		default:
			AX--;
			CX = AX + 10;
	}
 

adel28

Member
اشتباه تایپی مو ببخشید.
سوالم 2 قسمتی بود که....
در هر صورت از جوابتون ممنون.
 

جدیدترین ارسال ها

بالا