@שאלתיאל כתב בלמידת אסמבלי- מאיפה להתחיל?:
א.סביבת עבודה מומלצת?
ווינדוס עם notepad++ יכול להיות מעולה
@שאלתיאל כתב בלמידת אסמבלי- מאיפה להתחיל?:
ב.תחביר, מה מומלץ מבין השניים?
תחביר intel עם אסמבלר fasm
ככה אני שיחקתי ולמדתי די הרבה זמן ועבד לי טוב ונוח
שים לב שלכל אסמבלר יש פיצ׳רים וסינטקס משלו אז אם אתה לומד להכיר אסמבלר מסויים כנראה שיהיה לך נוח להשאר איתו בעתיד אז אולי תעשה על זה מחקר קטן בהתאם לאיפה שליבך נוטה יותר (nasm יותר מוכר ופופולרי אבל אני חושב ש fasm נוח יותר ממנו (לא צריך לינקר חיצוני בנוסף))
@שאלתיאל כתב בלמידת אסמבלי- מאיפה להתחיל?:
ג.ספר לימוד/סרטונים? מהיכן אתה למדתם?
כל אחד יהנה יותר מפורמט לימוד אחר אבל אם אתה בעניין - הרבה RE וכתיבה ושואלים AI כשצריך
@שאלתיאל כתב בלמידת אסמבלי- מאיפה להתחיל?:
4.כמה זמן יקח לי להגיע לרמה טובה של הנדסה לאחור?
תלוי ביכולות שלך ובמה בדיוק אתה רוצה להנדס לאחור (יש הבדל גדול מאוד בין קוד שנכתב ב C לקוד שנכתב ב rust ועוד יותר קוד שנכתב ב dart לדוגמה)
@שאלתיאל כתב בלמידת אסמבלי- מאיפה להתחיל?:
5.האם לדעתכם אסמבלי תהיה רלוונטית בשנים הבאות
אין פה חוזי עתידות מקצועיים אבל אם אתה אוסף שנקלים זאת דעתי
אם הבינה המלאכותית תתקדם ותהפוך למשהו אחר מזה שאנחנו מכירים היום - כנראה מפתחים באסמבלי לא יהיו רלוונטיים בטווח הזמן הבינוני
אם לא - המצב ישאר כנראה סטטי כמו היום עם הצמדה חלקית למצב המתכנתים הכללי בעולם שבו שוק התוכנה לא גדל (קצת מורכב אבל מקווה שהובנתי)
רק שים לב שאם אתה מתכנן לעבוד בזה אתה תצטרך ללמוד הרבה יותר מאסמבלי (לדוגמה אם תצא מהתחום הצר יחסית של אסמבלי שרץ על מחשבים שולחניים תצטרך ללמוד לקרוא datasheets להבין קצת אלקטרוניקה ארכיטקטורות זיכרון ומעבדים וכו׳ וכו׳) אבל אסמבלי יהיה נקודת פתיחה טובה (עדיף כמובן שתתחיל מקצת C כמו שכתבו כאן)
@שאלתיאל כתב בלמידת אסמבלי- מאיפה להתחיל?:
בכ"מ מקרה אדם שיודע אסמבלי יכתוב קוד יעיל יותר ממי שלא יודע כי הוא יודע איך כל פעולה בשפת עילית
מתורגמת לפקודות שהמעבד מבין.
לא צריך בשביל זה לדעת אסמבלי אלא מספיק להכיר כללים בסיסיים אלמנטריים גם בלי לתרגם את זה בראש ל cache miss וכו'
ורוב מה שאפשר לייעל שלא תלוי בסיבוך שנוצר בקוד של השפה העילית הקומפיילר יעשה יותר טוב
@שאלתיאל כתב בלמידת אסמבלי- מאיפה להתחיל?:
ג.לדעתך מי עושה רברסינג יותר טוב אדם או מכונה והאם זה ישתנה.
מכונה בלי ספק אבל בלי אדם שמכוון אותה היא עלולה להכנס לפינות נידחות או לפרש דברים מסויימים בצורה שגויה
@שאלתיאל כתב בלמידת אסמבלי- מאיפה להתחיל?:
אני מעונין גם בשביל לפרק בעתיד נוזקות למיניהם שרובם נכתבות בשפת מכונה
ניתחתי הרבה מאוד נוזקות ולא זכור לי שנתקלתי באחת שהייתה כתובה באסמבלי (לפעמים חלקים קטנים ממש ממנה)
@שאלתיאל כתב בלמידת אסמבלי- מאיפה להתחיל?:
הניידות זה הבעייה הגדולה קוד ל86 לא יתאים לARM..
מי שכותב באסמבלי לא מחפש ניידות בדרך כלל
לדעתי אל תבזבז הרבה זמן על למידה מסודרת במיוחד אם אתה קורא רק עברית אלא תלמד את הבסיס ממש ובחומרי לימוד תשתמש כחומרי העשרה
הסיבה מתחלקת לשתיים - אם מעניין אותך ללמוד אסמבלי אני מניח שיש לך רקע אוטודידקטי טוב אז הגיוני מאוד שלמידה דרך הידיים תתן לך יותר
הסיבה השניה היא שפשוט אין מה ללמוד כל כך מעבר לחומר קלאסי במדעי המחשב - הרעיון בתכנות אסמבלי שאין לך אבסטרקציה להרבה דברים אז אתה צריך לממש אותה בעצמך ואיך לממש זה כבר לא אסמבלי אלא הרעיון האלגוריתמי או דרישות השירות (בהכללה) שאיתו אתה מתממשק
תתחיל מתוכנית קטנה וקלה שתקרא לכמה פונקציות מערכת (לדוגמה hello world עם message box) כדי ללמוד בצורה בסיסית איך מנהלים מחסנית ואיך קוראים לפונקציות ותתקדם לדברים מורכבים יותר
הרעיון הוא יותר לחשוב על אלגוריתם יעיל למימוש של משהו או חישוב של משהו ואז למצוא דרך לממש אותו באסמבלי - בדיוק כמו חידות leetcode בשפות עיליות רק שכאן חומרי הבניה שלך בסיסיים יותר
אני אתן לך כמה רעיונות שאני מימשתי ועזרו לי מאוד ללמוד ותוכל לפתח את זה למקומות שיעניינו אותך
הדגמה של חיזוי קפיצות - השתמשתי בחישוב של השערת קולץ בשתי צורות אלגוריתם שונות
מספר מחזורי השעון הממוצעים שנדרשים לכל משפחת פקודות לרוץ
חישוב של אורך ה pipe של המעבד עד לשלב ה redirect על ידי בדיקה של הזמן האבוד בחיזוי קפיצה שגוי (זה היה 17 מחזורי שעון כמדומני ב 5500U)
מימשתי את ניסוי ג׳ורג׳טאון (זה דרש לחפור במאמרים ישנים משנות החמישים ולחפש נתוני מילון ששרדו מאז בעשרות מאמרים נוספים)
וכמובן הרבה נסיונות של קמפול קוד C קצר בהגדרות אופטימיזציה שונות ובדיקה איך נראה קוד המכונה שיוצא
אם מעניין אותך כמה פרוייקטים שפרסמתי בעבר
תוכנת hello world הכי קטנה שיכולה לרוץ על ווינדוס עדכני
מציג תמונה עצמאי שרץ מה boot
התחלת מחקר שעשיתי על נוזקה (לא מצאתי זמן לפרסם את כולו אז פרסמתי את החלקים המעניינים לדעתי)