עבור לתוכן

עזרה באסמבלי. חיבור\כפל משתנים.

Featured Replies

פורסם

שלום חברים,

קיבלתי תרגיל בית לקלוט 2 מספרים עם הstdio - scanf/printf, לעשות חיבור וכפל ביניהם ולהדפיס את התוצאות.

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

אודה לכם אם תוכלו אולי להסביר לי קצת על הרגיסטרים הקיימים, באילו אני יכול להשתמש ואיך?

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

תודה מראש לעוזרים.

פורסם

לחיבור וחיסור משתמשים בדרך כלל ב eax

יש לך 2 משתנים, תעשה סך הכל

mov eax,mishtane1

add eax,mishtane2

בשביל כפל תשתמש בפקודה mul במקום add

פורסם
  • מחבר

תודה רבה על העזרה קודם כל.

שאלה ראשונה - איך אני יודע שבמשתנה 1 ומשתנה 2 באמת קיימים הערכים שאני רוצה?

איפה ואיך נכנס פה scanf?

פורסם

איך אתה יודע? אתה מכניס לתוכם את הקלט מהשתמש.

פונקציית scanf היא פונקציה ששייכת לC וכל כן צריך לבצע call על מנת לקרוא לה

אני לא מנוסה בשימוש בקלט מהסוג הזה

פורסם

לפני שאתה קורא לפונקציה כלשהי אתה צריך לדחוף למחסנית את הארגומנטים שלה. אם לדוגמא אתה רוצה לקרוא מספר, ראשית אתה צריך להכניס למחסנית את הכתובת בזיכרון שבה ישמר המספר (הארגומנט השני) ואז את הכתובת של מחרוזת המכילה "%d" (הארגומנט הראשון). כעת אתה קורא לפונקציה scanf באמצעות הפקודה call scanf. שים לב שאת הארגומנטים מכניסים בסדר הפוך משום שמחסנית עובדת בשיטת LIFO.

פורסם

מה קרה ל

mov ah,2

int 21h

?

פורסם
  • מחבר

תודה חבר'ה =] הצלחתי להתגבר בעזרתכם.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים