Comp. Arch. Lecture 1

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

מערכות הפעלה

Microsoft PowerPoint - Lecture1

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

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

PowerPoint Presentation

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

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

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

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

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

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

מצגת של PowerPoint

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

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

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

Microsoft PowerPoint - CE_Candidates_2011.ppt [Compatibility Mode]

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

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

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

Slide 1

Microsoft PowerPoint - L01-n.ppt

Microsoft PowerPoint - lec2.ppt

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

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

Microsoft PowerPoint - lecture4_handnotes_2013_2.ppt [Compatibility Mode]

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

PowerPoint Presentation

Slide 1

תרגול מס' 1

מקביליות

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

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

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

PowerPoint Presentation

Homework Dry 3

PowerPoint Presentation

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

Microsoft PowerPoint - rec1.ppt

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

Microsoft Word - c_SimA_MoedB2005.doc

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

Slide 1

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

PowerPoint Presentation

מערכות הפעלה

Microsoft Word - moed_A_sol.doc

Microsoft PowerPoint - 10_threads.ppt

Slide 1

תרגול 1

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

Microsoft PowerPoint - meli-iso.ppt

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

Slide 1

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

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

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

Slide 1

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

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

Microsoft Word - Summary

Slide 1

Microsoft PowerPoint - rec3.ppt

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

Microsoft Word B

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

מערכות הפעלה

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

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

שקופית 1

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

סדר יום

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

אגף כלכלה תקציב ומסחר

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

Slide 1

Slide 1

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

שקופית 1

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

שעור 6

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

ex1-bash

תרגול 1

Microsoft Word - UsingXMTenvironment.rtf

eriktology The Prophets Book of 1 st Kings [1]

eriktology The Writings Book of Psalms [1]

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

Microsoft PowerPoint - lec10.ppt

תמליל:

א ר כי טקטור ת מ ח ש בים ד"ר טל שיקלר סו ב ול אימייל: stal@bgu.ac.il

Mother board לוח אם

CPU central processing unit מעבד

דוגמאות: 80x86 ו תואמיו Intel 80x86 Intel Core 2 Duo 64 bits 80x86 compatible AMD Athlon (technically different) 80x86 compatible

ארגון המ חשב ו שפת סף (אסמ ב לי) כל פעולות המחשב מתבצעות באמצע ות הוראות תוכנית לאחר שתורגמו לשפת מכונה. הארכיטקטורה - שפת הסף (Assembly)

מה נל מד ב קו רס? High-Level Languages, e.g. ML Compiled Languages, e.g. C++ Assembly Languages Programs Machine Code/ Architecture Computer Organization Level Digital Logic Level Transistors & Layout Materials/ Physics Physical Layers

דוגמה : A=A+B 0 3 c 3 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1

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

מה ז ה מ אפשר?

הארכיט ק ט ור ה ו שפת האסמ ב לי תל ויות בארגון ה מח שב

שכבו ת ויר ט ואליות ב מכונה High-Level Languages Compiled Languages, e.g. C++ Assembly Languages Programs Machine Code/ Architecture Computer Organization Level Digital Logic Level Transistors & Layout Materials/ Physics Physical Layers

ה ארכיט ק ט ו רה ארכיטק ט ור ת Von-Neumann

Mother board לוח אם

דיאגרמ ת ב לו קי ם פשו ט ה של ה מח שב

מ חשב מוד רני (פשוט)

ז יכרון 0000 3F 0001 2C 0002 41 0003 FF 0004 00 0005 1E 1 byte = bits -בית -מלbit 1 word = bytes - סיבית מידע

Buses

Address Buses 2 קווי כתובת מקוד ד ים _ _כתובות: = כתובות 4 קוים = כתובות 8 קוים = כתובות 16 קוים 32 קוים = כתובות

קרי אה מ ה זי כרון 0001 0001 Address Bus Other registers Data Bus Arithmetic and Logic Unit Control Unit Control Bus Main Memory CPU Clock

כתיב ה ל זי כרון 0001 0001 Address Bus Other registers Data Bus Arithmetic and Logic Unit Control Unit Control Bus WRITE LINE Main Memory CPU Clock

תכנית מ חשב המחשב מבצע תכנית השמורה בזיכרון באופן בסיסי בצע תמיד/ :DO FOREVER The Fetch-Execute Cycle Fetch Execute (interrupts) בפועל מסובך יותר, למש ל בשל פסיקות

Fetch & execute cycle מ ח זו ר ה בא ובצע הבא את הפק ודה הבאה Fetch Next Instruction Execute Instruction עדכן את מ ונה ה תכנ ית בצע הפקודה Update PC תרגם הפקוד ה Decode Instruction

קצת יו תר ע ל אר גו ן המע ב ד...

CPU central processing unit יחי דת עיבוד מר כזי ת (המ עבד)

בג דול...

Registers (accumulators) רגי סטרים (אוגרים) רגיסטרים ר כיבי זיכרון מהירים מאוד ע ל המעבד ע צמו ( (על הצ' פי

רגיסט רים ב- 80x86 This register file unit contains registers of the following types (partial list): 8-bit general registers: AL, BL, CL, DL, AH, BH, CH, DH 16- bit general & special registers: AX, BX, CX, DX, SP, BP, SI, Dl 32-bit general & special registers: EAX, EBX, ECX, EDX, ESP, EBP, ESI, EDI (Accumulator, Base, Counter, Data, Stack pointer, Base pointer, Source index string op., Destination Index string op.) Segment registers: ES, CS,SS, DS, FS, GS Instruction pointer: EIP

Flags דגלים כל דגל (FLAG) מייצג סיבית (bit) ש ל מיד ע חשו ב: מצב המכונה מ צ ב החישו ב

Execution unit יחידת ביצוע

ALU- arithmetic Logic Unit יחידת חישובים (אריתמטיים ולוגיים) 1 0 1 0 0 1 1 0 0 0 1 0

דוגמה ALU: 1 bit

Bus Interface

סדר ה פקודות

Control unit יחידת הבקרה מיי צרת אותות תז מון וב ק רה בוחרת פעולות לביצוע ב: :ALU :Register file :Program counter :Bus control פסיקות

The Fetch-Decode-Execute Cycle Fetch PC=PC+1 Decode Execute

Fetch Decode- Execute Cycle הבא את הפק ודה הבאה Fetch Next Instruction תרגם הפקוד ה עדכן את מ ונה ה תכנ ית Update PC Decode Instruction בצע הפקודה Execute Instruction

ביצו עי ם

Clock & Frequency שעון ותדר

ביצועים (performance) זמנים מחושבים לפי השעון,(frequency) מחזור השעון cycle) (clock או תדר למשל: 4 GHz כל פעולה לוקחת לפחות מחזור שע ון אחד. גישה לזיכרון access) (memory לוקחת בד"כ יותר ממחזור שעון אחד. זמן הגישה time) (access לזיכרון הוא קריטי! ביצוע פקודה (execution) מורכב ממספר צעדים גישה לזיכרון. ע לול לכלול

ביצועים (performance) הבי צ ו עים (performance) ת ל ויים במ יד ה רבה ב:

בשיע ורים הבאים: מ הי שפת אסמ בלי

אסמ ב לי ו אסמ ב לר שפת אסמבלי היא (כמעט) תרגום ישיר של שפת המכונה. מרכיבי שפת אסמבלי: mnemonics גרסה סימבולית לפקודות בשפת המכונה - תוויות לייצוג לכתובות בזיכרון labels שמות רגיסטרים pseudo-operations (פקודות המתרגמות לכמה פקודות מכונה, או פקודות המבוצעות ע"י האסמבלר ולא בזמן הרצת התכנית ע"י ה- macros,(cpu ועוד... תכנת Assembler מתרגמת את ה- Assembly לשפת המכונה. התרגום מתבצע בשני שלבים: 1. תרגום הפקודות לקוד בינארי ויצירת טבלה סימבולית ) table (Symbolic לתרגום ה-.labels 2. תרגום ה- labels לכתובות (הניתנות לאיתור ולהעברה,,(relocatable תיקון הקוד הבינארי בהתאם, ויצירת,Object file המכיל את אינפורמציית ההעברה.

;"Hello world!" program for Linux in NASM style assembly (Wikipedia) ;; section.data ; section for initialized data str: db 'Hello world!', 0Ah ; message string with new-line char at the end (10 decimal) str_len: equ $ - str ; calcs length of string (bytes) by subtracting this' address ; ($ symbol) from the str's start address section.text ; this is the code section global _start ; _start is the entry point and needs global scope to be 'seen' by ; linker - equivalent to main() in C/C++ _start: ; procedure start mov eax, 4 ; specify the sys_write function code (from OS vector table) mov ebx, 1 ; specify file descriptor stdout -in linux, everything's treated ; as a file, even hardware devices mov ecx, str ; move start _address_ of string message to ecx register mov edx, str_len ; move length of message (in bytes) int 80h ; tell kernel to perform the system call we just set up - ; in linux services are requested through the kernel mov eax, 1 ; specify sys_exit function code (from OS vector table) mov ebx, 0 ; specify return code for OS (0 = everything's fine) int 80h ; tell kernel to perform system call

"Hello world!" program for Linux in NASM style assembly using the C standard library (Wikipedia) global main ;main must be defined as it being compiled against the C-Standard Library extern printf segment.data ;declares use of external symbol as printf is declared in a different object- ;module. Linker resolves this symbol later ;section for initialized data string db 'Hello world!', 0Ah ;message string with new-line char at the end (10 decimal) segment.text main: ;string now refers to the starting address at which 'Hello, World' ;is stored. push string ;push the address of first character of string onto stack. call printf ;This will be argument to printf ;calls printf add esp, 4 ;advances stack-pointer by 4 flushing out the pushed string ; argument ret ;return

דוגמה 1 2 %define STK_UNIT 4 3 4 %macro Iamalive 0 5 push Str1 6 call printf 7 add esp, STK_UNIT 8 %endmacro 9 10 %macro my_printf 2 11 section.rodata 12 %%Str2: db %2, 10, 0 13 section.text 14 push %1 15 push %%Str2 16 call printf 17 add esp, STK_UNIT*2 18 %endmacro 19 20 section.rodata 21 00000000 4920616D20616C6976- Str1: db 'I am alive', 10, 0 22 00000009 650A00 23 0000000C 0F000000 num1: dd 15 24 25 section.text 26 align 16 27 global my_func 28 extern printf

1 2 %define STK_UNIT 4 3 4 %macro Iamalive 0 5 push Str1 6 call printf 7 add esp, STK_UNIT 8 %endmacro 9 10 %macro my_printf 2 11 section.rodata 12 %%Str2: db %2, 10, 0 13 section.text 14 push %1 15 push %%Str2 16 call printf 17 add esp, STK_UNIT*2 18 %endmacro 19 20 section.rodata 21 00000000 4920616D20616C6976- Str1: db 'I am alive', 10, 0 22 00000009 650A00 23 0000000C 0F000000 num1: dd 15 24 25 section.text 26 align 16 27 global my_func 28 extern printf

דוגמה 1 2 %define STK_UNIT 4 3 4 %macro Iamalive 0 5 push Str1 6 call printf 7 add esp, STK_UNIT 8 %endmacro 9 10 %macro my_printf 2 11 section.rodata 12 %%Str2: db %2, 10, 0 13 section.text 14 push %1 15 push %%Str2 16 call printf 17 add esp, STK_UNIT*2 18 %endmacro 19 20 section.rodata 21 00000000 4920616D20616C6976- Str1: db 'I am alive', 10, 0 22 00000009 650A00 23 0000000C 0F000000 num1: dd 15 24 25 section.text 26 align 16 27 global my_func 28 extern printf

29 30 my_func: 31 00000000 60 pusha 32 Iamalive 33 00000001 68[00000000] <1> push Str1 34 00000006 E8(00000000) <1> call printf 35 0000000B 81C404000000 <1> add esp, STK_UNIT 36 37 my_printf dword [num1], "The number is %ld" 38 <1> section.rodata 39 00000010 546865206E756D6265- <1> %%Str2: db %2, 10, 0 40 00000019 7220697320256C640A- <1> 41 00000022 00 <1> 42 <1> section.text 43 00000011 FF35[0C000000] <1> push %1 44 00000017 68[10000000] <1> push %%Str2 45 0000001C E8(00000000) <1> call printf 46 00000021 81C408000000 <1> add esp, STK_UNIT*2 47 my_printf dword [num1], "The number again is %ld" 48 <1> section.rodata 49 00000023 546865206E756D6265- <1> %%Str2: db %2, 10, 0 50 0000002C 7220616761696E2069- <1> 51 00000035 7320256C640A00 <1> 52 <1> section.text 53 00000027 FF35[0C000000] <1> push %1 54 0000002D 68[23000000] <1> push %%Str2 55 00000032 E8(00000000) <1> call printf 56 00000037 81C408000000 <1> add esp, STK_UNIT*2 57 58 0000003D 61 popa 59 0000003E C3 ret