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

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

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

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

  1.  
  2. .model small,c
  3. .486
  4. .stack
  5. .data
  6. s1 db "ALI"
  7. .code
  8. print proc s:ptr word
  9. uses si,di,es,ds,cx
  10. locals
  11. mov cx,3
  12. mov si,offset s
  13. xor di,di
  14. xor bx,bx
  15. push 0b800h
  16. pop es
  17. mov di,(160*5)+80
  18. again: mov al,ds:[si]
  19. mov es:[di],al
  20. inc si
  21. inc di
  22. inc di
  23. loop again
  24. ret
  25. print endp
  26. .startup
  27. mov ah,0
  28. mov al,3
  29. int 10h
  30. call print,offset s1
  31. .exit
  32. end
  33.  
  34.  

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

وهاد الي جربتو انا

  1.  
  2. .model small,c
  3. .486
  4. .stack
  5. .data
  6. s1 db "ALI"
  7. .code
  8. print proc s:ptr word
  9. uses si,di,es,ds,cx
  10. locals
  11. mov cx,3
  12. mov si,offset s
  13. xor di,di
  14. xor bx,bx
  15. push 0b800h
  16. pop es
  17. mov di,(160*5)+80
  18. again: mov al,ds:[si]
  19. mov es:[di],al
  20. inc si
  21. inc di
  22. inc di
  23. loop again
  24. mov si,offset s
  25. add di,100
  26. inc bx
  27. cmp bx,5
  28. jle again
  29. ret
  30. print endp
  31. .startup
  32. mov ah,0
  33. mov al,3
  34. int 10h
  35. call print,offset s1
  36. .exit
  37. end
  38.  
  39.  

بس ما زبط فيا ريت تساعدوني وبكون شاكر الكو

تم تعديل هذه المشاركة بواسطة Xacker في 8 أبريل 2009 في 01:15

#2

طيب على أي أساس أنت قمت بالتغيير؟

بمعنى، هل فهمت البرنامج الأساسي كيف يعمل وعلى أي أساس تتم الطباعة في وسط السطر مثلاً؟

Do as I say, not as I do

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

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