PDA

View Full Version : اجرای کد زیر



Ma_Y_R
دوشنبه 17 مهر 1391, 10:55 صبح
سلام دوستان.می خواستم بدونم کد زیر چندبار اجرا میشه؟ لطفا توضیح بدید.
MOV CX,0
MOV AX,0
L1:INC AX
LOOP L1

xman_1365_x
سه شنبه 18 مهر 1391, 08:18 صبح
حلقه شما 65536 بار تکرار میشه،چون دفعه اول صفر هست و یک واحد ازش کم میشه میشه 0FFFFH=65535 تکرار میشه با اون بار اول میشه 65536
حالا برای اینکه این اتفاق نیوفته دستوری داریم بنام:jcxzوjecxz که اول حلقه قرار میدیم اگر cx یا ecx صفر بود از روی حلقه پرش کنه

موفق باشی

Ma_Y_R
سه شنبه 18 مهر 1391, 21:38 عصر
سلام.میدونیم هر وقت شمارنده صفر شد برنامه از حلقه خارج میشه پس چرا اینجا با وجود این که شمارنده صفره برنامه از حلقه خارج نمیشه؟ مگه شمارنده چک نمیشه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟: تفکر::متفکر::متفکر:

maryam.eng
پنج شنبه 20 مهر 1391, 18:15 عصر
چرا وقتی از صفر یه واحد کم می کنیم می شه 0FFFF؟؟؟؟!!!!

xman_1365_x
شنبه 22 مهر 1391, 13:06 عصر
سلام.میدونیم هر وقت شمارنده صفر شد برنامه از حلقه خارج میشه پس چرا اینجا با وجود این که شمارنده صفره برنامه از حلقه خارج نمیشه؟ مگه شمارنده چک نمیشه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
لوپ اول از cx یک واحد کم میکنه بعد مقایسه میکنه که برابر صفر هست یا نه برای همین این مشکل پیش میاد! پس اگر cx=1 باشه حلقه یکبار اجرا میشه چون اول یک واحد کم شه میشه صفر بعد شرط برقراری با صفر درست هست و از حلقه خارج میشه!

چرا وقتی از صفر یه واحد کم می کنیم می شه 0FFFF؟؟؟؟!!!!
وقتی شما هیچی ندارین یکی ازش کم کنید شما یک رقم قرض میگیرید این باعث میشه بیت ها یک بشن
در مبنای ده هم همینطوره شما صفر رو منهی یک کنید حاصل منفی یک میشه که منهای یک اینجا FFFFH میشه
کتاب داریوش نیکمهر فصل اول را دانلود و مطالعه کنید.

موفق باشید