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

[ تمت الإجابة ]ممكن مساعده

مغلق
بدأه غير البش في 10 يناير 2008 · 2 رد · 1,409 مشاهدة · في أرشيف قسم الـــ Assembly
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

اخواني ممكن مساعده

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

Aالى

F

ولا ضبط يطبع لي اشكال غريبه

.model small
.stack 100h
.data
E db 0AH,0DH,7H,"LETTERS:",0AH,0DH,'$'
BYE DB 0DH,0AH,7H,"ByE^_^$"

.code
main proc
mov ax,@DATA
MOV DX,AX
MOV AH,9
LEA DX,E
INT 21H

XOR AX,AX
XOR CX,CX
XOR DX,DX

MOV DL,10
MOV CL,6
MOV AH,2

TOP:
INT 21H
INC DL
LOOP TOP

XOR DX,DX

MOV AH,9
LEA DX,BYE
INT 21H

MOV AH,4CH
INT 21H

main endp

end main

المفروض يطبع

LETTERS:

ABCDEF

BYE

ولكن يطبع

اقتباس
Microsoft Windows XP [Version 5.1.2600]

© Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\user>CD\

C:\>ASM

'ASM' is not recognized as an internal or external command,

operable program or batch file.

C:\>F:\1\T.EXE

ïð┤ ì▬♫ ═!3└3╔3Ê▓ ©Ú

▒♠┤☻═!■┬Ô·3Ê┤ ì▬∟ ═!┤L═!

LETTERS:

ïð┤ ì▬♫ ═!3└3╔3Ê▓ ©Ú

▒♠┤☻═!■┬Ô·3Ê┤ ì▬∟ ═!┤L═!

LETTERS:

C:\>

ممكن اعرف ايش الخطاء

ولا اعرف ليش يكررها مرتين؟؟

وسؤالي الثاني

لما ابغ اطبع حرف هل ادخل HEX OR DEC

جربت بهذا البرنامج الطريقتين (41و65)ومع ذلك ما يضبط؟؟

جزاكم الله كل خير

تم تعديل هذه المشاركة بواسطة Junkie في 10 يناير 2008 في 18:29 — السبب: تحسين شكل ظهور الموضوع

#2

وعليكم السلام

الخطأ عندك :

1- في اول الكود قمت بوضع عنوان الداتا في DX مع ان المفروض يكون في المسجل DS

Befor:
mov ax,@DATA
MOV DX,AX

After:
mov ax,@data
mov ds,ax

2- عند طباعة الحروف وضعت قيمة DL والتي تمثل الحرف بـ10 اي 0xA وهذا يا اخي ليس حرف "A" وانما رقم ليس له تمثيل حرفي مقروء ...

يمكنك وضع DL =65 او"DL = "A

Before:
MOV DL,10
MOV CL,6
MOV AH,2

After:
mov dl,"A"
mov cl,6
mov ah,2

OR :
mov dl,65
mov cl,6
mov ah,2

قمت ايضا باضافة مقطع لجعل البرنامج ينتظر بعد طباعة Bye

الكود بالكامل :

.model small
.stack 100h
.data
E db 0AH,0DH,7H,"LETTERS:",0AH,0DH,'$'
BYE DB 0DH,0AH,7H,"ByE^_^$"

.code
main proc
mov ax,@data
mov ds,ax
mov ah,9
lea dx,E
int 21h



mov dl,"A"
mov cl,6
mov ah,2

TOP:
int 21h
inc dl
loop TOP

xor dx,dx

mov ah,9
lea dx,BYE
int 21h


mov	ax,0C07h
int	21h

mov ax,4C00h
int 21h

main endp
end main

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#3

GamingMasteR

مشكوووووور اخوي

جزاك الله كل خير

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

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