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

[ تمت الإجابة ]أرجوكم لازم تساعدوني اليوم(مستعجل)

مغلق
بدأه نواف قلبي في 14 يناير 2008 · 6 رد · 1,552 مشاهدة · في أرشيف قسم الـــ Assembly
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سلام عليكم

وكل عام وأنتم بخير

هذه أول مشاركه لي وأتمنى انكم تساعدوني بأقرب وقت لانه اختباري بكره .

ممكن تحولون هذا الكود من سي الى ال الأسيمبلي 32بت مع استخدام ال بروسيجر لارسال العدد المدخل واختباره برايم ولا

مشكوره مره بليز ساعدوني

	 main()
	 {

	  int a, i, g, no_prime, o=0;
	  i = 0;
	  g = 0;
	  no_prime= 0;
	  cout<<"Enter a number:";
	  cin>>a;
	  cout<<endl<<"The number is "<<a<<endl;
	  for (i=2; i<=a; i++)
	  {

	   if (a % i == 0)
	   {
	cout << i << " is a factor of " << a << endl;
		++o;
	   }
	  }
	  if (o == 1)
	   cout << "The number " << a <<" is prime\n";
	  else
	   cout << "The number " << a <<" is not prime\n";
	  return 0;
	 }

تم تعديل هذه المشاركة بواسطة Junkie في 16 يناير 2008 في 23:30 — السبب: تحسين شكل الظهور

#2

ارنا ما فعلت حتى نكمل عليه

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#3
TITLE prime  (pr.asm)
INCLUDE IRVINE32.inc
;-------------------------
 prime _test proto ,
		 x:Dword   ; the num to test.
pimestr:PTR Dword   
factorstr:PTR Dword
notprimstr:PTR Dword
	   coun:Dword
;-------------------------------------
.DATA
s1 Byte "Enter num to test",0
s2 Byte "the num is prime",0
s3 Byte "the num is not prime",0
s4 Byte " the num factors: ",0
 num Dword?
count Dword 0
;---------------------------------------
.code 
  main PROC  
	 call Clrscr
mov edx,OFFSET s1
call writestring
call readInt
mov num,eax
INVOK prime_test ,num,ADDR s2,ADDR s4 ,ADDR s3,count
;-------------------------------------------------
prime _test PROC USES  esi edi  ecx eax ,

x:Dword
primestr:PTR DWORD
factorstr:PTR DWORD
notprimstr:PTR DWORD
coun:DWORD

pushad
pushfd
 mov edx x;
 mov coun,0
 mov ecx, 2;	  
		label:	 ; هذه المشكله ماأعرف كيف اعمل فور اولوب في هذه الغه ارجوكم مساعدتي في هذه الجزئيه ولكم الشكر انا في الأنتظار	
			  cmp   ecx , edx;
			je prime;  
			mov ax, number;
			div bl;	 
		 cmp ah, 0;	  
	 je notprime;
	 jmp label;
		prime:
			mov index, 1; 
	 jmp finish;
		notprime:

تم تعديل هذه المشاركة بواسطة Junkie في 16 يناير 2008 في 23:31 — السبب: تحسين شكل الظهور

#4

سأسوق لك بعض الامثلة من الـHigh Level Syntax

1- جمل الشرط :

.IF (something == another thing)
	do something
.ELSEIF (something > anotherthing)
	do something
.ELSE
	do anotherthing
.ENDIF

مثال :

.IF eax == 8
	mov ebx,eax
.ELSEIF eax == 0
invoke ExitProcess,0
.ELSE
	inc eax
.ENDIF

مثال لعمل While :

.WHILE esi < 10
	mov eax,[esi][name]
	.break .if esi== -1
	inc esi
.ENDW

تستخدم break مع الشرط او بدونه وذلك للخروج من اللووب

هناك ايضا :

.REPEAT
	code
.UNTILL (something == anything)

مثلها مثل while مع فرق ان الاولى تتحقق من الشرط قبل اول دخول الى اللووب

المشروع في المرفقات...

write proto	str1:dword,str2:dword

.data
new		db	13,10,0;\r\n	for C++
txt1		db	"Enter a number: ",0
txt2		db	"The number is :",0
txt3		db	" is a factor of ",0
txt4		db	"The number ",0
txt5		db	" is prime",0
txt6		db	" is not prime",0

.data?
num		dd	?
IsPrim	dd	?

.code
start	proc
	invoke write,addr txt1,0
	invoke ReadInt
	mov num,eax

	invoke write,addr new,addr new

	invoke write,addr txt2,0
	mov eax,num
	invoke WriteInt

	invoke write,addr new,0

	mov esi,2
	.while esi <= num
		xor edx,edx
		mov eax,num
		div esi
		.if edx == 0
			mov eax,esi
			invoke WriteInt
			invoke write,addr txt3,0
			mov eax,num
			invoke WriteInt
			invoke write,addr new,0
			inc IsPrim
		.endif
		inc esi
	.endw

	invoke write,addr new,addr txt4
	mov eax,num
	invoke WriteInt

	.if IsPrim == 1
		invoke write,addr txt5,addr new
	.else
		invoke write,addr txt6,addr new
	.endif

	invoke ReadInt
	ret
start endp
write proc	str1:dword,str2:dword
	mov edx,str1
	invoke WriteString
	cmp str2,0
	jz @F
	mov edx,str2
	invoke WriteString
	@@:
	Ret
write EndP

end start

Prime.rar

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#5

مشكور و ماتقصرون

بس ياليت يا الاخ الفاضل لو تشرحلي لي انت استخدمت اكثر من كول بالنسبه للجزء الأخير وهل برنامج الي كتبته في البدايه صحيح ولا

انا عملت له رن ولكن ما يطلع شىء

ممكن تكملي ع البرنامج الي كتبته في البدايه اكون ممنون كثير لك

#6

المفتاح معك ...

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#7

شكرا لك

تعبتك معي

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

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

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

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

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

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