פורסם 2013 במאי 1212 שנים אני מנחש - תחסר ממנה את המרווח (יש מרווח קבוע בין אות קטנה לאות גדולה) - תבדוק את זה, לא נגעתי באסמבלר כבר XX שנה וגם אז זה היה על אמולטור....
פורסם 2013 במאי 1212 שנים מחבר אני רוצה לעשות cmp בין si ל si+32ולעשות jump if not equalאני לא מצליח אבל זה לא מתקמפל לא יודע איך לכתוב נכון
פורסם 2013 במאי 1212 שנים אז תעלה לכאן את הקוד. תשתמש בכפתור הוספת קוד בשביל שהקוד יהיה נוח לקריאה (אין כפתור כזה בתגובה מהירה, צריך ללחוץ על "מצב מתקדם").
פורסם 2013 במאי 1212 שנים מחבר .DATA input_str db 20,?,20 dup(?).CODE start: mov ax, @data mov ds, ax input_toString: mov ah,0AH lea dx,input_str int 21H ;mov bl,dx+1 mov cx,20 lea si,input_str compare: cmp [si],[si]+32 ;error!! jne set_upper; loop compare jmp exit set_upper: exit: mov ah, 4ch int 21H end_code:END start
פורסם 2013 במאי 1212 שנים יש לך את si ותשמור באוגר נוסף את si - 32. אח"כ תשווה ביניהם. חוץ מזה, תבדוק שההשוואה שלך הגיונית (si שווה ל-si)עריכה: שים את הקוד שלך בתוך תגית הקוד #
פורסם 2013 ביולי 712 שנים הפעולה cmp לא יכולה להשוות בין כל דבר.אם אני לא טועה ההשוואות האפשריות הן בין שני אוגרים, בין אוגר למקום בזיכרון, בין אוגר לערך (לדוגמה מספר), בין מקום בזיכרון לערך ובין מקום בזיכרון לאוגר EAX.לכן אתה לא יכול להשוות בין אוגר לאוגר פלוס ערך. אלא כמו שגיל אמר אתה צריך להכניס את הערך של SI+32 לאוגר אחר ולעשות השוואה בין האוגרים (שזוהי השוואה חוקית)
פורסם 2013 ביולי 712 שנים למה להקפיץ הודעה מלפני חודשיים? אני די בטוח שהוא כבר הסתדר \ לא אקטואלי \ הוא לא חזר לכאן יותר...
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.