פורסם 2012 באפריל 1413 שנים אחרי אינספור ניסיונות ושעות נסיון-אשמח אם תעזרו לי במשהו פשוט(קראתי הרבה באינטרנט ומדריכים ועדיין לא הצלחתי לעשות)אז ככה:ecx= מחרוזת המתקבלת מהמשתמש המייצגת מספר בהקסדצימלי. סתם כרגע נניח כי היא בת 2 תווים.lc1-מחרזות הפלט. כל 2 ספרות ב- ecx אמורות להתפרש כתו באסמבלי.בסופו של דבר אני רוצה שב lc1 יהיו כל 2 ספרות מ ecx מתורגמות לתו באסמבלי.section .bssLC1: RESB 256section .text align 16 global my_func extern printfmy_func: push ebp mov ebp, esp ; Entry code - set up ebp and esp pusha ; Save registers mov ecx, dword [ebp+8] ; Get argument (pointer to string)mov ebx,LC1mov dl, [ecx] /// שמירת הספרה הראשונה מהקלטinc ecxmov dh, [ecx]/// שמירת הספרה השניה מהקלטmov al,16mul dladd ax, dl // איך אני מוסיף כאן את dl למרות שזה רגיסטר של בית?mov [ebx],ax // כנ"ל פה[pre]// איך עכשיו הספרות, בהנחה שהעברתי אותן נכון לlc1 , מתרגמות לתווים?[/pre]
פורסם 2012 ביוני 113 שנים אוקי, אז כאמור מה שאתה מנסה לעשות זה בעצם HEX DECODEאז איך לעשות את זה?בהקסה ישנם 16 תווים אפשריים,0-9, A-Fכאשר '0' יתורגם ל 0, '9' יתורגם ל 9, וכנ"ל באותיותאתה צריך לקחת זוגות זוגות של תווים, להפוך אותם לייצוג המספרי שלהם בהקסה, ולהכפיל אותם על פי המיקום שלהםלדוגמא 'A3' יהפוך ל 3 * 1 + 10 * 16 = 163איך לעשות את זה באסמבלי? לא בעיה שלי, אבל זה מאוד מאוד פשוט , ואם אתה מחפש פשוט תשובה, GOOGLE IT
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.