الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

برنامج يستخدم ال Test ولكن فيه مشكلة

مغلق
بدأه ibn_als3odiah في 5 ديسمبر 2004 · 2 رد · 511 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لسلام عليكم ورحمة الله وبركاته

هذا كود بسيط جدا كتبته ويقوم بالتالي

يطلب من المستخدم رقم (من 1-4)

فاذا أدخلت

الرقم 1 يطبع Case1

الرقم 2 يطبع Case2

الرقم 3 يطبع Case3

الرقم 4 هو رقم الخروج من البرنامج

ويطبع Thanks For uisng My Program

المشكلة هي:

أنه البرنامج ينفذ تمام ولكن عندما أدخله الرقم ثلاثة يطبع Case1 عوضا عن Case3

حاولت كثيرا ولكن تعبت فقلت ما لها الا شباب المنتدى

وألف شكر وجزاكم الله عني ألف خير

الكود هو:

.586
option Segment: use16
.model small
.stack 200h
.data
	case1 db 13,10,'Case1',13,10,'$'
	case2 db 13,10,'Case2',13,10,'$'
	case3 db 13,10,'Case3',13,10,'$'
	choice db ?	
	input db 13,10,'Please Enter YOur Number:',13,10,'$'
	thanks db 13,10,'Many Thanks to You For Using My Program',13,10,'$'

	.code
.startup

ReMenu:
mov choice,00H;Just for re-initialize before reading the Number
mov ax,00h;Just for re-initialize before reading the Number

mov ah,09h
mov dx, offset input
int 21h
mov ah,01h
int 21h
;sub al,30h
MOV choice,al

test choice, 1
jnz p1

test choice, 2
jnz p2

test choice,3
jnz p3

jmp p4

p1:
mov ah,09h
mov dx, offset case1
int 21h
jmp ReMenu

p2:
mov ah,09h
mov dx, offset case2
int 21h
jmp ReMenu

p3:
mov ah,09h
mov dx, offset case3
int 21h
jmp ReMenu

p4:

mov ah,09h
mov dx, offset thanks
int 21h
.exit


END

في انتظاركم وبالتووفيق للجميع

تم تعديل هذه المشاركة بواسطة ibn_als3odiah في 5 ديسمبر 2004 في 00:58

3424.gif
#2

السلام عليكم,

هذا شيء طبيعي بما أنك في أول السطر تقوم ب :

test choice,1

فإذا كان choice يساوي 1 فالكود السابق يعطينا نتيجة تغاير الصفر . وفي حالة choice يساوي 3 أي 11 بالبايناري فأيضا

test choice,1

ستعطينا نتيجة غير صفر ولهذا سيقفز البرنامج قبل أن يحقق test choice,3

وهنا قد نستعمل :

cmp al,1

jz p1

cmp al,2

jz p2

وهكذا.

إلى اللقاء.

#3

ألف شكر يا أستاذي الفاضل

غيرت الكود وظبط معي

جزاك الله عني خير

3424.gif

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…