מדריך | קצת על אסמבלי..ההתחלה
-
אין קטגוריה יותר מתאימה, אז שמתי את זה בשפה הכי קרובה לאסמבלי.
אני די חדש פה, אבל ראיתי שאין פה הרבה התייחסות, למעט @לנציצ שכתב דברים מאוד יפים.
רציתי להביא קצת לידיעתכם. המדריך כתוב בשפה נעימה, מקווה שתחכימו.א. מה זה בעצם אסמבלי? אסמבלי היא ייצוג טקסטואלי של שפת מכונה, שזה אומר כך:
בניגוד לשאר שפות העילית כמו פייתון, C פלס פלס ,RUST או כל שפה אחרת,
שבה הקומפיילר מבצע הכול אסמבלי היא שפה בה אנו כותבים ישירות למעבד. (פקודת x86 אחת מתפרקת בתוך המעבד לכמה micro-ops,)
add, mov, push וכו'. ממש ידנית עושים פעולה-פעולה.
והיא השפה הכי קרובה לשפת מכונה של 0 ו-1, שזה שפת מכונה ממש.אסמבלי נמצאת בשימוש בנישה מאוד ספציפית היום, בעיקר RE (יותר קריאה) HFT ומערכות משובצות ומפתחי קומפיילרים ומערכות הפעלה
מעבר לזה, היא לא בשימוש מהסיבות הבאות:
א. היא קשה מאוד. בפייתון, אם עשינו טעות כלשהי, נקבל traceback שמצביע על השורה. באסמבלי הינו מקבלים segfault בלי שום הקש ו gdb ובדיקת רגיסטרים כדי להבין מה קרה. שזה הרבה יותר מסובך משפות עילית למיניהם.
ב. היא לא ניידת. כשאנחנו כותבים קוד בשפה עילית, המהדר מתאים אותו לשאר המעבדים. באסמבלי, כיוון שהיא שפת מכונה לכל ארכיטקטורה (כמו x64/ARM), אנחנו נצטרך כתיבה מחדש, בנוסף לסט פקודות אחר — שזה גם עולם אחר לגמרי.
ג. אסמבלי היא שפה קשה מאוד לתחזוקה, וכל טעות קטנה יכולה להקריס מערכות. היא גם קשה לעבודה כצוות, ולא מעשית לשימוש היום כלל וכלל.
ד. מעבר לכל הסיבות, לכתוב תוכניות שלמות באסמבלי זה לא מעשי. כל פעולה, ולו הקטנה ביותר — כמו להדפיס טקסט למסך בצורה מסוימת תדרוש עשרות פעולות שידרשו שורות בודדות בשפה עילית. לכתוב אפליקציה בקוטלין יקח חודשים; לכתוב באסמבלי יקח... שנים.
אז למה לכתוב באסמבלי?
א. מהירות, מהירות ושוב מהירות. כיוון שהיא שפת מכונה ללא חסמים, קוד אסמבלי שכתוב טוב יכול לנצח את הקומפיילר בנישות ספציפיות שדורשות שליטה ידנית וניהול חכם SIMD, קריפטו, bignum.
ב. הבנה. אדם שיודע אסמבלי לעומק ידע לכתוב קוד בשפה עילית שהקומפייליר יצליח לייעל בצורה מיטבית.
ג. הנדסה לאחור של וירוסים. (שלקודים למיניהם) או בכלל וירוסים.
ד. GRUB עצמו כתוב ברובו בC וחלק באסמבלי. מה שחייב להיות אסמבלי זה מה שרץ לפני שיש בכלל מחסנית וC runtime: הבוטסקטור, מעברי מצב מעבד, נקודות כניסה. גם בקרנל לינוקס זה כאחוז-שניים/ טועני אתחול כתובים אסמבלי גם.
ה.הבנה עמוקה של איך באמת המחשב עובד ואיך לתקן שגיאות מורכבות.
בכל מקרה, זה היה קצת על אסמבלי בעז"ה המשך יבוא..
@Bugs-Bunny
פצצה!!!!
מחכים להמשך... -
אין קטגוריה יותר מתאימה, אז שמתי את זה בשפה הכי קרובה לאסמבלי.
אני די חדש פה, אבל ראיתי שאין פה הרבה התייחסות, למעט @לנציצ שכתב דברים מאוד יפים.
רציתי להביא קצת לידיעתכם. המדריך כתוב בשפה נעימה, מקווה שתחכימו.א. מה זה בעצם אסמבלי? אסמבלי היא ייצוג טקסטואלי של שפת מכונה, שזה אומר כך:
בניגוד לשאר שפות העילית כמו פייתון, C פלס פלס ,RUST או כל שפה אחרת,
שבה הקומפיילר מבצע הכול אסמבלי היא שפה בה אנו כותבים ישירות למעבד. (פקודת x86 אחת מתפרקת בתוך המעבד לכמה micro-ops,)
add, mov, push וכו'. ממש ידנית עושים פעולה-פעולה.
והיא השפה הכי קרובה לשפת מכונה של 0 ו-1, שזה שפת מכונה ממש.אסמבלי נמצאת בשימוש בנישה מאוד ספציפית היום, בעיקר RE (יותר קריאה) HFT ומערכות משובצות ומפתחי קומפיילרים ומערכות הפעלה
מעבר לזה, היא לא בשימוש מהסיבות הבאות:
א. היא קשה מאוד. בפייתון, אם עשינו טעות כלשהי, נקבל traceback שמצביע על השורה. באסמבלי הינו מקבלים segfault בלי שום הקש ו gdb ובדיקת רגיסטרים כדי להבין מה קרה. שזה הרבה יותר מסובך משפות עילית למיניהם.
ב. היא לא ניידת. כשאנחנו כותבים קוד בשפה עילית, המהדר מתאים אותו לשאר המעבדים. באסמבלי, כיוון שהיא שפת מכונה לכל ארכיטקטורה (כמו x64/ARM), אנחנו נצטרך כתיבה מחדש, בנוסף לסט פקודות אחר — שזה גם עולם אחר לגמרי.
ג. אסמבלי היא שפה קשה מאוד לתחזוקה, וכל טעות קטנה יכולה להקריס מערכות. היא גם קשה לעבודה כצוות, ולא מעשית לשימוש היום כלל וכלל.
ד. מעבר לכל הסיבות, לכתוב תוכניות שלמות באסמבלי זה לא מעשי. כל פעולה, ולו הקטנה ביותר — כמו להדפיס טקסט למסך בצורה מסוימת תדרוש עשרות פעולות שידרשו שורות בודדות בשפה עילית. לכתוב אפליקציה בקוטלין יקח חודשים; לכתוב באסמבלי יקח... שנים.
אז למה לכתוב באסמבלי?
א. מהירות, מהירות ושוב מהירות. כיוון שהיא שפת מכונה ללא חסמים, קוד אסמבלי שכתוב טוב יכול לנצח את הקומפיילר בנישות ספציפיות שדורשות שליטה ידנית וניהול חכם SIMD, קריפטו, bignum.
ב. הבנה. אדם שיודע אסמבלי לעומק ידע לכתוב קוד בשפה עילית שהקומפייליר יצליח לייעל בצורה מיטבית.
ג. הנדסה לאחור של וירוסים. (שלקודים למיניהם) או בכלל וירוסים.
ד. GRUB עצמו כתוב ברובו בC וחלק באסמבלי. מה שחייב להיות אסמבלי זה מה שרץ לפני שיש בכלל מחסנית וC runtime: הבוטסקטור, מעברי מצב מעבד, נקודות כניסה. גם בקרנל לינוקס זה כאחוז-שניים/ טועני אתחול כתובים אסמבלי גם.
ה.הבנה עמוקה של איך באמת המחשב עובד ואיך לתקן שגיאות מורכבות.
בכל מקרה, זה היה קצת על אסמבלי בעז"ה המשך יבוא..
@Bugs-Bunny
אני לא מבין מילה בתכנות, ואעפ"כ הבנתי כל מילה!
יפה מאד, ומנוסח כ"כ בהיר ומלוטש! -
@Bugs-Bunny
אני לא מבין מילה בתכנות, ואעפ"כ הבנתי כל מילה!
יפה מאד, ומנוסח כ"כ בהיר ומלוטש! -
@מוטל-2 תמונות ממה?

