PDA

View Full Version : مبتدی: سوال : معادل دستور if در اسمبلی ؟



Amir_malas
پنج شنبه 12 آبان 1390, 17:39 عصر
میخواستم ببینم اگه بخوام این کد رو توی اسمبلی بزنم چی باید بنویسم؟؟؟؟




if ( a==0 ) {
.
.
.
}
else if ( a==1 ) {
.
.
.
}
else if ( a==2 ) {
.
.
.
}
else if ( a==3 ) {
.
.
.
}

فقط با دستورات j... و CMP

xman_1365_x
پنج شنبه 12 آبان 1390, 23:38 عصر
فلوچارت ها که در اینترنت موجود هست نگاه کنید برای درک بهتر و اینکه در شرط if کاری که میکنیم شرط هارو بلعکس میکنیم
یعنی اولین خط خواستین a==0 شد بدنه اجرا شه اما شما شرط jne مینویسی که اگر اینطور شد بره به else if بعد و با این کار اگر برابر باشه درون بدنه اجرا میشه و در غیر اینصورتم شرط یا شروط دیگرو بررسی میکنید
توجه:بعد از اتمام کار هر بدنه باید از ساختار خارج شیم که نیاز به پرش به برچسب انتهایی داره در غیر اینصورت شرط های دیگه بررسی میشن

موفق باشی

#target
جمعه 13 آبان 1390, 21:36 عصر
MOV EAX , A
CMP A , 0
JNZ X1
. . .CODE 1 - if a == 0
JMP END
X1:
CMP A , 1
JNZ X2
. . .CODE 2 - if a == 1
JMP END
X2:
CMP A , 2
JNZ X3
. . .CODE 3 - if a == 2
JMP END
X3:
CMP A , 3
JNZ END
. . .CODE 4 - if a == 3

END :