בעייה בקוד...

MotiAd

New member
בעייה בקוד...

הקוד הבא...
.386p code segment assume CS:code MAIN proc mov eax, 40f2h mov ebx, 0118h MAIN endp code ends end MAIN​
נותן תוצאות לא צפויות ב-DEBUG. למה? לדוגמה בין שתי ההוראות MOV שלי יש איזשהו SUB שבכלל לא אמור להופיע שם?
 

erezsh

New member
לא יודע בקשר ל-SUB הזה..

אבל ניסית לסיים את התוכנית??? (int 20h עובד ב Debug) אם לא עושים את זה, מקבלים תוצאות אקראיות, בלתי-צפויות, מוזרות (לפעמים הרסניות)
 

jolp

New member
לא כל-כך קשור-

אתה מדבר על בעיות בזמן-ריצה, בעוד שמוטי מדבר על תצוגה משונה של קוד האסמבלי בדיבגר. אין קשר בין השניים.
 

erezsh

New member
זה כן קשור..

אם הוא הריץ את זה לפני שהוא הסתכל על זה, ואז זה השתגע...
 

MotiAd

New member
לא ניסיתי האמת...

לא חושב שזה נחוץ. רק רציתי לראות איך הקוד של התוכנית שלי נראה ב-TD(TURBO DEBUGGER)
 

jolp

New member
אם אני לא טועה הדבר נגרם

עקב השימוש שאתה עושה באוגרי 32 סיביות. DEBUG נועד ליישומים בני 16 סיביות ולכן הוא מפרש לא נכון את ה- Opcodes. עליך להשתמש בדיבגר של 32 סיביות (אני סבור ש- Turbo Debug יעבוד כהלכה). מקווה שסייעתי!
 

MotiAd

New member
סייעת גם סייעת אבל...

אני מדבר על Turbo Debugger לא בגירסת 32 BIT TD.EXE
 

jolp

New member
אז תחפש TD של 32 סיביות או דיבגר

אחר, כמו SoftIce. אם אתה רק רוצה להביט בקוד המקור אז W32Dasm היא תוכנה מעולה לדיס-אסמבלי.
 

MotiAd

New member
פיתרון לבעייה...

ה-TASM בגירסת 16 ביט יצר קוד לא חכם במיוחד. השתמשתי ב-Tasm 32 ביט וגם ב-Tlink 32 ביט ויצאה התוצאה המבורכת. הקוד סוף סוף הגיוני.
 
למעלה