מבוא לאסמבלי

מסמכים קשורים
מבוא לאסמבלי

תרגול מס' 1

מתכונת עיצוב 3013

PowerPoint Presentation

מבוא למדעי המחשב

פייתון

מערכות הפעלה

בחן במערכות הפעלה

Slide 1

Slide 1

תאריך פרסום: תאריך הגשה: מבנה נתונים תרגיל 5 )תיאורטי( מרצה ומתרגל אחראים: צחי רוזן, דינה סבטליצקי נהלי הגשת עבודה: -את העבודה יש לה

Disclaimer מסמך זה הינו סיכום און-ליין של השיעור ולא עבר עריכה כלל. מצאת טעות? שלח/י לי מייל ואתקן: 07/05/2009 קורס: מערכות ה

Comp. Arch. Lecture 1

סדנת תכנות ב C/C++

שאלהIgal : מערכים דו מימדיים רקורסיה:

מבוא למדעי המחשב

מבחן סוף סמסטר מועד ב 28/10/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, גדי אלכסנדרוביץ הוראות: א. בטופס המבחן 6 עמודים (כולל דף זה) ו

אוניברסיטת בן גוריון בנגב תאריך המבחן: שקולניק אלכסנדר שם המרצה: מר בשפת JAVA מבוא לתכנות מבחן ב: מס' הקורס : הנדסת תעשיה וניהול מ

שבוע 4 סינטקס של HACK ASSEMBLY ניתן להשתמש בשלושה אוגרים בלבד:,A,D,M כולם בעלי 16 ביטים. M אינו אוגר ישיר- הוא מסמן את האוגר של ה RAM שאנחנו מצביעים ע

שאלהIgal : מערכים דו מימדיים רקורסיה:

תכנות מונחה עצמים א' – תש"ע

שעור 6

PowerPoint Presentation

Slide 1

מספר זהות: סמסטר ב' מועד א' תאריך: 11102/4// שעה: 9:22 משך הבחינה: 3 שעות חומר עזר: אין מותר השימוש במחשבון פשוט בחינה בקורס: מבני נתונים מרצה: הדר בי

תוכן העניינים

PowerPoint Presentation

מבוא לתכנות ב- JAVA תרגול 7

Tutorial 11

דוגמאות שהוצגו בהרצאה 10 בקורס יסודות מערכות פתוחות דוגמה 1 דוגמאות של פונקציות ב- awk שמראות שהעברת פרמטרים של משתנים פשוטים היא by value והעברת פרמט

שאלה 2. תכנות ב - CShell

מבוא למדעי המחשב - חובלים

תרגיל בית מספר 1#

תרגול 1

PowerPoint Presentation

Slide 1

שאלהIgal : מערכים דו מימדיים רקורסיה:

Homework Dry 3

תורת הקומפילציה

Microsoft Word B

מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. ב

Microsoft PowerPoint - rec1.ppt

2013/14 אוניברסיטת חיפה מבוא למדעי מחשב, מעבדה מטרת המעבדה: לתרגל את המעבר מאלגוריתם לקוד C כמה שיותר. הוראות:.1.2 ניתן לעבוד ביחידים או בזוגות. (יש מ

2019 שאלות מומלצות לתרגול מס' דיפרנציאביליות של פונקציה סקלרית )המשך(. כלל השרשרת. S = ( x, y, z) z = x + 3y על המשטח מצאו נקודה בה מישור משיק

Microsoft Word - c_SimA_MoedA2006.doc

אוניברסיטת חיפה החוג למדעי המחשב מבוא למדעי המחשב מועד א' סמסטר ב', תשע"ג, משך המבחן: שעתיים וחצי חומר עזר: אסור הנחיות: וודאו כי יש בידיכם

תוכן העניינים

תשע"דד אביב תוכנה 1 תרגיל מספר 4 עיבוד מחרוזות וקריאה מקבצים הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס..(

אוניברסיטת חיפה החוג למדעי המחשב.5.6 מבוא למדעי המחשב סמסטר א' תשע"ז בחינה סופית מועד א', מרצה: שולי וינטנר מתרגלים: סמאח אידריס, ראמי עילבו

תכנון אלגוריתמים עבודת בית 4: תכנון אלגוריתמים תאריך הגשה: 02: , בצהריים,תא מספר 66 בקומת כניסה של בניין 003 מתרגל אחראי: אורי 0

פתרון מוצע לבחינת מה"ט ב_שפת c מועד ב אביב תשע"ט, אפריל 2019 מחברת: גב' זהבה לביא, מכללת אורט רחובות שאלה מספר 1 מוגדרת מחרוזת המורכבת מהספרות 0 עד 9.

פתרון וחקירת מערכות של משוואות לינאריות שאלות: 1( מצא אילו מהמערכות הבאות הן מערכות שקולות: 2x+ y= 4 x+ y= 3 x y = 0 2x+ y = 3 x+ 10y= 11 א. 2x 2y= 0

Microsoft Word - עבודת פסח לכיתה י 5 יחל.doc

מקביליות

PowerPoint Presentation

Slide 1

DCA & A/B Testing

מספר מחברת: עמוד 1 מתוך 11 ת"ז: תשע"א מועד ב סמסטר א' תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי ה

מהוא לתכנות ב- JAVA מעבדה 3

Slide 1

פקולטה: מחלקה: שם הקורס: קוד הקורס: מדעי הטבע מדעי המחשב ומתמטיקה מתמטיקה בדידה תאריך בחינה: _ 07/07/2015 משך הבחינה: 3 שעות סמ' _ב' מועד

תוכנה 1 1 אביב תשע"ג תרגיל מספר 5 מערכים, מחרוזות, עיבוד טקסט ומבני בקרה הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגש

Slide 1

מדינת ישראל סוג הבחינה: בגרות לבתי ספר על יסודיים משרד החינוך מועד הבחינה: קיץ תשע"ה, 2015 אין להעביר את הנוסחאון לנבחן אחר נספח לשאלון: נוסחאו

הטכניון מכון טכנולוגי לישראל אלגוריתמים 1 )443432( סמסטר חורף הפקולטה למדעי המחשב תרגול 9 מסלולים קלים ביותר תרגיל APSP - 1 עד כה דנו באלגור

מצגת של PowerPoint

Cimatron_E

מבחן 7002 פרטים כלליים מועד הבחינה: בכל זמן מספר השאלון: 1 משך הבחינה: 3 שעות חומר עזר בשימוש: הכל )ספרים ומחברות( המלצות: קרא המלצות לפני הבחינה ובדי

Microsoft PowerPoint - 10_threads.ppt

מצגת של PowerPoint

מקביליות

Microsoft Word - 14

סדרה חשבונית והנדסית

הגשה תוך שבוע בשעת התרגול

. שאלה 1: ה אי x] T : R 4[ x] R 4[ אופרטור ליניארי מוגדר על-ידי T( ax bx cx d) bx ax cx c )13 נק'( א( מצאו את הערכים העצמיים, המרחבים העצמיים

Slide 1

Microsoft PowerPoint - lecture4_handnotes_2013_2.ppt [Compatibility Mode]

PowerPoint Presentation

תכנות בשפת פייתון ברק גונן

עבודה במתמטיקה לכיתה י' 5 יח"ל פסח תשע"ה אפריל 5105 קשה בלימודים, קל במבחנים, קל בחיים עבודה במתמטיקה לכיתה י' 5 יח"ל פסח תשע"ה יש לפתור את כל השאלות

פתרון מבחן במיקרו בקרים תשעו

תורת החישוביות תרגול הכנה לוגיקה ותורת הקבוצות מה יש כאן? בקורס תורת החישוביות נניח ידע בסיסי בתורת הקבוצות ובלוגיקה, והכרות עם מושגים בסיסיים כמו א"ב

Microsoft Word - Ass1Bgu2019b_java docx

PowerPoint Presentation

הוספת קישור לאתר אינטרנט תוכן ממשק בדיקת מטלות...3 איחוד אתרי קורסים...5 סל מחזור... 7 חידושים בפעילויות...8 תצורת קורס: כפתורים... 9 פורומים...10 שיפ

יצוא לחשבשבת תוכן עיניינים הגדרות - חשבונות בנק...2 הגדרות - הגדרות חשבשבת... 3 הגדרות - כרטיסי אשראי... 4 הגדרות - סוגי הכנסה... 5 יצוא לחשבשבת...6 י

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי

Programming

הגשה תוך שבוע בשעת התרגול

מקביליות

עוצמת ההורשה מה הופך את ההורשה לכלי כל כך עוצמתי? מעבר לכך שהוא מקל בהגדרת מחלקות חדשות על סמך מחלקות קיימות, יש לנו אפשרות להתייחס לאובייקט מסויים בכ

1 תבניות טקסט מהי תבנית טקסט? שימוש ב- Characters Meta שימוש ב- Expression Grouping שימוש ב- Quantifiers תת תבניות הפונקציה preg_match הפונקציה preg_m

Office 365 ProPlus בחינם לסטודנטים באוניברסיטת בן גוריון בנגב הוראות סטודנטים באוניברסיטת בן גוריון בנגב יכולים להוריד ולהתקין את חבילת התוכנה Office

ex1-bash

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

שיעור 1

פיסיקה 1 ב' מרצים: גולן בל, משה שכטר, מיכאל גדלין מועד ב משך המבחן 3 שעות חומר עזר: דף נוסחאות מצורף, מחשבון אסור בהצלחה! חלק א'

ייבוא וייצוא של קבצי אקסל וטקסט

תמליל:

1 ברק גונן

proc endp SimpleProc push bp mov bp, sp ; Procedure code pop bp ret 6 SimpleProc עד עכשיו, כל פעם שמרנו את כתובת החזרה ודחפנו למחסנית. אנחנו זונחים את השיטה הזו. נלמד את השיטה המקובלת לתכנות אסמבלי הרגיסטר base pointer -bp עוזר לגשת לערכים במחסנית נראה איך ניתן לכתוב את SimpleProc בדרך שונה נעבור אחד אחד על כל החלקים החדשים בתוכנית )מסומנים( 2 ברק גונן

push mov bp bp, sp תחילה שומרים את ערכו של,bp כדי שנוכל לשחזר את ערכו ביציאה מצב המחסנית בתוך הפרוצדורה, לאחר פקודת ההעתקה של sp לתוך bp שימו לב לכתובת היחסית ל- bp מה יצא לנו מזה? 3 ברק גונן

ערכו של bp נשאר קבוע משך חיי הפרוצדורה bp מצביע תמיד על אותו מקום במחסנית אפשר להתייחס לכל מיקום במחסנית יחסית למיקום של ש- bp מצביע עליו 4 ברק גונן

proc endp SimpleProc push bp mov bp, sp ; Compute I+J-K xor ax, ax add ax, [bp+8] add ax, [bp+6] sub ax, [bp+4] pop bp ret 6 SimpleProc K J I נראה איך אפשר להשתמש במסקנה האחרונה: [bp+4] תמיד מצביע על [bp+6] תמיד מצביע על [bp+8] תמיד מצביע על 5 ברק גונן

מורה אחר לאסבמלר להחליף צירוף תווים מוגדר בצירוף תווים iparm equ [bp+8] kparm equ [bp+6] jparm equ [bp+4] כיוון ש- EQU היא הוראה לאסמבלר, אינה תופסת מקום בזיכרון התווים מוחלפים בתווים אחרים בשלב האסמבלר מומלץ להשתמש כאשר מבצעים כמו תוויות, היא pass by value בשיטת pass by reference ממילא משתמשים ברגיסטר כגון bx 6 ברק גונן

אותו קוד- לפני ואחרי: proc endp SimpleProc push bp mov bp, sp ; Compute I+J-K xor ax, ax add ax, iparm add ax, jparm sub ax, kparm pop bp ret 6 SimpleProc proc endp SimpleProc pop ReturnAddress ; Compute I+J-K pop ax ; k pop bx ; j sub bx, ax ; j-k pop ax ; i add ax, bx ; i+j-k push ReturnAddress ret SimpleProc נוסף על כך שהקוד יותר קריא, חסכנו רגיסטר ואנחנו יכולים לעשות שימוש חוזר בפרמטרים 7 ברק גונן

נותר לנו להבין מה משמעות הפקודה ret 6 כזכור פקודת :ret מוציאה את כתובת החזרה מהמחסנית מעלה את ערכו של sp ב 2 קופצת אל כתובת החזרה ret פקודת עם קבוע: מוציאה את כתובת החזרה מהמחסנית מעלה את ערכו של sp ב 2 פלוס הקבוע קופצת אל כתובת החזרה בצורה זו ניתן לנקות מהמחסנית פרמטרים ששלחנו 8 ברק גונן

בתחילת הפרוצדורה לא צריך לעשות pop לכתובת החזרה ולשמור אותה. לא צריך לעשות pop לכל הערכים שדחפנו למחסנית. פשוט ניגשים ישר אל הכתובת שלהם במחסנית בעזרת.bp אפשר לייצג כל תא בזיכרון המחסנית על ידי שם קריא ובעל משמעות. יתרון נוסף של,bp שנראה אותו מיד, הוא ש- bp עוזר לנו לגשת למשתנים מקומיים. 9 ברק גונן

כיתבו פרוצדורה.Pitagoras הפרוצדורה תקבל 3 פרמטרים-,X,Y Z ותבדוק אם מתקיים היחס.X 2 +Y 2 =Z 2 אם כן- הפרוצדורה תקבע,ax=1 אחרת.ax=0 10 ברק גונן

משתנה מקומי: Local Variable אינו מוכר מחוץ לפרוצדורה מוגדר ע"י הפרוצדורה הפרוצדורה מקצה זיכרון על המחסנית משחררת את הזיכרון לפני החזרה לתוכנית איך זה מתבצע בפועל? 11 ברק גונן

ראינו שכל הקצאת זיכרון על המחסנית מורידה את ערכו של sp כדי להקצות משתנים מקומיים- מורידים את ערכו של sp לדוגמה: הקצאת 6 בתים למשתנים מקומיים- Sub sp, 6 כדי לשחרר את הזיכרון ולהביא את sp כך שיצביע על המקום במחסנית בו שמור -ip מבצעים את הפעולה ההפוכה לדוגמה: שחרור 6 בתים שהוקצו- Add sp, 6 12 ברק גונן

varx equ [bp+6] vary equ [bp+4] AddXY equ [bp-2] SubXY equ [bp-4] proc XY push bp mov bp, sp sub sp, 4 ; Allocate push ax ; Save ax mov ax, varx add ax, vary mov AddXY, ax mov ax, varx sub ax, vary mov SubXY, ax pop ax ; Restore ax add sp, 4 ; De allocate pop bp ret 4 endp XY נגדיר פרוצדורה בשם XY מקבלת שני פרמטרים-,x y מגדירה שני משתנים מקומיים- AddXY, SubXY -AddXY סכום הפרמטרים -SubXY הפרש הפרמטרים 13 ברק גונן

14 ברק גונן

mov [x], 5 mov [y], 4 push [x] push [y] call XY נקרא לפרוצדורה XY מהתכנית הראשית: כך נראית המחסנית: y ip bp AddXY SubXY 15 ברק גונן

כיתבו תוכנית ראשית, שדוחפת למחסנית שלושה ערכים כלשהם וקוראת לפרוצדורה בשם.XYZ הפרוצדורה כוללת שלושה משתנים מקומיים LocalY, LocalX,.LocalZ הפרוצדורה תעתיק כל ערך לתוך משתנה מקומי אחר. הריצו את התוכנית ובידקו במחסנית שההעתקה בוצעה כנדרש. 16 ברק גונן

DATASEG num_elements equ 15 Array db num_elements dup )?( CODESEG push num_elements push offset Array call SomeProcedure לעיתים נרצה להעביר לפרוצדורה אוסף של איברים הנתונים במערך העברה בשיטת :pass by value דחיפת האיברים אחד אחד... מייגע! בשיטת pass by reference מעבירים רק: כתובת האיבר הראשון במערך מספר האיברים במערך בתוך הפרוצדורה, ניגשים לאלמנט במערך ע"י כתובת הבסיס וההיסט 17 ברק גונן

צרו פרוצדורה שמקבלת מערך ואת המשתנה sum ומכניסה לתוך sum את סכום האיברים במערך. לדוגמה, עבור המערך 2,2,3,4,5 התוצאה תהיה.sum=16 18 ברק גונן

כיתבו פרוצדורה SortArray שמקבלת מצביע למערך ומספר איברים במערך, וממיינת את המערך מהאיבר הקטן לגדול. לדוגמה עבור המערך 3,6,5,2,1 הפרוצדורה תגרום למערך להכיל את הערכים: 1,2,3,5,6. הדרכה לכתיבת הפרוצדורה: כיתבו פרוצדורת עזר FindMin שמקבלת מצביע למערך, מוצאת את האיבר הקטן ביותר ומחזירה את האינדקס שלו. כיתבו פרוצדורת עזר Swap שמקבלת שני פרמטרים באמצעות שיטת pass by reference ומחליפה את הערכים שלהם. הפרוצדורה SortArray תרוץ בלולאה על המערך ותקרא ל FindMin. לאחר מכן תקרא ל Swap עם שני פרמטרים: האינדקס שהחזירה FindMin והאינדקס הראשון במערך. לאחר שהפרוצדורה SortArray העבירה את האיבר הקטן ביותר לאינדקס הראשון, היא תקרא ל FindMin כאשר המצביע למערך הוא על האינדקס השני במערך. לאחר מכן, SortArray תקרא ל- Swap עם שני פרמטרים: האינדקס שהחזירה FindMin והאינדקס השני במערך. הפרוצדורה תמשיך בשיטה זו עד לסיום מיון המערך. בתוכנית הראשית: השתמשו בפקודות קלט ופלט כדי לקלוט איברים למערך וכדי להדפיס את המערך הממוין. הניחו שהמספרים הם בני ספרה אחת. אתגר: הניחו מספרים בני יותר מספרה אחת. 19 ברק גונן

כיתבו פרוצדורה שנקראת,Sort2Arrays שמקבלת מצביעים לשני מערכים ומספר איברים בכל מערך, ומצביע נוסף למערך יעד sorted אליו יש להכניס את תוצאת המיון של שני המערכים, כאשר ערכים כפולים מסוננים החוצה. לדוגמה: Array1 = 4,9,5,3,2 Array2 = 3,6,4,1 לאחר הרצת הפרוצדורה: Sorted = 1,2,3,4,5,6,9 הדרכה לכתיבת הפרוצדורה: כיתבו פרוצדורה בשם Merge שמקבלת מצביעים לשני מערכים ומעתיקה אותם למערך אחד, ללא מיון או סינון. קיראו ל SortArray עם המערך שיצרה.Merge כיתבו פרוצדורה בשם Filter שעוברת על המערך הממוין ומאפסת את כל הערכים שמופיעים יותר מפעם אחת. 20 ברק גונן

Stack Overflow הינו מונח חשוב מתחום אבטחת המידע ניתן להריץ קוד שונה ממה שתוכנן איננו מעודדים שינוי קוד מקור- זה אינו חוקי! נעסוק בתיאוריה של הנושא: מודעות לבעיות אבטחה היא כלי חשוב לעתידכם הבנה של הנושא דורשת חזרה והתעמקות בחומר הלימוד 21 ברק גונן

)באפר(, -Buffer Overflow מגדירים קטע זיכרון ומנסים להעתיק אליו יותר בתים מהגודל שלו. ה"באפר" הוא בגודל 12 ביצים. אם ננסה להכניס 13 ביצים נקבל Buffer.Overflow אם הבאפר שגלש הוגדר על המחסנית, הגלישה נקראת Stack Overflow 22 ברק גונן

בררו לעצמכם- מה עושה התוכנית הבאה? www.cyber.org.il/assembly/stackof.asm התוכנית מדפיסה למסך בקשה לקלוט את שם המשתמש. לאחר שהמשתמש סיים עליו להקיש.enter אז התכנית מדפיסה למסך הודעה.Program finished כך: 23 ברק גונן

לאחר קטע הקוד שמסיים את ריצת התוכנית, קוד נוסף, שמדפיס הודעה שונה למסך. זהו קטע קוד מוזר, מכיוון שהוא לא אמור להיות מורץ. אין בתכנית שום פעולה שמקפיצה את ip כך שיגיע אל קטע הקוד הזה. אם כך, איך אפשר להסביר את ההרצה הבאה? יש קטע 24 ברק גונן

הפרוצדורה GetName מגדירה באפר בגודל 10 בתים על המחסנית. בתוך הפרוצדורה, המחסנית נראית כך: 25 ברק גונן

בהרצה הראשונה המשתמש הזין את שמו. מצב המחסנית: 26 ברק גונן

נוסף על 8 התווים הראשונים המשתמש מזין 5 תווי רווח ואז סימן קריאה. כתוצאה מהעתקה של 14 בתים לתוך באפר שגודלו 10 בתים, נוצר מצב של.Stack Overflow 27 ברק גונן

התוכנית ממשיכה לרוץ- תעצור רק אם תיתקל ב- opcode לא חוקי בסיום ריצת הפרוצדורה: הבאפר נמחק )פקודת sp, 10 )add מבוצע,pop bp אך הערך הוא כעת 2020h מבוצע ret לכתובת 2120h )לא )little endian -2021h 28 ברק גונן

פעולת ה- ret מקפיצה את התוכנית לכתובת 2120h שם נמצא הקוד שמדפיס את הודעת הסיום dragons Here be הביטוי לקוח ממפות עתיקות ופירושו: איזור לא מוכר, שאין לדעת מה נמצא בו. צפו לסכנות... איך אפשר לשנות את התוכנית כך שיימנע ה- Overflow?Stack מפת Psalter מ- 1265. בתחתית המפה, מחוץ לטריטוריה המוכרת לאדם, דרקונים. 29 ברק גונן

מספר שאלון 899205 קיץ 2014 קיץ 2011 קיץ 2010 30 ברק גונן

31 ברק גונן

32 ברק גונן

33 ברק גונן