چنانچه دستور 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;
}