נראה לי התמונה היחידה שאפשר להביא כאן זה השורה הבאה:0011001101010101עריכה: אני רואה שכבר קדמוני...
-
@מוטל-2 תמונות ממה?

נראה לי התמונה היחידה שאפשר להביא כאן זה השורה הבאה:0011001101010101עריכה: אני רואה שכבר קדמוני...
-
פוסט זה נמחק!
-
פוסט זה נמחק!
אין מה לעשות
יש בעולם 10 סוגים של אנשים
אלו שמבינים בינארית ואלו שלא@מד כתב במדריך | קצת על אסמבלי..ההתחלה:
נראה לי התמונה היחידה שאפשר להביא כאן זה השורה הבאה:
אם כבר
001101000011000000110100 -
פוסט זה נמחק!
@Bugs-Bunny אני ממתין על הפרקים הבאים, ומאוד מסתנקרן איזה תמונות תצליח להביא פה לענין זה...
-
@Bugs-Bunny אני ממתין על הפרקים הבאים, ומאוד מסתנקרן איזה תמונות תצליח להביא פה לענין זה...
-
אין מה לעשות
יש בעולם 10 סוגים של אנשים
אלו שמבינים בינארית ואלו שלא@מד כתב במדריך | קצת על אסמבלי..ההתחלה:
נראה לי התמונה היחידה שאפשר להביא כאן זה השורה הבאה:
אם כבר
001101000011000000110100 -
פוסט זה נמחק!
-
@בנימין-מחשבים הלו!! תציין קרדיט!!! עוד מעט ואתה מקבל הזמנה מבית משפט!...
@מוטל-2 אני לא הכותב.
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות