aderfiad

[ تمت الإجابة ]كتابة غريبة عند التنفيد ... رغم ان الكود صحيح

9 ردود في هذا الموضوع

السلام عليكم

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


.stack 100h
.data
message DB "Hello Word!",13,10,"&"
.code
start:
mov ax,@data
mov ds,ax

mov cx,9
display_:
mov ah,9
mov dx, offset message
int 21h
loop display_
mov ah,4ch
int 21h
end start
.model small

لكن عند التنفيد تضهر كتابة غريبة تكرر 9 مرات مع كتابة الكلمة


Microsoft ® Macro Assembler Version 5.10
Copyright © Microsoft Corp 1981, 1988. All rights reserved.


48808 + 440051 Bytes symbol space free

0 Warning Errors
0 Severe Errors

C:\masm>link hello;

Microsoft ® Overlay Linker Version 3.64
Copyright © Microsoft Corp 1983-1988. All rights reserved.


C:\masm>hello

Hello Word
&&ïW☻ëFⁿëV■─^ⁿ&€⌂♦ uµïف]├Uïهâه☻V─^♦&ïG♠ëF■♂└t◄ï╪╤عï6ê?ï ï^♦&^ïف]├�UïهâV╕ P+└P v
♠ك ┬â─♠ة♫<ï▬►<ëF°ëV·€~
t4╕ P╕☺ P v♦ك▄┴â─♠ëFⁿëV■€>☺B u♀ïFⁿïV■^ïف]├�─^ⁿ&╞G↨hن0╕ P+└P v♦كر┴â─♠╕☻ P 6►<
6♫<ك)tâ─♠ëFⁿëV■─^ⁿ&╞G↨`ة"☺9♠ ☺r
╕↓♦Pك@ذâ─☻─^ⁿïF°ïV·&ëG►&ë! ♠ ☺▲ !►☼ ☻2P☻ï^ⁿة ☺ ♠ ☺&ëG♀è&ê
G♫لf Uïهâه↕VïF♦ïV♠ëFَëVِ─^َ&€⌂♣ u♥ل▬☻&ï&ïW
ëFىëV≡&ïG♀ëFٌ─^♦&╞G♦♥&╞G
♦ ♠ى;♂└ujِFى☺u▬ة°;ï▬·;♣☺ â╥ Hello Word
&&ïW☻ëFⁿëV■─^ⁿ&€⌂♦ uµïف]├Uïهâه☻V─^♦&ïG♠ëF■♂└t◄ï╪╤عï6ê?ï ï^♦&☺^ïف]├�UïهâV╕ P+└P
v♠ك ┬â─♠ة♫<ï▬►<ëF°ëV·€~
t4╕ P╕☺ P v♦ك▄┴â─♠ëFⁿëV■€>☺B u♀ïFⁿïV■^ïف]├�─^ⁿ&╞G↨hن0╕ P+└P v♦كر┴â─♠╕☻ P 6►<
6♫<ك)tâ─♠ëFⁿëV■─^ⁿ&╞G↨`ة"☺9♠ ☺r
╕↓♦Pك@ذâ─☻─^ⁿïF°ïV·&ëG►&ëHello Word
&&ïW☻ëFⁿëV■─^ⁿ&€⌂♦ uµïف]├Uïهâه☻V─^♦&ïG♠ëF■♂└t◄ï╪╤عï6ê?ï ï^♦&^ïف]├�UïهâV╕ P+└P v
♠ك ┬â─♠ة♫<ï▬►<ëF°ëV·€~
t4╕ P╕☺ P v♦ك▄┴â─♠ëFⁿëV■€>☺B u♀ïFⁿïV■^ïف]├�─^ⁿ&╞G↨hن0╕ P+└P v♦كر┴â─♠╕☻ P 6►<
6♫<ك)tâ─♠ëFⁿëV■─^ⁿ&╞G↨`ة"☺9♠ ☺r
╕↓♦Pك@ذâ─☻─^ⁿïF°ïV·&ëG►&ëHello Word
&&ïW☻ëFⁿëV■─^ⁿ&€⌂♦ uµïف]├Uïهâه☻V─^♦&ïG♠ëF■♂└t◄ï╪╤عï6ê?ï ï^♦&☺^ïف]├�UïهâV╕ P+└P
v♠ك ┬â─♠ة♫<ï▬►<ëF°ëV·€~
t4╕ P╕☺ P v♦ك▄┴â─♠ëFⁿëV■€>☺B u♀ïFⁿïV■^ïف]├�─^ⁿ&╞G↨hن0╕ P+└P v♦كر┴â─♠╕☻ P 6►<
6♫<ك)tâ─♠ëFⁿëV■─^ⁿ&╞G↨`ة"☺9♠ ☺r
╕↓♦Pك@ذâ─☻─^ⁿïF°ïV·&ëG►&ëHello Word
&&ïW☻ëFⁿëV■─^ⁿ&€⌂♦ uµïف]├Uïهâه☻V─^♦&ïG♠ëF■♂└t◄ï╪╤عï6ê?ï ï^♦&^ïف]├�UïهâV╕ P+└P v
♠ك ┬â─♠ة♫<ï▬►<ëF°ëV·€~
t4╕ P╕☺ P v♦ك▄┴â─♠ëFⁿëV■€>☺B u♀ïFⁿïV■^ïف]├�─^ⁿ&╞G↨hن0╕ P+└P v♦كر┴â─♠╕☻ P 6►<
6♫<ك)tâ─♠ëFⁿëV■─^ⁿ&╞G↨`ة"☺9♠ ☺r
╕↓♦Pك@ذâ─☻─^ⁿïF°ïV·&ëG►&ëHello Word
&&ïW☻ëFⁿëV■─^ⁿ&€⌂♦ uµïف]├Uïهâه☻V─^♦&ïG♠ëF■♂└t◄ï╪╤عï6ê?ï ï^♦&☺^ïف]├�UïهâV╕ P+└P
v♠ك ┬â─♠ة♫<ï▬►<ëF°ëV·€~
t4╕ P╕☺ P v♦ك▄┴â─♠ëFⁿëV■€>☺B u♀ïFⁿïV■^ïف]├�─^ⁿ&╞G↨hن0╕ P+└P v♦كر┴â─♠╕☻ P 6►<
6♫<ك)tâ─♠ëFⁿëV■─^ⁿ&╞G↨`ة"☺9♠ ☺r
╕↓♦Pك@ذâ─☻─^ⁿïF°ïV·&ëG►&ëHello Word
&&ïW☻ëFⁿëV■─^ⁿ&€⌂♦ uµïف]├Uïهâه☻V─^♦&ïG♠ëF■♂└t◄ï╪╤عï6ê?ï ï^♦&^ïف]├�UïهâV╕ P+└P v
♠ك ┬â─♠ة♫<ï▬►<ëF°ëV·€~
t4╕ P╕☺ P v♦ك▄┴â─♠ëFⁿëV■€>☺B u♀ïFⁿïV■^ïف]├�─^ⁿ&╞G↨hن0╕ P+└P v♦كر┴â─♠╕☻ P 6►<
6♫<ك)tâ─♠ëFⁿëV■─^ⁿ&╞G↨`ة"☺9♠ ☺r
╕↓♦Pك@ذâ─☻─^ⁿïF°ïV·&ëG►&ëHello Word
&&ïW☻ëFⁿëV■─^ⁿ&€⌂♦ uµïف]├Uïهâه☻V─^♦&ïG♠ëF■♂└t◄ï╪╤عï6ê?ï ï^♦&^ïف]├�UïهâV╕ P+└P v
♠ك ┬â─♠ة♫<ï▬►<ëF°ëV·€~
t4╕ P╕☺ P v♦ك▄┴â─♠ëFⁿëV■€>☺B u♀ïFⁿïV■^ïف]├�─^ⁿ&╞G↨hن0╕ P+└P v♦كر┴â─♠╕☻ P 6►<
6♫<ك)tâ─♠ëFⁿëV■─^ⁿ&╞G↨`ة"☺9♠ ☺r
╕↓♦Pك@ذâ─☻─^ⁿïF°ïV·&ëG►&ëHello Word
&&ïW☻ëFⁿëV■─^ⁿ&€⌂♦ uµïف]├Uïهâه☻V─^♦&ïG♠ëF■♂└t◄ï╪╤عï6ê?ï ï^♦&☺^ïف]├�UïهâV╕ P+└P
v♠ك ┬â─♠ة♫<ï▬►<ëF°ëV·€~
t4╕ P╕☺ P v♦ك▄┴â─♠ëFⁿëV■€>☺B u♀ïFⁿïV■^ïف]├�─^ⁿ&╞G↨hن0╕ P+└P v♦كر┴â─♠╕☻ P 6►<
6♫<ك)tâ─♠ëFⁿëV■─^ⁿ&╞G↨`ة"☺9♠ ☺r
╕↓♦Pك@ذâ─☻─^ⁿïF°ïV·&ëG►&ë
C:\masm>masm hello;

اين المشكل ؟

------------

وهدا الكود ايضا


.stack
.data
msg1 DB 13,10,"***********Start***********",13,10,"&"
msg2 DB 13,10,"***********END***********",13,10,"&"
msg_error_create DB 13,10,"***********Error creating the file***********",13,10,"&"
msg_error_open DB 13,10,"***********Error opening the file***********",13,10,"&"
msg_error_write DB 13,10,"***********Error writing the file***********",13,10,"&"
msg_error_close DB 13,10,"***********Error closing the file***********",13,10,"&"
message DB "Hello World!",0
myfile DB "c:\myfile2.txt",0
handle DW ?
.code
start:
mov ax,@data
mov ds,ax

mov ah,9h
mov dx, offset msg1
int 21h
; Create the file
mov dx, offset myfile
xor cx,cx
mov ah,3ch
int 21h
jc error_create
; Open the file
mov dx, offset myfile
mov al,2
mov ah,3dh
int 21h
jc error_open
mov handle,ax
; write to the file
mov dx, offset message
mov bx,handle
mov cx,13
mov ah,40h
int 21h
jc error_write
cmp ax,cx
jne error

; close the file
mov bx,handle
mov ah,3eh
int 21h
jc error_close
;
mov ah,9h
mov dx, offset msg2
int 21h
; Exit to DOS
mov ah,4ch
int 21h
error_create:
mov ah,9h
mov dx, offset msg_error_create
int 21h
jmp error

error_open:
mov ah,9h
mov dx, offset msg_error_open
int 21h
jmp error

error_write:
mov ah,9h
mov dx, offset msg_error_write
int 21h
jmp error

error_close:
mov ah,9h
mov dx, offset msg_error_close
int 21h
jmp error

error:

mov ax,4c01h
int 21h
end start





.model small

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



Microsoft ® Segmented Executable Linker Version 5.60.339 Dec 5 1994
Copyright © Microsoft Corp 1984-1993. All rights reserved.


C:\tasm>open

***********Start***********
&
***********END***********
&
***********Error creating the file***********
&
***********Error opening the file***********
&
***********Error writing the file***********
&
***********Error closing the file***********
&Hello World! c:\myfile2.txt ïW☻°├ِ├ u♂€ع?2 ╤ع دج♠€ع☼t☼€√r
€√
t♣3╥3└├&ة¶ &ï▬▬ °├∙├♠ك╣→&è▲♀ &ï♫
نخ&è▲♫ &ï♫∟ نأî└;♠░mةخmï▬ذm├&ة↕ &ï▬¶ °├♠ك�→&è▲♀ لr ♠كt→&è▲♀ لe î┴│
ل^ ♠ك`→&è▲♀ &ï♫
ن♦î┴│
t!€√├كG→&è▲♀ نًك=→&è▲♀ نق&è▲ €ع?∙th€√
╣X►î╟كù03└ï╨├ك♀→&ك☻→&ï 2█ن↔&è♫♫ 2و♠&Ž♠► & &*▲♫ &*▲☼ 3└3╥ع‼∙╤╨╤╥ظ∙"█╤ض╤╥■╦u°├&è▲
t▼€√t5€√
t#€√↕t♀╣X►î╟ك#03└ن↑كآ↓& ن☼ك�↓& ن♠&ب♫ 2غ3╥├&€♫ @&€♫ €├&€♫ ├Vك/ &ï �ف ☼أ·5إ
▬^├Vك← &ï �ف ☼أ(6إ▬^├Vك أ↔6إ▬^├ï·ï╙ï┘ï≡&ة♦ &è♫ ╨┴âط☺&☻♫♠ ├╛x♥ل▀ &ِ♠ €u☺├
ï╨&ة♀ &ِ♠ @u♥ل2aل5aِ♠§t▬╛ت♥ل╡ &ِ♠ �&ِ♠ u☺├ï╨&ة♀ ل¶a╛┬♥لـ &ب ذ t☺├
***********END***********
&
***********Error creating the file***********
&
***********Error opening the file***********
&
***********Error writing the file***********
&
***********Error closing the file***********
&Hello World! c:\myfile2.txt ♠ ïW☻°├ِ├ u♂€ع?2 ╤ع دج♠€ع☼t☼€√r
€√
t♣3╥3└├&ة¶ &ï▬▬ °├∙├♠ك╣→&è▲♀ &ï♫
نخ&è▲♫ &ï♫∟ نأî└;♠░mةخmï▬ذm├&ة↕ &ï▬¶ °├♠ك�→&è▲♀ لr ♠كt→&è▲♀ لe î┴│
ل^ ♠ك`→&è▲♀ &ï♫
ن♦î┴│
t!€√├كG→&è▲♀ نًك=→&è▲♀ نق&è▲ €ع?∙th€√
╣X►î╟كù03└ï╨├ك♀→&ï ك☻→& 2█ن↔&è♫♫ 2و♠&Ž♠► & &*▲♫ &*▲☼ 3└3╥ع‼∙╤╨╤╥ظ∙"█╤ض╤╥■╦u°├&è▲
t▼€√∙t5€√
t#€√↕t♀╣X►î╟ك#03└ن↑كآ↓& ن☼ك�↓& ن♠&ب♫ 2غ3╥├&€♫ @&€♫ €├&€♫ ├Vك/ &ï �ف ☼أ·5إ
▬^├Vك← & �ف ☼أ(6إ▬^├Vك أ↔6إ▬^├ï·ï╙ï┘ï≡&ة♦ &è♫ ╨┴âط☺&☻♫♠ ├╛x♥ل▀ &ِ♠ €u☺├ï
╨&ة♀ &ِ♠ @u♥ل2aل5aِ♠§t▬╛ت♥ل╡ &ِ♠ &ِ♠ u☺├ï╨&ة♀ ل¶a╛┬♥لـ &ب ذ t☺├
C:\tasm>
C:\tasm>link open;

لا اعرف لمادا تضهر هده الكتابة

ممكن تفسير جازاكم الله خيرا

تم تعديل بواسطه aderfiad
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

لم استخدم الاسمبلى من زمان ,, تحذير اولى

فى اعتقادى وعلى ما يبدو من الكود انت نسيت ال $ فى اخر النص ولذا هو "يكر" فى ال Memory حتى يجدها

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكرا على الاجابة اخي

لكن اين نسيتها ؟

تم تعديل بواسطه aderfiad
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

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

أخي الكريم يقصد الأخ ASDen أنك نسيت رمز $ حيث وضعت

message DB "Hello Word!",13,10,"&"

ويجب أن تضع

message DB "Hello Word!",13,10,"$"

على أية حال هذا هو الكود

data segment
word db 0ah,0dh,'hello world!$';do not forget $
ends

stack segment
dw 128 dup(0)
ends



code segment
start:
mov ax, data
mov ds, ax
mov es, ax



mov cx,9
display_:
lea dx,word
mov ah,9
int 21h
loop display_

mov ax, 4c00h

int 21h

ends

end start

بالتوفيق :happy:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

نعم كان هدا هو الخطأ بالفعل

شكرا لكم شباب

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

سؤال غبي شوي

هل المشكلة أن النص لم يكن ينتهي بNull و أن $ كذلك ؟

ألا يمكن طباعة النص على حسب عدد حروفه ؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

كما تعلم اخ Syntax_err النص في مقاطعات الدوس ينتهي ب $ ، وفي Win32 API ينتهي ب Null

فيعتمد الموضوع على شرح الدالة او المقاطعة

فالمقاطعة int 21h,9h المستخدمة في الكود فوق تتطلب string ينتهي ب $

لاحظ ايضا دالة lstrcpy في ويندوز تتطلب string ينتهي ب Null

بينما lstrcpyn تستطيع تحديد عدد لحروف فيها .

0

شارك هذا الرد


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

هذا ما كنت لا أعلمه ^^

شكراَ على التوضيح :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .