Microsoft PowerPoint - lecture4_handnotes_2013_2.ppt [Compatibility Mode]

מסמכים קשורים
תרגול מס' 1

מערכות הפעלה

מבוא לאסמבלי

Comp. Arch. Lecture 1

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

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

מצגת של PowerPoint

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

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

PowerPoint Presentation

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

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

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

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

מבוא למדעי המחשב, סמסטר א', תשס"ח תרגול מס' 2

PowerPoint Presentation

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

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

Slide 1

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

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

Slide 1

Microsoft Word - Summary

Microsoft PowerPoint - Lecture1

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

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

PowerPoint Presentation

מבנה מחשבים ספרתיים

PowerPoint Presentation

הטכניון – מכון טכנולוגי לישראל

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

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

תרגול 1

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

שעור 6

מקביליות

Slide 1

Microsoft Word - moed_A_sol.doc

Microsoft Word - Ass1Bgu2019b_java docx

Microsoft PowerPoint - rec1.ppt

Slide 1

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

PowerPoint Presentation

Homework Dry 3

PowerPoint Presentation

Microsoft PowerPoint - L01-n.ppt

PowerPoint Presentation

PowerPoint Presentation

Microsoft Word B

תרגול מס' 4: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש

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

Slide 1

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

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

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

תוכן העניינים: פרק צמצומים ומימושים של פונקציות בוליאניות... 2 צמצומים של פונקציות באמצעות מפת קרנו:...2 שאלות:... 2 תשובות סופיות:... 4 צמצום

Microsoft PowerPoint - T-10.ppt [Compatibility Mode]

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

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

מצגת של PowerPoint

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

מערכות הפעלה קורס מס'

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

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

Slide 1

Microsoft PowerPoint - meli-iso.ppt

Microsoft Word - pitaron222Java_2007.doc

Slide 1

PowerPoint Presentation

Overview of new Office 365 plans for SMBs

úåëðä 1 - çæøä

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

Slide 1

פתרון 2000 א. טבלת מעקב אחר ביצוע האלגוריתם הנתון עבור הערכים : פלט num = 37, sif = 7 r האם ספרת האחדות של sif שווה ל- num num 37 sif 7 שורה (1)-(2) (

Slide 1

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

מערכות הפעלה

Intel Paging & Page Table Exploitation on Windows מאת יובל עטיה הקדמה בשנת 1985, המעבד i386 של Intel יצא לעולם, והיה המעבד הראשון של Intel שתמך בפקודו

Microsoft Word - c_SimA_MoedB2005.doc

Tutorial 11

Real Time College Course: Networking Duration: 90 Hours Hands-On-Training

Microsoft PowerPoint - CE_Candidates_2011.ppt [Compatibility Mode]

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

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

PRESENTATION NAME

שקופית 1

I am Very Good - Stage3 Pwned! מאת רונן שוסטין )Antartic( ופלג הדר )P( הקדמה במאמר זה נסקור טכניקות אנטי-דיבאגינג מסויימות. כרקע אנו ממליצים לקרוא את

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

תרגול 1

BIG DATA תיאור הקורס המונח Big Data הולך וצובר תאוצה בשנים האחרונות, הוא הופך למגמה רווחת בתעשייה. המשמעות הפרקטית של המונח Big Data הינה טכנולוגיות נ

מבנה מחשבים ספרתיים

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

תמליל:

JMP Jcc ;Jump ; conditional jump JA/JNBE CF ZF=0, above/ not below or equal JAE/JNB CF=0, above or equal/ not below JB/JNAE CF=1, below/ not above or equal JBE/JNA CF ZF=1, below or equal/ not above JC CF=1 carry JNC CF=0, not carry JE/JZ ZF=1, equal/zero JNE/JNZ ZF=0, not equal/not zero JPO/JNP PF=0, parity odd/ not parity JPE/JP PF=1, parity even/ parity JCXZ/JECXZ EC/ECX=0, for loops Signed: JG/JNLE greater/ not less or equal JGE/JNL greater or equal/ not less JL/JNGE less/ not greater or equal JLE/JNG less or equal/ not greater JO /JNO overflow/ not overflow JS/JNS sign (negative)/ not sign (non-negative) LOOP LOOP with ECX counter LOOPZ/LOOPE with ECX & 0 / with ECX & = LOOPNZ/LOOPNE with ECX & not 0 / with ECX & not = CALL RET ENTER LEAVE IRET INT INTO BOUND Call procedure Return High-level procedure entry High-level procedure exit Return from interrupt Software interrupt Interrupt on overflow Detect value out of range קפיצות, קפיצות מותנות, לולאות, קריאה לפונקציות, פסיקות התפצלות קפיצה מותנית קפיצה/התפצלות מותנות מאפשרות קבלת החלטות וביצוע לולאות ואלגוריתמים מורכבים קפיצה לכיוון אחד בלבד מגבלה על גודל הקפיצה במקרים במקרםמסומם מסוימים יש Jcc Jump Conditionally פקודות המשנות את מהלך התכנית קפיצות (jump) והתפצלויות,(branch) לא מותנות ומותנות התפצלות בד"כ שינוי יחסית לערך הנכחי של מונה התכנית BEQ -- Branch on equal MIPs BGEZ -- Branch on greater than or equal to zero BGTZ -- Branch on greater than zero BLEZ -- Branch on less than or equal to zero BLTZ -- Branch on less than zero BNE -- Branch on not equal Motorola 680x0 BRA ; 16 bit (short) unconditional branch relative to current PC, 1

לולאות LOOPs מונה את מספר הפעמים שהלולאה תרוץ. ECX :LOOP.1.2 :ZF לולאה מותנית בוחנים גם את -Loope/loopz 1=ZF,0=~ ECX עוברים לאופרנד היעד סיום הלולאה מעבר לכתובת מיד לאחר פקודת ה- loop 0=ZF 0=ECX Jcc - conditional jumps JA/JNBE CF ZF=0, above/ not below or equal opcode:77h JAE/JNB CF=0, above or equal/ not below JB/JNAE CF=1, below/ not above or equal JBE/JNA CF ZF=1, below or equal/ not above JC CF=1 carry JNC CF=0, not carry JE/JZ ZF=1, equal/zero JNE/JNZ ZF=0, not equal/not zero JPO/JNP PF=0, parity odd/ not parity JPE/JP PF=1, parity even/ parity Signed: JG/JNLE greater/ not less or equal JGE/JNL greater or equal/ not less JL/JNGE less/ not greater or equal JLE/JNG less or equal/ not greater JO overflow / JNO not overflow JS sign (negative) /JNS not sign (non-negative) Enter & Leave Call & Ret CALL - קריאה לפונקציה ושמירת כתובת החזרה במחסנית. כתובת הפונקציה כמו בקפיצה (יחסית ל- EIP או בשיטת מיעון אחרת) הוצאת כתובת החזרה מהמחסנית ומעבר - RET אליה היתרון? ניתן לקרוא ממקומות שונים בתכנית, כולל ריקורסיה, כי כתובת החזרה גמישה יצירת ושחרור מסגרת-מחסנית לפונקציה בשפה עילית Pascal),C). מפשט הגישה לפרוצדורות. במסגרת יש מקום מוגדר למשתנים מקומיים ולמצביעים (pointers) הדרושים לחזרה מסודרת. : ENTER מחסנית EBP.1 EBP ESP.2 החסרת הערך של האופרנד הראשון מ- ESP (לשמירה דינאמית 3. של מקום במחסנית) :LEAVE (שחרור כל המקום שהוקצה לפרוצדורה) ESP EBP 1. ESP ;EBP חוזר לערכו המקורי מחסנית 2. כתובת חזרה פקודת :RET הסרת כל הארגומנטים; מחסנית 3. לתכנית 2

מערכות הפעלה Linux and Windows: supervisor & user-mode לביצוע פונקציות מיוחדות: קוד ברמת המשתמש (user-mode) חייב לבצע לעבור ל-.supervisor-mode /kernel space system call כדי Privilege modes,kernel mode -Ring 0 מודים קריטיים למערכת, לב מערכת ההפעלה (קשר עם החמרה, זיכרון פיזי,..) device drivers אם בשימוש - קשר עם -Ring 1 -Ring 3 רמת האפליקציה, משתמש רגיל לעתים קרובות - call system מבוצעת ע"י פסיקה (interrupt) ב- :Linux int 80xh DOS : run in supervisor-mode permanently (old versions) System calls 1. פסיקה מעבירה את המעבד לרמת הרשאה גבוהה יותר, ומעבירה השליטה ל- kernel 2. ה- kernel מחליט אם לאשר לתכנית הקוראת את השרות שבקשה :kernel השרות מאושר, הה- 3. אם 1. מבצע את סט הפקודות אליהן אין לתכנית הקוראת גישה ישירה 2. מחזיר רמת הרשאה לזו של התכנית הקוראת 3. מחזיר שליטה לתכנית הקוראת פסיקות פסיקה אות האומר למערכת ההפעלה ולמעבד שמשהו/ארוע (event) התרחש. התוצאה שינוי בסדר ביצוע הפקודות ע"י המעבד. מקורה לרוב ברכיב I/O א-סינכרונית, פסיקה בחמרה פסיקה בתכנה מקורה בתכנית, לרב ב- user mode I/O אירוע א-סינכרוני, שמקורו לרוב ברכיב - Interrupt Exception אירוע סינכרוני, כשהמעבד מזהה קיום תנאי המוגדר מראש בעת ביצוע פקודה. faults, traps, aborts - 3

ה- מספר פסיקה תאור הפסיקה מקור הפסיקה 0 שגיאת חילוק DIV, IDIV פסיקות debug 1 פסיקה חיצונית 2 INT 3 breakpoint 3 overflow 4 BOUND מחוץ לתחום 5 UD2 OPCODE שגוי 6 (מעבד מתמטי ( Device 7 לא זמין Double fault 8 -- 9 task segment שגוי, סגמנט 10 11 סגמנט לא קיים 12 בעיה במחסנית - General protection 13 פניה ללא הרשאה ולא לפי ההליך הנכון Page fault 14 -- 15 פסיקות בעת פסיקה: 1. המעבד מפסיק ביצוע התכנית הנוכחית או ה- task 2. עובר לפרוצדורה שנכתבה במיוחד כדי לטפל בפסיקה הספציפית procedure),(handler לאחר בדיקת הרשאה. הדגלים נשמרים במחסנית. המעבר מתבצע באמצעות טבלת פסיקות table),(handler descriptor (וקטור). ק פסיקה בטבלה יש מספר לכל 3. כשמסתיים הטיפול בפסיקה, השליטה חוזרת לתכנית שהופסקה. כמו חזרה מפונקציה רגילה (עם/בלי שינוי המוד הרשאה) + שחזור רגיסטר הדגלים.EFLAG - IF שומר על ערכו, interrupt gate ה- - IF מנוקה, למניעת פסיקות חוזרות. trap gate Floating point error 16 Alignment check 17 Machine check 18 SIMD error 19 -- 20-31 32-255 פסיקות משתמש - interrupts maskable INT IRET n INT 3 BOUND INT 5 INTO או INT 4 INT פסיקות באסמבלי X86 80xh הפעלה מכוונת וחוקית: הזזת מבנים גדולים של מידע לזיכרון ומהזיכרון ובחינתם בזיכרון למשל, שרשראות תווים אלפא-נומריים הפקודות פועלות על אלמנטים בודדים מהשרשרת (byte, word, double word) המיקום מוגדר ע"י הרגיסטרים ESI (מקור) ו- EDI (יעד), המכילים כתובות אבסולוטיות 4

פעולות על STRINGs פעולות על STRINGs CMS כמעט ללא הגבלה על גודל המידע. רגיסטרים EDI, ESI מצביעים על כתובות מקור ויעד (בהתאמה) SCAS רק [EAX]-[EDI] -> EFLAGS ; גודל האופרנד בשם הפקודה LODS STOS ; [EAX] -> EDI חלק מפעולות ה- I/O גם מתבצעות על שרשראות פעולות חוזרות על STRINGs IN INS OUT OUTS רגיסטרים EDI, ESI מצביעים על כתובות מקור ויעד (בהתאמה) REPE/REPZ ; REPNE/REPNZ ; REP הוספת :prefix כיוון ההתקדמות: מונה חזרות: בהתאם לדגל הכיוון DF (0 לערך רגיסטר ) ECX (עד הזזת מידע בין port לזיכרון/רגיסטר ; input port-> register ; input port-> string ; output register -> port ; output string -> port 5

Input & output Direct I/O mapping מנגנון בחמרה, מיוחד ל- X86, המאפשר פניה ישירה לרכיבי I/O מרחב כתובות של 16 ביט, הפונה ל- ports מוגדר ע"י רגל I/O של המעבד, או ע"י bus מיוחד הרכיבים מוגדרים וממופים מראש קוראים וקוראים מידע מרגיסטרים ל/מ :I/O OUT port-number, EAX/AX/AL IN EAX/AX/AL, port-number מספר (immediate) או ב- DX *** מספר ה- PORT OUTS INS Block Input & output קוראים וקוראים שרשראות מהזיכרון ל/מ :I/O מספר ה- PORT ב- DX ניתן להשתמש ב- REP גודל יחידת המידע בשם הפקודה: OUTSW,INSB וכיוב' פקודות התומכות במערכת ההפעלה ובפתוח מערכות הפעלה ניהול הזיכרון טיפול בפסיקות Task management בקרה על מספר מעבדים ניהול ההספק ומשאבי החמרה,debugging ובקרה על הביצועים ארכיטקטורה ייעודית עם פקודות ייעודיות 6

"פקודות שלא ניתן לפרקן" בסביבה רבת מעבדים העלאת האות #LOCK באמצעות ה prefix LOCK : לפקודות הבאות כאשר אופרנד היעד בזיכרון: ADD,ADC, AND, BTC, BTR, BTS, CMPXCHG, CMPXCH8B, CMPXCHG16B, DEC, INC, NEG,NOT, OR, SBB, SUB, XOR, XADD, and XCHG חלק מהפקודות הנוספות NOP LEA - load effective address CPUID identify processor and its capabilities RDRAND get a random number generated by HW 7

פעולות MOV מיוחדות Floating point לגרפיקה לחישובים מדעיים, הנדסיים ועסקיים Floating point Integers BCD XLAT תרגום תוך כדי העברה ; [ebx + AL] AL,AL ע"י המקום בטבלה,ebx ועל ע"י על טבלה הצבעה סטים נוספים של פקודות: Flag Packed data SIMD single instruction multiple data לגרפיקה בשניים ושלושה מימדים ווידיאו עיבוד תמונה עיבוד וסינתזה של דיבור טלפוניה וועידות וידאו conferencing) (video העברת הערך ל- AL העברה ל/מ רגיסטרי בקרה floating point in NASM dd 1.2 dd 1.222_222_222 ; underscores are permitted dd 0x1p+2 ; 1.0x2^2 = 4.0 dq 0x1p+32 ; 1.0x2^32 = 4,294,967,296.0 dq 1.e10 ; 10,000,000,000.0 dq 1.e+10 ; synonymous with 1.e1010 dq 1.e-10 ; 0.000 000 000 1 dt 3.141592653589793238462 ; pi Special operators: _float32_, _float8_, רגיסטרים ייעודים ל- Floating point רגיסטרים ייעודיים לפעולות SIMD 8

Floating point ייצוג ע"י מספר שלם, שבר ואקספוננט מעל בסיס כלשהו (כולל,Nan אינסוף, ועוד) Significant digits base exponent Floating point instructions ייצוג מספרים ממשיים בתחום רחב של ערכים: ספרות משמעותיות (מנטיסה) X אקספוננט, הבסיס הוא 2 Type Sign Exponent Significand Total bits Single 1 8 23 32 Double 1 11 52 64 לפי תקן IEEE 754 מבוצע ע"י יחידת חישוב נפרדת x87, FPU המכילה גם פקודות BCD פקודות העברת מידע, המרת מידע, עיגול מספרים, העברה בין בסיסים, חיבור, חיסור, כפל, חילוק, קבועים ידועים, פקודות לוגריתמיות וטריגונומטריות, בדיקות מיוחדות פקודות SIMD single-instruction multiple-data (SIMD) נועדו להאיץ פעולות מולטימדיה ותקשורת : data transfer, conversion, packed arithmetic, comparison, logical, shift and rotate & state management רק במעבדים התומכים בטכנולוגיה, בתוספת רגיסטרים מיוחדים ) MMX ועוד) פועלות על :Packed data הסוגים הרגילים באריזות של 128 64, ו- 256 ביטים 9