עבור לתוכן

צריך עזרה בסינטקס של אסמלבר

Featured Replies

פורסם

אני מנסה לעשות פעולת DIV MOD פשוטה באסמבלר ונתקע כאשר המשתנה מוגדר dd (define double)

אם B dw 12345 הוא אז אחרי הפעולות הבאות ב tmp יהיה 5 ו B יהפוך ל 1234

כל זאת בתנאי ש B מוגדר dw

mov ax , B

mov dx , 0

mov bx , 10

div bx

mov tmp ,dx

עכשיו יש לי לדוגמה משתנה C dd 12345679 ואני רוצה לעשות עליו את אותה פעולה

בגלל שהוא dd ולא dw אז הכל מתבלגן לי שם..

מישהו יודע איך לתקן?

תודה מראש

פורסם

תן לי להבין: אתה מנסה להגדיר משנה dword ולחלק אותו ב-10? אם מותר לך לעבוד עם רגיסטרים של 32 ביט, אז פשוט:


mov eax,some_var
cdq
mov ebx,10
div ebx
...

פורסם
  • מחבר

לא אחי

עם משתנה DW הצלחתי, כמו בדוגמה שרציתי

אבל שאני מנסה לעשות אותו דבר למשתנה DD - דאבל וורד , זה לא עובד

ואסור לי להשתמש במשתנים של 32סיביות, רק 16.. כי זה מה למדנו :)

תודה

פורסם

אם הבנתי נכון למה אתה מתכוון, זה משהו בסגנון:


mov ax,word ptr b
mov dx,word ptr b+2
mov bx,10
div bx

אבל אני לא זוכר אם אתה יכול בכלל לעשות חילוק 32 סיביות על מעבדי x86 של 16 ביט. עבר יותר מתי זמן...

פורסם
  • מחבר

תודה..

ד"א הצלחתי כבר, אבל הרעיון שלך מאוד מאוד דומה למה שעשיתי בסוף

ארכיון

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

דיונים חדשים