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

[ تمت الإجابة ]برنامج تكرار حروف وارقام؟ مساعدة

بدأه good programmer في 18 مايو 2009 · 3 رد · 1,038 مشاهدة · في أرشيف قسم الـــ Assembly
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم يا اخوان رجاء بدي كود برنامج يطبع التالي انا كان عندي محاولات لكن فشلت فبالرجاء المساعدة

a

1 2

bcd

3456

efgh

بشرط يكون في البرنامج 2loop

لا اكثر ولا اقل

وهذي هي محاولتي

--------------------------------------

.MODEL SMALL

.STACK 64

.DATA
	X  DB  "A"


	y db "1"

	ln  DB 13,10,"$"
;---------------------------  

.CODE
  MAIN PROC FAR

   MOV AX,@DATA
   MOV DS,AX

	  MOV CX,4
 OUT:

	  MOV BX,CX 

	  MOV CX,1

START:
 MOV AH,9
 LEA DX,ln
 INT 21H

   MOV AH,2
   MOV DX,X
   INT 21H
inc x


 MOV AH,9
 LEA DX,ln
 INT 21H

mov cx,2
s:
mov ah,2
mov dx,y
int 21h

inc y

loop s

  mov cx,bx
 LOOP OUT

 MOV AX,4C00H
 INT 21H

;---------------------------
  MAIN ENDP

END

تم تعديل هذه المشاركة بواسطة Xacker في 18 مايو 2009 في 13:39

learn assembly it is fast small and you will be Professional programmer

#2
 

[color= #7f00ff;].model small

[color= #0000ff;].[color= #7f00ff;]stack [color= #ff0000;]64h

[color= #0000ff;].[color= #7f00ff;]data

x	[color= #7f00ff;]db	[color= #0000a0;]"a"

y	[color= #7f00ff;]db	[color= #0000a0;]"1"

col	[color= #7f00ff;]db	[color= #7f7f7f;]1

row	[color= #7f00ff;]db	[color= #7f7f7f;]1

 

[color= #0000ff;].[color= #7f00ff;]code

main	[color= #7f00ff;]proc	[color= #aa007f;]far

 

	[color= #ff007f;]mov	[color= #7f7f40;]ax[color= #0000ff;],@[color= #7f00ff;]data

	[color= #ff007f;]mov	[color= #7f7f40;]ds[color= #0000ff;],[color= #7f7f40;]ax

 

	[color= #ff007f;]mov	[color= #7f7f40;]cx[color= #0000ff;],[color= #7f7f7f;]5

again[color= #0000ff;]:

	[color= #ff007f;]push	[color= #7f7f40;]cx

 

	[color= #ff007f;]xor	[color= #7f7f40;]ax[color= #0000ff;],[color= #7f7f40;]ax

	[color= #ff007f;]xor	[color= #7f7f40;]cx[color= #0000ff;],[color= #7f7f40;]cx

	[color= #ff007f;]mov	[color= #7f7f40;]cl[color= #0000ff;],col

 

	[color= #ff007f;]mov	[color= #7f7f40;]al[color= #0000ff;],row

	[color= #ff007f;]mov	[color= #7f7f40;]bl[color= #0000ff;],[color= #7f7f7f;]2

	[color= #ff007f;]div	[color= #7f7f40;]bl

	[color= #ff007f;]test	[color= #7f7f40;]ah[color= #0000ff;],[color= #7f7f40;]ah

	[color= #ff007f;]je	number

 

letter[color= #0000ff;]:

	[color= #ff007f;]mov	[color= #7f7f40;]ah[color= #0000ff;],[color= #7f7f7f;]2

	[color= #ff007f;]mov	[color= #7f7f40;]dl[color= #0000ff;],x

	[color= #ff007f;]int	[color= #ff0000;]21h

	[color= #ff007f;]add	x[color= #0000ff;],[color= #7f7f7f;]1

	[color= #ff007f;]loop	letter

	[color= #ff007f;]add	col[color= #0000ff;],[color= #7f7f7f;]1

	[color= #ff007f;]jmp	newline

 

number[color= #0000ff;]:

	[color= #ff007f;]mov	[color= #7f7f40;]ah[color= #0000ff;],[color= #7f7f7f;]2

	[color= #ff007f;]mov	[color= #7f7f40;]dl[color= #0000ff;],y

	[color= #ff007f;]int	[color= #ff0000;]21h

	[color= #ff007f;]add	y[color= #0000ff;],[color= #7f7f7f;]1

	[color= #ff007f;]loop	number

	[color= #ff007f;]add	col[color= #0000ff;],[color= #7f7f7f;]1

 

newline[color= #0000ff;]:

	[color= #ff007f;]mov	[color= #7f7f40;]ah[color= #0000ff;],[color= #7f7f7f;]2

	[color= #ff007f;]mov	[color= #7f7f40;]dl[color= #0000ff;],[color= #7f7f7f;]13

	[color= #ff007f;]int	[color= #ff0000;]21h

	[color= #ff007f;]mov	[color= #7f7f40;]ah[color= #0000ff;],[color= #7f7f7f;]2

	[color= #ff007f;]mov	[color= #7f7f40;]dl[color= #0000ff;],[color= #7f7f7f;]10

	[color= #ff007f;]int	[color= #ff0000;]21h

 

	[color= #ff007f;]add	row[color= #0000ff;],[color= #7f7f7f;]1

 

	[color= #ff007f;]pop	[color= #7f7f40;]cx

	[color= #ff007f;]loop	again

 

	[color= #ff007f;]mov	[color= #7f7f40;]ax[color= #0000ff;],[color= #ff0000;]4C00h

	[color= #ff007f;]int	[color= #ff0000;]21h

 

main	[color= #7f00ff;]endp

[color= #7f00ff;]end main

لم أستطع التفكير بطريقة للاستغناء عن استخدام JE/JMP

لكن لم أستخدمهم مع تكرار الحروف.

تم تعديل هذه المشاركة بواسطة Xacker في 18 مايو 2009 في 17:24

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#3

شكرا اخي على ردك الجميل وعلى تنظيم الموضوع وقد كنت وجدت الحل حيث كان باستخدام ثلاث لووب الشرط وليس اثنان ام حلك فهو جميل وطريقة افضل ولكن كنت مقيد بشرط الدكتور

learn assembly it is fast small and you will be Professional programmer

#4

3 loop أمر بسيط جداً

بكل الأحوال بالتوفيق ولو لديك وقت اكتب الحل للأعضاء على بساطته لكن... حتى يستفيد منه سواك (أو بالأحرى حتى ما يسألو عنه بدون بحث :lol:)

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

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

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

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

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

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