בעיה באסמבלי

MTKOL

New member
בעיה באסמבלי

שלום לכולם, אני מתכנת באסמבלי ויש לי בעיה-אני לא יודע כ"כ טוב לשלב את הקוד שלי בתוך סי פלוס פלוס...רציתי בעיקרון לשלב קוד שמאתחל את העכבר ומעביר לי את המיקום (X,Y) לתוך משתנים (לאחר הרצת קטע האסמבלי), מישהו יכול לעזור לי? - לתת לי לפחות רק את הקוד באסמבלי שעושה זאת? בתודה רבה מראש
 

vinney

Well-known member
אל תעשה את זה

windows מאוד לא אוהבת כאלה דברים. תשתמש ב APIs.
 

MTKOL

New member
תראה...

הבעיה זה שאני לא ממש תיכנתתי עד עכשיו כ"כ בווינדוס אלא אם כן מדובר דרך סביבת 16 ביט פשוטה....רוב התוכניות (גם הפשוטות וגם המורכבות יותר) נכתבו דרך סביבת דוס...ככה שאני לא כ"כ מתמצא בכיתבה לסביבת ווינדוס ולכן ביקשתי את עזרתכם...אז מה אתם מציעים לעשות...? כי כמו שאמרתי...אני צריך לשלב בתוך קוד הסי פלוס פלוס שלי קטע אסמבלי שמאתחל לי את העכבר ומעביר לי את המיקום של העכבר דרך - X,Y...אבל יש אולי דרך אחרת? ואם כן-מהי ואיך אפשר לממש אותה...?
 

vinney

Well-known member
זה פשוט לא יעבוד

אתה צריך להשתמש בספריות ה MFC. אם אתה מתכנת ב NET., אז יש את הספריות של NET. שיעזרו לך. אני לא מכיר בדיוק איך לעשות את זה, עקרונית אתה לא יכול לדעת כל כך בקלות איפה נמצא העכבר, אבל החלון שלך מקבל EVENT על כל תזוזה/לחיצה של העכבר מעל לחלון שלך, יחד עם EVENT כזה אתה מקבל את הקואורדינטות. אתה יכול להשתמש בזה. אם כל מה שכתבתי זה סינית מדוברת בשבילך, אז אני מציע לך לפנות ליסודות התכנות בWindows ו event driven באופן כללי, כי זה ממש לא כמו בדוס.
 

scalla

New member
משאלה קודמת שלך, לא הבנתי

אתה עובד עם קומפיילר של דוס או של חלונות.
 

MTKOL

New member
קודם כל...

אני מתכנת בשני המהדרים - גם זה של בורלנד של דוס...(פרימטיבי אבל מעולה לדעתי)...ומצד שני אני עובד על VISUAL STUDIO .NET.... בכל אופן, השאלה העיקרית היא להכניס לקוד הסי פלוס פלוס שלי את הקטע אסמבלי שאני לא מצליח לבנות... ;/
 

hatulflezet

New member
לא ברור

מצד אחד, אתה אומר שיש לך קוד אסמבלי שאתה רוצה להכניס ל++C מצד שני אתה המבקש קוד אסמבלי - יש לך קוד אסמבלי או לא? אם יש לך, אז לא ברור לי האם אתה יודע לשלב אותו ב++C - והבעיה שלך היא בזמן ריצת התוכנית - או שאתה שואל איך בכלל לעבוד עם סינטקס של שילוב קוד אסמבלי ב++C?
 

MTKOL

New member
עוד פעם-

יש לי קוד בסי פלוס פלוס....ואני מחפש קוד אסמבלי שיאתחל את העכבר ויחזיר לי את מיקום העכבר לשני משתנים - X,Y...
 

zbobo

New member
אמממ...חבר שלי עשה את זה

אני לא יודע מה בנוגע לויזואל אבל בבורלנד(הגירסא הישנה שפעלה בדוס) חבר שלי עשה את מה שאתה רוצה וזה בכלל לא בעייה אז זה פסיקה לאתחל את העבר: MOV AX,00H INT 33H זה פסיקה להציג את העכבר: MOV AX,01H INT 33H וזה פסיקה שמחזירה לך את המיקום של העכבר ומקש שנלחץ(בעכבר כמובן): MOV AX,03H INT 33H BX=1 IF LEFT BUTTEN BX=2 IF RIGHT BX=3 IF NIDDEL CX=X OF MOUSE DX=Y OF MOUSE בקשר למיקום הוא מתאים למצב גרפי 640=X Y=200 מקווה שעזרתי אם אתה צריך עוד משהו רק תשאל או שאתה יכול לחפש באינטרנט חומר על פסיקה 33 שזה עכבר
 

vinney

Well-known member
שים לב

זה נכון, אבל רק ל DOS (real mode). בחלונות זה לא יעבוד.
 
למעלה