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

مساعده فى طباعة نص على الشاشه

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

هذا برنامج يقوم بطباعة الاسم فقط ....

ارجو المساعده بحيث يقوم بطباعة الاسم واسم الماده واسم الجامعه واسم الدكتور

وشكرا لكم .......

raa5.ASM

#2

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

لقد قمت بتعديل على البرنامج ليصبح كما يلي :

يطلب من المستعمل إدخال الإسم شرط أن لا يتعدى 30 حرفا ويمكن أن نغير الطول حسب ما نريد.

بعد هذا نطبع الجملة my name is متبوعة بالإسم الذي أدخلناه وهكدا يمكن أن نضيف بنفس الطريقة اسم الجامعة وغير ذلك :

s_seg segment para stack
  db 100 dup ("?")
  
  s_seg ends
  
  d_seg segment

	nam db  30, 30 DUP ('0');buffer for entered name
	nline      db  10,10,'$'    ; this prints a new line
message     db  "Enter Your Name :",10,13 ,'$'
  string db "my name is : $"

    d_seg ends
  
  c_seg segment
  assume cs:c_seg , ds:d_seg , ss:s_seg
  
         main proc
         mov ax,d_seg
         mov ds,ax
;******** Print the message******************
lea dx,message
mov ah,9
int 21h
;*******************************************
;******** Process the entered string ********
lea dx,nam
mov di,dx

mov ah,0Ah
int 21h     
    
 xor bx,bx       
mov bl,[di+1]  ;bl will contain lenth of string
inc bl
inc bl
mov byte ptr [di + bx],'$'; make the end of string
;*********************************************
;******** print a new line
lea dx,nline
mov ah,9
int 21h

;*********** Print string
lea dx,string
mov ah,9
int 21h
;*********** print the name
lea dx,nam
inc dx
inc dx
mov ah,9
int 21h
;******** print a new line
lea dx,nline
mov ah,9
int 21h
mov ah,4ch
int 21h

         main endp
         c_seg ends
         end main

إلى اللقاء.

#3

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

مشكور اخ كليك على المساعده .....

لكن واجهتني مشكله هو عدم معرفتي في اي مكان اضع الجمل المطلوبه وهي

اسم الجامعه واسم الماده

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

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

#4

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

يمكن أن نستعمل البرنامج السابق لأي جملة نكتبها بالكايبورد بعلم أن البافر nam ولم استعمل name لأنه خاص بالكمبايلر هو سيأخد الجملة التي ندخلها . فلنفرض أننا أردنا أن ندخل اسم الجامعة مثلا univ فسنخصص له بافر بالكمية التي نريد نقول مثلا 100 بايت ولهدا يجب أن نقوم بتعريفه في data وسيكون مثلا :

d_seg segment

nam db  30, 30 DUP ('0');buffer for entered name
univ  db  100  DUP (0)

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

إلى اللقاء.

#5

هل من الممكن ان تكتب البرنامج كاملا

لانني حاولت به ولم استطع ان اقوم باضافه المطلوب

وشكرا

#6

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

المراد في هذا المنتدى هو أن يعطي كل واحد محاولاته لكي نتجنب أن نعطي الحل الجاهز. ولهذا يمكن أن تضع هنا محاولتك حتى نرى أين يكمن الخطء وقد يكون هذا أكثر استفادة.

إلى اللقاء.

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

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