האם יש הבדל משמעותי בכתיבת תוכניות אסמבלי ללינוקס או ווינדוס?
-
ב"ה כתבתי את התוכנית הראשונה שלי עם קצת עזרה מAI
section .data number db "1000", 10 length equ $ - number section .text global _start _start: mov rax, 1 mov rdi, 1 mov rsi, number mov rdx, length syscall mov rax, 60 mov rdi, 0 syscallואז ראיתי שבווינדוס זה פשוט קריאה לAPI
עכשיו.. יש הבדל מה להתחיל מביניהם כלומר אני מעדיף ווינדוס
יש עניין להתחיל בלינוקס או משהו כזה כי זה יותר קל (ככה הבנתי...)
או שאין הבדל משמעותי? -
ב"ה כתבתי את התוכנית הראשונה שלי עם קצת עזרה מAI
section .data number db "1000", 10 length equ $ - number section .text global _start _start: mov rax, 1 mov rdi, 1 mov rsi, number mov rdx, length syscall mov rax, 60 mov rdi, 0 syscallואז ראיתי שבווינדוס זה פשוט קריאה לAPI
עכשיו.. יש הבדל מה להתחיל מביניהם כלומר אני מעדיף ווינדוס
יש עניין להתחיל בלינוקס או משהו כזה כי זה יותר קל (ככה הבנתי...)
או שאין הבדל משמעותי?@שאלתיאל בלינוקס כנראה תמצא דברים יותר מגניבים ברשת אבל השאלה מה ללמוד ספציפית תלויה איך תבחר להמשיך
אם אתה עדיין מתנסה בכלליות לדעתי כדאי לך ללכת על ווינדוס כי זה כנראה יותר נגיש לך ולאלו שתשתף בהתלהבות שלך
אני גם חושב שיש יותר התעסקות בתשתית בווינדוס שמלמדת יותר (לא כתבתי ללינוקס אבל ממה שהבנתי עם השנים)אגב יש לי פוסט ארוך בטיוטות על אחד הנושאים הקודמים שלך שמפאת קוצר הזמן לא הספקתי להשלים ולשלוח
-
ב"ה כתבתי את התוכנית הראשונה שלי עם קצת עזרה מAI
section .data number db "1000", 10 length equ $ - number section .text global _start _start: mov rax, 1 mov rdi, 1 mov rsi, number mov rdx, length syscall mov rax, 60 mov rdi, 0 syscallואז ראיתי שבווינדוס זה פשוט קריאה לAPI
עכשיו.. יש הבדל מה להתחיל מביניהם כלומר אני מעדיף ווינדוס
יש עניין להתחיל בלינוקס או משהו כזה כי זה יותר קל (ככה הבנתי...)
או שאין הבדל משמעותי?@שאלתיאל לענ"ד (בלי שלמדתי אסמבלי בצורה מסודרת או עם תכניות גדולות)
שלב ראשון: תדאג שאתה מבין כל תו מהקוד שהבאת (אולי אתה כבר מבין, אין לי דרך לדעת)
ביתר פירוט (מה שרלוונטי להבדלים בין לינוקס לווידוס):mov rax, 1- למהrax? מה המשמעות של מספר1פה?mov rdi, 1- שוב כנ"ל,- כנ"ל בשורות הבאות, למה הבחירה ב-
rsiו-rdx - מה עושה
syscall
אח"כ יהיה כדאי מאוד באמת לכתוב תוכנה מקבילה לווינדוס ולשאול את עצמך מה ההבדלים ולמה (למה בווינדוס קוראים ל-API ולא עושים
syscall? האם אפשרי לעשותsyscallבווינדוס? האם אפשרי לעשות קריאת API בלינוקס לקבל אותה תוצאה? שימת לב לשינויים ברג'יסטרים בקריאות API, וכו')אח"כ אין באמת יותר מדי הבדל אם אתה מתמקד בלינוקס או ווינדוס, כדאי לענ"ד להכיר שניהם ואת ההבדלים העיקריים (סתם לידע כללי ומקיף)
-
@yossiz
א. זה קריאה לwrite
ב. זה לאן לכתוב לstdout כמדומני.
ג. זה לא כ"כ זוכר זה לוקח את הנתונים מהערך של נאמבר. ג(ב) זה. RDX רושם כמה בתים לקחת משם
ד. קריאה לקרנל לינוקס לביצוע הפקודה אאל"ט
ה. עוד משהו אני ודיבגאר פחות חברים אפשר להסתדר עם זה אם אני יודע בערך איך זה אמור להיראות? -
@yossiz
א. זה קריאה לwrite
ב. זה לאן לכתוב לstdout כמדומני.
ג. זה לא כ"כ זוכר זה לוקח את הנתונים מהערך של נאמבר. ג(ב) זה. RDX רושם כמה בתים לקחת משם
ד. קריאה לקרנל לינוקס לביצוע הפקודה אאל"ט
ה. עוד משהו אני ודיבגאר פחות חברים אפשר להסתדר עם זה אם אני יודע בערך איך זה אמור להיראות?@שאלתיאל זה לא היה מבחן
(לא מבחן ממני, אתה אמור לבחון את עצמך) לכן לא ציפיתי לקבל תשובות
אבל אם כבר כתבת תשובות, אז ארשה לעצמי להעיר שהם תשובות חלקיות
למשל:- האם השימוש ב-
raxב-mov rax, 1בדוקא או שמא כל רג'יסטר טוב לזה? - למה
1זהwrite? כלומר מי קבע את זה? - האם אתה יודע לפשט יותר את המילים "קריאה לקרנל לינוקס" למשהו יותר מפורט ויותר קונקרטי
- מה הבדל בין קריאה לקרנל לקריאה ל-API
ועוד כהנה
שוב, אני לא בוחן אותך ולא מצפה לתשובות... רק הצלחת להעיר את המורה הפנימי שלי...@שאלתיאל כתב בהאם יש הבדל משמעותי בכתיבת תוכניות אסמבלי ללינוקס או ווינדוס?:
עוד משהו אני ודיבגאר פחות חברים אפשר להסתדר עם זה אם אני יודע בערך איך זה אמור להיראות
לענ"ד, כל דבר בנפרד לא חובה. אבל אני אני שומע "הקס" לא חבר שלי, "בינארי" לא חבר שלי, "דיבאגר" לא חבר שלי, השאלה היא לאיזה רמה של יכולת והבנה אתה רוצה להגיע? כל דבר הוא חלק מפסיפס שביחד יתנו לך את היכולות של מהנדס לאחור
- האם השימוש ב-