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

كيف أرسم مربع من محارف وحسب رقم مدخل

بدأه طالبه11 في 25 مايو 2009 · 7 رد · 600 مشاهدة · في أرشيف قسم الـــ Assembly
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

عندي سؤال آخر:

برنامج يطلب من المستخدم ادخال حرف وعدد ويقوم البرنامج برسم مربع من الحرف المدخل وطول اضلاعه العدد...

اما ان يكون المربع فارغ من الداخل او ملئ_ممتلئ_ ...كيف راح يكون ماعرفت كيف اعمله..

تم تعديل هذه المشاركة بواسطة Xacker في 26 مايو 2009 في 23:18 — السبب: تم فصل هذه المشاركة والمشاركات اللاحقة في 

#2

حاولي كتابته كخوارزمية pseudo قبل البدء به بالأسمبلي

Do as I say, not as I do

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

#3

هذه محاولتي...لكنه لم يرسم المربع

.MODEL SMALL
.STACK 100H
.DATA
LF DB 'Enter a character:  $'
RF DB 0AH,'Enter a number: $'
C DB ?
NUM DB ?
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX

MOV AH,9
LEA DX,LF
INT 21H

MOV AH,1
LEA DX,C
INT 21H

MOV AH,9
LEA DX,RF
INT 21H

MOV AH,1
LEA DX,NUM
INT 21H


CMP DX,0
JG LOOP_
LOOP_:
INT 21H
DEC DX
JG LOOP_


MOV AH,4CH
INT 21H
MAIN ENDP
END MAIN

في انتظار الجواب

#4

على أي أساس يرسم المربع؟

هذا بكامله خاطئ ولا معنى له

CMP DX,0
JG LOOP_
LOOP_:
INT 21H
DEC DX
JG LOOP_

Do as I say, not as I do

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

#5

طيب انا مو عارفه كيف اعملها ...

ولا عارفه اتعامل مع اللوب..ياليت لو توضح لي اكثر..الإختبار غدا

#6

هذا مثال، مجال الأرقام المقبولة من 0 - 9

* لا يتحقق من كون المدخل رقم أو شئ آخر. انتبهي

 

[color= #7f00ff;].model small

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

num	[color= #7f00ff;]dw	[color= #7f7f7f;]0

char	[color= #7f00ff;]db	[color= #7f7f7f;]0[color= #0000ff;],[color= #0000a0;]"$"

insert	[color= #7f00ff;]db	[color= #0000a0;]"Please insert a char: $"

insert2	[color= #7f00ff;]db	[color= #0000a0;]"Please insert a num: $"

[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;]ah[color= #0000ff;],[color= #7f7f7f;]9

	[color= #ff007f;]lea	[color= #7f7f40;]dx[color= #0000ff;],insert

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

 

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

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

 

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

 

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

	[color= #ff007f;]call	CRLF

 

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

	[color= #ff007f;]lea	[color= #7f7f40;]dx[color= #0000ff;],insert2

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

 

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

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

 

	[color= #ff007f;]sub	[color= #7f7f40;]al[color= #0000ff;],[color= #ff0000;]30h

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

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

 

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

	[color= #ff007f;]call	CRLF

 

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

	[color= #ff007f;]call	do_row

 

	[color= #007f00; font-style: italic;]; insert CRLF

	[color= #ff007f;]call	CRLF

 

	[color= #007f00; font-style: italic;]; do columns

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

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

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

	[color= #ff007f;]sub	[color= #7f7f40;]bx[color= #0000ff;],[color= #7f7f7f;]2

cols[color= #0000ff;]:

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

	[color= #ff007f;]jne	[color= #aa007f;]@F

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

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

@@[color= #0000ff;]:

	[color= #ff007f;]cmp	[color= #7f7f40;]cx[color= #0000ff;],[color= #7f7f7f;]2

	[color= #ff007f;]jne	[color= #aa007f;]@F

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

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

	[color= #007f00; font-style: italic;];

	[color= #ff007f;]call	CRLF

	[color= #ff007f;]jmp	@[color= #7f7f7f;]1

@@[color= #0000ff;]:

	[color= #ff007f;]mov	[color= #7f7f40;]dl[color= #0000ff;],[color= #ff0000;]20h

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

	[color= #ff007f;]loop	cols

@[color= #7f7f7f;]1[color= #0000ff;]:

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

	[color= #ff007f;]dec	[color= #7f7f40;]bx

	[color= #ff007f;]jnz	cols

 

	[color= #ff007f;]call	do_row

 

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

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

main	[color= #7f00ff;]endp

[color= #007f00; font-style: italic;];###################

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

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

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

 

	[color= #007f00; font-style: italic;]; do bottom row

row[color= #0000ff;]:

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

	[color= #ff007f;]loop	row

	[color= #ff007f;]ret

do_row	[color= #7f00ff;]endp

[color= #007f00; font-style: italic;];###################

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

	[color= #ff007f;]mov	[color= #7f7f40;]dl[color= #0000ff;],[color= #ff0000;]0Ah

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

	[color= #ff007f;]mov	[color= #7f7f40;]dl[color= #0000ff;],[color= #ff0000;]0Dh

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

	[color= #ff007f;]ret

CRLF	[color= #7f00ff;]endp

[color= #7f00ff;]end	main

تم تعديل هذه المشاركة بواسطة Xacker في 26 مايو 2009 في 04:20 — السبب: تحسين الخوارزمية

Do as I say, not as I do

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

#7

شكرا يعطيك العافيه...

اممم فيه عبارات غريبه على ماشفتها في الدرس مثل

main	proc	far

far

call

CRLF	proc	far

على العموم لي عوده بإذن الله بعد الإختبارات...

الى ذلك الوقت استودعكم الله الذي لاتضيع ودائعه....

#8

اقرأي هذا المقطع:

http://webster.cs.ucr.edu/AoA/DOS/ch11/CH1...ml#HEADING1-133

والذي يليه تماماً.

Do as I say, not as I do

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

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