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

برنامج ومطلوب تعديله ليقوم بوظيفة اخرى

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

السلام عليكم ..

هذا البرنامج يقرأ النص من احرف صغيرة إلى احرف كبيرة بطرح 20 خانه ست عشرية من جدول الآسكي وطبع النص على الشاشه.

المطلوب التعديل عليه ليقرأ نص ثم يطبعه بالمقلوب.

فكرتي هي حفظ البايت الأول من المصفوفه الذي يعبر عن طولها في رجستر BL ومن ثم الوصول ومن ثم عن طريق امرر القيمة إلى SI ريجستر ويبدأ العد من آخر المصفوفه ومن داخل الحلقة التكرارية اطرح واحد من القيمة كل مره حتى اصل للقيمة النهائية ولكن يطبع لي في المخرجات رموز غريبة :(.

اتمنى ان التوجيه والحل ، هل من تصحيح لي بطريقتي او بطريقة اخرى.

.MODEL SMALL

.STACK 200

.DATA
	MES1  DB 'Enter your string : ', '$'
	MES2	DB 0DH, 0AH,'Your String in Cap Letters: ','$'

	MYSTR	DB 21, 22 DUP('$')

	CAP  DB 21 DUP(?)
.CODE
.STARTUP
	LEA DX, MES1
	MOV AH, 09H
	INT 21H

	LEA DX, MYSTR
	MOV AH, 0AH
	INT 21H	

;**************************************
; CONVERT TO CAP LETTERS
	MOV CH, 00
	MOV CL, MYSTR[1]
	LEA SI, MYSTR+2
	LEA DI, CAP	

NXT:	MOV AL, BYTE PTR [SI]
	SUB AL, 20H
	MOV [DI], AL
	ADD SI, 1
	INC DI
	LOOP NXT
	MOV BYTE PTR[DI], '$'
;**************************************
; NOW DISPLAY

	CALL nl	; NEW LINE
	LEA DX, MES2
	MOV AH, 09H
	INT 21H
	LEA DX, CAP
	MOV AH, 09
	INT 21H
.EXIT


nl proc near
	mov ah, 02
	mov dl, 0dh
	int 21h
	mov dl, 0ah
	int 21h
	ret
nl endp

;**************************************
END

تم تعديل هذه المشاركة بواسطة سيناريو في 19 أكتوبر 2004 في 23:43

#2

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

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

وملاحظة يجب أن لا ننقص 20 هيكس من كل حرف فلو نفترض أن المستعمل كتب شيئا ما بالكابيتال أو كتب رقما فهذا سيعطينا خطء فيما سنكتبه من بعد.

إلى اللقاء.

Upper-Reverse.zip

#3

شكرا أخي الكريم على المساعدة فقد استوضحت الفكرة بشكل كامل :).

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

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