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

طلب مساعدة في : خوارزمية توليد أرقام عشوائية بالأسمبلي

مغلق
بدأه mouradpr في 2 يوليو 2007 · 5 رد · 1,260 مشاهدة · في أرشيف قسم الـــ Assembly
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

يبدو أن الطلب واضح

أحد الأصدقاء اقترح استعمال التاريخ في توليد الأرقام

استعما الشهر واليوم والدقيقة والساعة والثانية وحتى إ1ذا تم التوصل إلى أجزاء المأءة...

لكن إذا تم تنقيحه يمكن كتابة Keygen ببساطة

فماالحل الذي تقترحونه

شكرا مسبقا

وآسف إذا كان الموضوع مكرر

#2

في انتظار المساعدة من فضلكم

#3

أهلا اخي ،،

هناك خوارزميه بسيطه لتوليد الارقام العشوائيه وهي كما يلي :

- ابدأ بأي رقم.

- قم بإزاحة الرقم لليسار خانة واحدة.

- استبدل الخانة رقم صفر بالخانتين 14 و 15 بعد عمل XOR لهما.

- قم بوضع الرقم صفر في الخانة 15.

مع العلم انها تولد ارقام من 0-32767 فقط :)

بالنسبه لموضوع التنقيح وطرق الكشف فصراحه لأ اعلم :)..

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#4

لم أفهم أخي

ممكن الكود مباشرة

لقد حاولت لكن دون جدوى

ممكن توضيح

#5
;--------------------------------------------------------------------------------------
; Assembly Language Program that displays a '?'
; calls READ to read a binary number
; and calls RANDOM and WRITE to compute and display 100 random numbers
; The numbers should be displayed four per line, with four blanks separating the numbers.
; The following method can be used to generate random number in the range 1 to 32767.
;	- Start with any number in this range.
;	- Shift left once.
;	- Replace bit 0 by XOR of bits 14 and 15.
;	- Clear bit 15.
; Write the following procedures :
;	a. A procedure READ that lets the user enter a binary number and stores it in AX.
;	b. A procedure RANDOM that recieves a number in AX and returns a random number in AX.
;	c. A procedure WRITE that displays AX in binary. 
; By : Wajdy Essam (romansy)
; 30-4-2007
;----------------------------------------------------------------------------------------

TITLE EX4.ASM : Generating Random Number

.MODEL	SMALL
.STACK	100H

.DATA
	PROMPT_1		DB			0DH,0AH,7H,'Enter any Number in Binary [16 bits MAX]  : $'
	MSG_1			DB			0DH,0AH,7H,'The Radnom number is : ',0DH,0AH,0DH,0AH,'$'
	MSG_ERROR		DB			0DH,0AH,7H,'The Number is illegal !! try again . $'
	COUNT			DB			0
	SPACE			DB			'	$'

.CODE

	MAIN PROC
			MOV AX,@DATA
			MOV DS,AX

	@BEGIN:	
			MOV AH,9
			LEA	DX,PROMPT_1
			INT 21H

			CALL READ
			PUSH AX

			MOV AH,9
			LEA	DX,MSG_1
			INT 21H

			POP AX

			MOV CX,100

		@TOP:
			CMP COUNT,4
			JE	@NEW_LINE

			CALL RANDOM	
			CALL WRITE
			INC COUNT
			JMP @NEXT_TOP

		@NEW_LINE:	
			PUSH AX
			MOV AH,2
			MOV DL,0DH
			INT 21H
			MOV DL,0AH
			INT 21H
			MOV CX,0
			POP AX
			JMP @NEXT_1

		@NEXT_TOP:
			PUSH AX
			MOV AH,9
			LEA	DX,SPACE
			INT 21H
			POP AX

		@NEXT_1:
			LOOP @TOP

			MOV AH,4CH
			INT 21H
	MAIN ENDP


;************************************************;
;************************************************;
; PROC   : READ 
; JOB	 : reads at max 16 bit 
; input  : none
; output : AX 
;************************************************;
;************************************************;

	READ PROC

			PUSH CX
			XOR BX,BX

			MOV CX,16
			MOV AH,1

		@INPUT:
			INT 21H

			CMP AL,0DH
			JE	@END_INPUT

			CMP AL,'1'
			JG	@ERROR
			CMP AL,'0'
			JL	@ERROR

			AND AL,0FH

			SHL	BX,1
			OR BL,AL

			LOOP @INPUT

		@END_INPUT:
			MOV AX,BX
			JMP @NEXT

		@ERROR:
			MOV AH,9
			LEA	DX,MSG_ERROR
			INT 21H

			JMP @BEGIN

		@NEXT:
			POP CX

			RET
	READ ENDP



;************************************************;
;************************************************;
; PROC   : WRITE 
; JOB	 : print 16 bit digit
; input  : AX
; output : none 
;************************************************;
;************************************************;		

	WRITE PROC

				PUSH CX
				PUSH BX


				MOV BX,AX

				MOV CX,16
				MOV AH,2

			@PRINT:
				SHL	BX,1
				JNC	@ZERO

				MOV DL,'1'
				JMP	@DISPLAY

			 @ZERO:
				MOV DL,'0'

			 @DISPLAY:
				INT 21H

				LOOP @PRINT



				POP BX
				POP CX

				RET
	WRITE ENDP



;************************************************;
;************************************************;
; PROC   : RANDOM 
; JOB	 : generate 16 bit 
; input  : AX
; output : AX - the random number
;************************************************;
;************************************************;	

	RANDOM PROC

				SHL	AX,1
				XOR DX,DX

				TEST AX,8000H
				JNE	@15_BIT
				JMP @SKIP_1

			@15_BIT:
				MOV DH,1

			@SKIP_1:
				TEST AX,4000H
				JNE	@14_BIT
				JMP @SKIP_2

			@14_BIT:
				MOV DL,1

			@SKIP_2:

				XOR DH,DL
				AND AX,0FFFEH
				OR AL,DH
				AND AX,7FFFH


				RET
	RANDOM ENDP

END MAIN

قم بتعديله بالطريقة التي تناسبك .

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#6

شكرا جزيييييييلا لك

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

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

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

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

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

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