עבור לתוכן

מהי שפת הASSEMBLER ? ולמה היא משמשת?

Featured Replies

פורסם

מהי שפת הASSEMBLER ? במה משתמשים בה?

האם יש שפות נוספות שדומות לה?

לפי מה שאני הבנתי היא נחשבת בתור שפת בסיס , נכון הדבר?

פורסם

שפת אסמבלר היא שפת תיכנות לכל דבר.

טוב לא לכל דבר, היא השפה הכי נמוכה כלומר היא שלב אחד מעל בינארי. משתמשים בה?

הממ תשתמשים בה בעיקר בדברים שצריכים גישה ישירה לאוגרים של המעבד, או נגיד אופטימיזציות שונות נגיד על ידי שימוש באוגרים כמו MMX, SSE1/2/3/4

זה בעיקר מה שידוע לי עליה.

פורסם
  • מחבר

כאילו כשאני משתמש בשפת X במחשב , שפה רגילה , אז היא מתורגמת ל ASSEMBLER ואז ל BINARY???

פורסם

לא מדוייק

אתה מקמפל אותה לאסמבלר

ובזמן ריצה הוא מתורגם לבינארי

פורסם

לא נכון. הקוד שלך מתקמפל ישר לבינארי.

אסמבלי זה הצגה "יפה" של הבינארי.

פורסם

לא נכון. הקוד שלך מתקמפל ישר לבינארי.

אסמבלי זה הצגה "יפה" של הבינארי.

http://en.wikipedia.org/wiki/Compiler

The most common reason for wanting to translate source code is to create an executable program. The name "compiler" is primarily used for programs that translate source code from a high-level programming language to a lower level language (e.g., assembly language or machine language).

פורסם
  • מחבר

לא מדוייק

אתה מקמפל אותה לאסמבלר

ובזמן ריצה הוא מתורגם לבינארי

מוכר לי המושג לקמפל אבל האם אתה יכול לתרגם אותו בפירוש שלא יכול להשתמע לשני פנים? או להביא לי הגדרה מדוייקת?

עוד דעות?

פורסם

מסכים עם שניצל לחלוטין.

אסמבלי זו רק הצגה יפה יותר של קודים בינאריים. התרגום בין אסמבלי לקוד בינארי הוא אחד לאחד.

לדוגמא: mov eax,1 יותר מובן ממשהו כמו 08C00001 .

ברגע שאתה כותב באסמבלר למעשה אתה כותב ישירות למעבד. תוכנת האסמבלר פשוט מעבירה מ"אנגלית" לקודים בינאריים.

בקומפיילר משתמשים לשפות עיליות כגון: C, C++, Delphi וכו'. הקומפיילר מתרגם ישירות מהקוד שכתבת לקוד בינארי שיכול לרוץ על המעבד.

אין שום טעם להעביר את זה לשפת אסמבלי - המעבד לא מבין את השפה הזו ובמילא הוא יצטרך להעביר את זה לקוד בינארי.

לסיכום שלושה קטעי קוד שמבצעים פחות או יותר את אותו הדבר:

קוד ב C:

int a=1;

קוד באסמבלי:

mov eax,1

קוד ב שפה בינארי:

0101000101010

פורסם

אין לי מושג מאיפה הבאתם את הדברים האלה

אסמבלי היא שפה ברמה אחת מעל המעבד

ייחודית לארכיטקטורת מעבדים מסויימת (כמו שיש תמיכה אחורה)

קבצי EXE על המחשב וגם DLL (אלה הסוגים שאני יודע כנראה יש עוד) נשמרים באסמבלי ובזמן הרצה הופכים לקוד בינארי

אם תבדוק תגלה שקוד זהה ששמור בשפת מכונה יסיים את הריצה שלו יותר מהר מתוכנית זהה באסמבלי

פורסם

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

פורסם

http://en.wikipedia.org/wiki/Assembly_language

An assembly language is a low-level language for programming computers. It implements a symbolic representation of the numeric machine codes and other constants needed to program a particular CPU architecture.

הקוד שיושב בתוך קובץ exe או dll הוא שפת מכונה לכל דבר (אני מדבר על תכניות קלאסיות, לא NET.). אסמבלי זה פשוט הצגה יפה לעין של הקוד הזה, והיא מתורגמת אחד לאחד לשפת המכונה ע"י האסמבלר.

פורסם

http://en.wikipedia.org/wiki/Assembly_languageהקוד שיושב בתוך קובץ exe או dll הוא שפת מכונה לכל דבר (אני מדבר על תכניות קלאסיות, לא NET.). אסמבלי זה פשוט הצגה יפה לעין של הקוד הזה, והיא מתורגמת אחד לאחד לשפת המכונה ע"י האסמבלר.

זה ממש לא משנה איך זה שמור על המחשב קימפול קצרצר וזה אסמבלי שוב

פורסם

יש אסמבלרים (assembler זה מה שהופך assembly לשפת מכונה, שהיא בינארית לחלוטין) משוכללים, אשר מבצעים דברים שלא ממש ניתן להביע בשפת מכונה. לדוגמא turbo assembler הזכור לטוב עם לולאות והמבנים שלו.

דוגמא קיצונית היא ה-optimizing assembler של Texas Instruments.

הוא לוקח קוד linear assembler - קוד אסמבלי (עם opcode-ים, ורגיסטרים), אולם הקוד הזה כתוב עם רגיסטרים וירטואלים (כמו משתנים, רק שהם ברגיסטר), ובצורה לינארית ולא מקבילית. האסמבלר לוקח קוד כזה, ומבצע מיקבול, אוטימיזציות, register allocation, functional unit allocation ועוד הרבה דברים מעניינים, אשר בד"כ מבוצעים בקומפיילרים ממש.

ארכיון

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

דיונים חדשים