לאחר מכן נוכל לכתוב תוכניות שכוללות אלגוריתמים

Similar documents
7 קרפ תויגול,תויטמתירא תודוקפ הזזהו

עד כה עסקנו בתוכניות שמתקדמות פקודה אחרי פקודה העתק ל- ax את הערך 3 העתק ל- bx את הערך 4 הוסף ל- ax את bx כפול את התוצאה ב- 2 והעתק ל- cx

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

זה. Nir Adar

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

מבוא למחשב בשפת פייתון

ניפוי שגיאות )Debug( מאת ישראל אברמוביץ

ASP.Net MVC + Entity Framework Code First.

DNS פרק 4 ג' ברק גונן מבוסס על ספר הלימוד "רשתות מחשבים" עומר רוזנבוים 1

שאלות חזרה לקראת מבחן מפמ"ר אינטרנט וסייבר

Rules Game (through lesson 30) by Nancy Decker Preparation: 1. Each rule board is immediately followed by at least three cards containing examples of

תרגול 8. Hash Tables

קשירות.s,t V שני צמתים,G=(V,E) קלט: גרף מכוון מ- s t ל- t ; אחרת.0 אם יש מסלול מכוון פלט: הערה: הגרף נתון בייצוג של רשימות סמיכות.

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

מכונת מצבים סופית תרגול מס' 4. Moshe Malka & Ben lee Volk

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

מבנה מחשבים ספרתיים תרגול מס' חזרה על ארכיטקטורת ה-

תצוגת LCD חיבור התצוגה לבקר. (Liquid Crystal Display) המערכת.

יסודות מבני נתונים. תרגול :9 ערימה - Heap

בוחן בתכנות בשפת C בצלחה

עץ תורשה מוגדר כך:שורש או שורש ושני בנים שכל אחד מהם עץ תורשה,כך שערך השורש גדול או שווה לסכום הנכדים(נכד-הוא רק בן של בן) נתון העץ הבא:

Hebrew Ulpan HEB Young Judaea Year Course in Israel American Jewish University College Initiative

הנדסה-לאחור: שרשרת העלייה של Windows 7 חלק שני - VBR

מושגים בסיסיים תלמידים והורים יקרים,

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

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

המחלקה למדעי המחשב, אוניברסיטת בן גוריון מבני נתונים, סמסטר אביב 2102 עבודת בית מספר - 2 מעשית

פרק מיון וחיפוש - לשם מה? הגדרה

מודל מעבד-זיכרון רוחב הקו בביטים בין המשתנה למעבד ב- PDP כיווני העברת המידע במודל מעבד-זיכרון SFS CPU MDR MEM MAR

סיכומים למבחן בקורס מבנה מחשבים

Practical Session No. 13 Amortized Analysis, Union/Find

קורס מטלב לפיסיקאים שיעור מס' 10: משתנים מורכבים

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE F) ספרות או: מילון אנגלי-ערבי / ערבי-אנגלי או: מילון אנגלי-אנגלי-ערבי

מבוא למחשב בשפת Matlab

מדריך למשתמש בשירות. yes MultiRoom

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

חזרה, מיונים פולינה לוצקר

המבנה הגאומטרי של מידה

פרק 2- תכנות. socketים ברק גונן מבוסס על ספר הלימוד "רשתות מחשבים" עומר רוזנבוים 1

תוכן העניינים: פרק סדרות סיכום תכונות הסדרה החשבונית:... 2 תשובות סופיות:...8 סיכום תכונות הסדרה ההנדסית:...10

טכנולוגיית WPF מספקת למפתחים מודל תכנות מאוחד לחוויית בניית יישומיי

ב. משרד החינוך בגרות לנבחנים אקסטרניים א נ ג ל י ת (MODULE B) הוראות מיוחדות: )2( בתום הבחינה החזר את השאלון למשגיח. בהצלחה!

Redirection The Input Buffer

Computer Structure. Exercise #1 יש להגיש את התשובות הסופיות על גבי טופס זה.

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

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

אנגלית ספרות בהצלחה! /המשך מעבר לדף/ נספח: כישורי חשיבה )לפרק ראשון ושני( או: מילון אנגלי-ערבי / ערבי-אנגלי או: מילון אנגלי-אנגלי-ערבי

יחידה ארגון המחשב ושפת סף: שאלות תרגול

אנגלית (MODULE E) בהצלחה!

אנגלית שאלון ז' ג רסה א' הוראות לנבחן בהצלחה! )4( ההנחיות בשאלון זה מנוסחות בלשון זכר ומכוונות לנבחנות ולנבחנים כאחד. (MODULE G)

שאלון ו' הוראות לנבחן

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE F) ספרות מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי

םימתירוגלאו םינותנ ינבמ המירעו תינס, חמ רות רקצול הנילופ

כפתור רדיו בחירה בודדת מתוך רשימת אפשרויות

SPSS 10.0 FOR WINDOWS

מערכים Haim Michael. All Rights Reserved.

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

מספר ת"ז: יש לסמן את התשובה הטובה ביותר בתשובון. לא יינתן ניקוד על סימון תשובה בטופס הבחינה או במחברת הבחינה.

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון ב' Corresponds with Module B גרסה ב' הוראות לנבחן

מספר השאלון: Thinking Skills נספח: כישורי חשיבה )לפרק ראשון ושני( א נ ג ל י ת (MODULE F) ספרות )מילון הראפס אנגלי-אנגלי-ערבי(

בהצלחה! (MODULE C) Hoffman, Y. (2014). The Universal English-Hebrew, Hebrew-English Dictionary

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

מדריך למשתמש התקנה עצמית

התכנית הראשונה שלי

שאלון ו' הוראות לנבחן

שאלון ד' הוראות לנבחן

ב. משרד החינוך בגרות לנבחנים אקסטרניים א נ ג ל י ת (MODULE B) הוראות מיוחדות: )2( בתום הבחינה החזר את השאלון למשגיח. בהצלחה!

בחינת בגרות, תשע"ז מס' שאלון: מדעי המחשב שאלה 1. Java. blog.csit.org.il הילה קדמן

סה"כ נקודות סה"כ 31 נקודות סה"כ 21 תוכן עניינים של פתרון המבחן. לולאת for )נתון אלגוריתם... מעקב, פלט

ניסוי בפייתון מכון טכנולוגי לישראל הניסוי מתקיים בבניין פישבך, חדר 573 )במסדרון למאייר(. המאחר ביותר מ- 53 דקות לא יורשה לבצע את הניסוי.

תכנות בטוח חלק ב ' מאת עידו קנר

אנגלית שאלון ז' (MODULE G) ג רסה א' הוראות לנבחן )מילון אנגלי-ערבי / ערבי-אנגלי )


אוניברסיטת בן גוריון בנגב

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון א' Corresponds with Module A (Without Access to Information from Spoken Texts) גרסה א'

TAKE ACTION. Unit1. Part A. Pre-Reading Before page 8. A Match each letter to the two letters that follow it in the alphabetical order.

תרגיל בית מספר - 1 להגשה עד 9 בנובמבר בשעה 23:55

מספר השאלון: הצעת תשובות לשאלות בחינת הבגרות אנגלית (MODULE C) מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי قاموس إنجليزي - إنجليزي - عربي

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי

ãówh,é ËÓÉÔê ÌW W É Å t" Y w f É ËÓÉÑ É èw É f Ñ u ð NNM YóQ' ÌW W É Y ÉgO d óqk É w f ym Éd É u ð NNM ÌWNQMH uqo ð NNM ÌWNQMH

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 134 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 37

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות או מילון אנגלי-עברי-עברי-אנגלי

Structural Vs. Nominal Typing

תכניות סטנדרטיות ב UNIX שרשור פקודות באמצעות Pipeline עבודה ב- bash

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות או מילון אנגלי-עברי-עברי-אנגלי

Reflection Session: Sustainability and Me

(MODULE E) ב ה צ ל ח ה!

פרצות אבטחה נפוצות בהעלאת קבצים בעזרת PHP

פיזיקה של נהיגה מדריך למורה

מבוא למדעי המחשב בשפת ++C - חוברת תרגילים

interface Student {tag: Student, name: string; age: number;} const makestudent = ( name: string, age: number ) : Student =>

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

סיכומים למבחן בקומפילציה

זו מערכת ישרת זוית )קרטזית( אשר בה יש לנו 2 צירים מאונכים זה לזה. באותו מישור ניתן להגדיר נקודה על ידי זוית ורדיוס וקטור

Visual C# Express יסודות מדעי המחשב 1 מהדורת עיצוב תשס"ו 2006 כתבה: יעל בילצ'יק (סופרין)

תרגול 11 תור עץ חיפוש בינארי

Operating Systems, 142. Practical Session 12 File Systems, part 2

מקוון Sharing and Playing: Serious Games and Collaboration in Online Education

למבחן ביסודות מדעי המחשב דוגמא

שנה"ל תשע"ד,סמסטר א',מועד א שאלון בחינה בקורס: מבוא למדעי המחשב לתעו"נ מספר : בחלק א' 11 שאלות, יש לענות על 11 מתוכן )כל שאלה מזכה ב 7 נקודות(

Transcription:

1 ברק גונן

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

למה צריך להגדיר משתנים? הריצו את הפקודה הבאה: mov al, [ds:1h] עקבו אחרי הזיכרון ב- DATASEG תזכורת: CTRL+G עקבו אחרי al ואז לרשום ds:0 הבעיה: אם התוכנית מלאה הצבות זיכרון כאלה, קשה לדבג אותה יהיה 3 ברק גונן

האסמבלר מאפשר לנו לתת למיקומים בזיכרון שמות משמעותיים משתנים - Variables לדוגמה אם הכתובת ds:1 תיקרא את הקוד שלנו סוגריים מרובעים- הערך שנמצא,age במיקום בזיכרון ניתן יהיה לכתוב mov al,[age] במקרה זה age=ds:1h ds:1h שווה לערך שנמצא בזיכרון במיקום [age] 4 ברק גונן

נעשית בתוך סגמנט ה- DATA מצביע על סגמנט ה- DATA Ds )בתנאי שדאגנו לזה...( DATASEG age db? day db? month db? ערך התחלתי גודל שם המשתנה 5 ברק גונן

משתנה בגודל בית- DB- Define Byte משתנה בגודל מילה- DW- Define Word משתנה בגודל מילה כפולה - Double DD- Define DATASEG: ByteVar db? ; allocate byte WordVar dw? ; allocate word DoubleWordVar dd? ; allocate double word 6 ברק גונן

CODESEG start: mov ax, @data mov ds, ax mov [var], 5 quit: mov ax, 4c00h int 21h END start הגדירו משתנה בשם byte בגודל,var הקוד הבא מעתיק לתוך var את הערך 5. העתיקו והריצו. בידקו ש- var מקבל 5. הכניסו את השורה המודגשת להערה והריצו שוב. מה קרה? 7 ברק גונן

DATASEG: Var1 db? Var2 db? CODESEG mov al, -120 mov [Var1], al mov al, 136 mov [Var2], al באסמבלי אין משתנים ו- unsigned signed סוג המשתנה נקבע לפי הפרשנות שאנחנו מעניקים לערך שלו. לדוגמה: הסבירו- מדוע התוצאה נכונה? 8 ברק גונן

האם העובדה שלשני ערכים שונים יש את אותו הייצוג בזיכרון, אינה גורמת לשגיאות חישוב? הוסיפו לערכים בדוגמה האחרונה את הערך 120+ ובידקו את התוצאות. 136 + 120??? -120 + 120??? 9 ברק גונן

DATASEG: ByteVarName1 db 200 ByteVarName2 db 10010011b ByteVarName3 db 10h ByteVarName4 db 'B' ByteVarName5 db -5 WordVarName dw 1234h DoubleWordVarName dd -5 העתיקו את המשתנים ל- DATASEG מהם הערכים בכתובות?ds:1 ds:2 ובידקו את תמונת הזיכרון.?ds:6? 10 ברק גונן

DATASEG: ByteVarName1 db 200 ; store the value 200 (C8h) ByteVarName2 db 10010011b ; store the bits 10010011 ; (93h) ByteVarName3 db 10h ; store the value 16 (10h) ByteVarName4 db 'B' ; store the ASCII code of ; the letter B (42h) ByteVarName5 db -5 ; store the value -5 (0FBh) WordVarName dw 1234h ; 34h in low address, 12h in ; high address DoubleWordVarName dd -5 ; store -5 as 32 bit format ; (0FFFFFFFBh) 11 ברק גונן

כאשר הגדרנו את המשתנה: WordVarName dw 1234h ראינו שהוא נשמר בזיכרון בצורה הקשר לביצים? "הפוכה". מדוע? ומה 12 ברק גונן

8 ביטים 8 ביטים עליונים תחתונים 1234 h שמירת מידע בזיכרון משתי שיטות: Endian -Big הבית ה- Order High נשמר בכתובת הנמוכה יותר בזיכרון High הבית ה- Order -Little Endian נשמר בכתובת הגבוהה יותר בזיכרון יכולה להיות באחת הכלל תקף לגבי כל משתנה או רגיסטר שגודלו יותר מבית אחד מעבד ה- 8086 פועל בשיטת Little Endian 13 ברק גונן

המקור לביטוי הוא מהספר "מסעות גוליבר" 14 ברק גונן

מוגדרים בזיכרון הנתונים DATASEG משתנה בגודל בית, שערכו ההתחלתי 1 משתנה בגודל מילה, שערכו ההתחלתי 1 משתנה בגודל בית, שערכו ההתחלתי 2- משתנה בגודל מילה, שערכו ההתחלתי 2- ארבעה משתנים: כיצד ייראה הזיכרון? כיתבו במחברת / מחשב את ההשערה שלכם כיתבו תוכנית מתאימה ובידקו האם צדקתם 15 ברק גונן

ByteVarName db 'HELLO' 16 ברק גונן

מערך: אוסף של איברים בגודל זהה מחרוזת: מקרה פרטי של מערך הגדרת מערך בזיכרון: )האיברים הם תווים( ArrayName SizeOfElement N dup (?) ערך התחלתי כמות גודל כל איבר שם המערך האיברים 17 ברק גונן

לכל איבר במערך יש אינדקס האיבר הראשון במערך הוא באינדקס 0 האיבר השני במערך הוא באינדקס 1 וכו' 18 ברק גונן

למערך יש כתובת התחלה כתובת תחילת המערך היא הכתובת של האיבר הראשון כתובת האיבר באינדקס N: ElementAddress = ArrayBaseAddress + N * ElementSize נתון מערך של מילים.words המערך מתחיל בכתובת.ds:000Eh מה הכתובת של האיבר באינדקס 2? 19 ברק גונן

ArrayOfTenFives db 10 dup (5) ArrayOf1234 db 8 dup (1,2,3,4) 20 ברק גונן

הגדירו ב DATASEGמערכים בגדלים שונים: 5 בתים ו 7,3 הגדירו מערך של 10 בתים שמאותחלים לערך '5'. הגדירו מערך של 10 מילים שמאותחלות לערך '5'. השוו את תמונת הזיכרון בשני המקרים! הגדירו מערך ששומר 20 פעמים את הרצף 4,5,6, כל משתנה בגודל בית. הגדירו מערך בגודל,word ובו 10 איברים, שמאותחלים לערך 5. מהו הערך בבית השלישי של המערך? 21 ברק גונן

צרו תוכנית, שמגדירה בתוך DATASEG מערך של בתים, שגודלו מספיק על מנת לשמור את השם שלכם. הגדרת המערך לא תכלול ערכים. מיד לאחר הגדרת המערך, הגדירו מחרוזת של בתים. הגדרת המחרוזת תכלול את מספר הטלפון שלכם. בתוך CODESEG כיתבו קוד שמעתיק לתוך המערך את השם שלכם, אות אחרי אות הדרכה לפעולת הכתיבה למערך תמצאו בספר הלימוד בעמודים -106 107 22 ברק גונן

23 ברק גונן

-(operands) מקור ויעד move קיצור של -mov הפקודה מקבלת שני אופרנדים mov destination, source יוצרת העתק של source בתוך destination איננה משנה את source 24 ברק גונן

mov ax, 22 ; decimal mov ax, 16h ; hexdecimal mov ax, 00010110b ; binary אפשר להעתיק לרגיסטר ערך בבסיסי ספירה שונים מספר דצימלי כשנוח לנו )לדוגמה כמות פעמים לחזרה על לולאה( מספר הקסדצימלי כשמעבירים כתובת בזיכרון מספר בינארי כשמבצעים פעולות על ביטים 25 ברק גונן

mov מקבל כאופרנד את כל הרגיסטרים הכלליים mov bx, 199 mov cx, 2321 mov dx, 10 mov אינו מקבל באותו אופן רגיסטרים אחרים mov mov cs, 100h ip, 10h 26 ברק גונן

העתקה מרגיסטר לרגיסטר mov ax, cx mov ax, dx mov ax, ax ; legal, still does not change anything mov ds, ax ; the correct method of changing ; segment registers 27 ברק גונן

mov register, register mov register, constant mov register, memory mov memory, register mov memory, constant דרכי רישום חוקיות: mov memory, memory דרך רישום לא חוקית: )חישבו- מדוע?( 28 ברק גונן

mov register, register mov ax, bx ; 16 bit registers mov cl, dh ; 8 bit registers mov si, bp ; The mov instruction works ; with ALL general purpose ; registers mov ax, bl ; what will happen? 29 ברק גונן

העתיקו את ax לתוך.bx העתיקו את bx לתוך.ax העתיקו את ah לתוך.ch העתיקו את al לתוך.dl 30 ברק גונן

mov register, constant mov cl, 10h mov ah, 10 ; Note the difference from last command! ; 10 decimal, not 10h (=16) mov ax, 555 mov ah, 300 האם הפקודה הבאה חוקית? 31 ברק גונן

העתיקו לתוך al את הערך 100 )דצימלי(, בשלוש שיטות ספירה: בייצוג העשרוני שלו, בייצוג הקסדצימלי ובייצוג הבינארי. הערה: ייצוג בינארי מסתיים באות b, לדוגמה 00001111b. הריצו את התוכנית ב- TDובידקו ש- al מקבל את הערכים הרצויים. 32 ברק גונן

mov memory, register mov [1], ax ; Direct addressing mov [Var], ax ; Another form of direct addressing, ; using a variable mov [bx], ax ; Indirect addressing mov [bx+1], ax ; Indexed addressing mov [1], ax mov bx, 1 mov [bx], ax הסבר על :Indirect Addressing הפקודה: שקולה לפקודות: 33 ברק גונן

מה עושה התוכנית הבאה? העתיקו, הריצו ועיקבו אחרי DATASEG IDEAL MODEL small Stack 100h DATASEG Var db 0 CODESEG start: mov ax,@data mov ds, ax mov al, 10h mov bx, 2 mov [Var], al mov [1], al mov [bx], al mov [bx+1], al quit: mov ax, 4C00h int 21h End start 34 ברק גונן

mov register, memory mov ax, [1] ; Direct addressing mov ax, [Var] ; Another form of direct addressing, ; using a variable mov ax, [bx] ; Indirect addressing mov ax, [bx+1] ; Indexed addressing 35 ברק גונן

mov [Var], al mov [1], al mov [bx], al mov [bx+1], al ; -----1----- mov al, 0 mov al, [var] ;-----2----- mov al, 0 mov al, [1] ;-----3----- mov al, 0 mov al, [bx] ;-----4----- mov al, 0 mov al, [bx+1] כהמשך לתרגיל הקודם, הוסיפו את שורות הקוד הבאות, הריצו ובידקו מהו הערך ש- al מקבל בסיום כל קטע 1,2,3,4 36 ברק גונן

mov memory, constant mov [1], 5 mov [bx], 5 למעשה צורת הכתיבה הנכונה היא mov [byte ptr 1], 5 mov [byte ptr bx], 5 mov [word ptr 1], 5 mov [word ptr bx], 5 בהמשך. או: הסבר- 37 ברק גונן

)למחסנית( )למחסנית( AX CX DX רגיסטרים ייעודיים רגיסטרי סגמנט BX SI DI BP SP mov [cx], ax mov [bx], ax 38 ברק גונן

mov mov ax, [bx] [bx], ax נשתמש ב- bx לשמירת הכתובת אם נרצה היסט קבוע, ניתן להוסיף קבוע ל- bx mov mov ax, [bx+2] [bx+2], ax mov mov mov mov di ax, [bx+si] ax, [bx+di] [bx+si], ax [bx+di], ax si אם נרצה היסט משתנה, אך לא את שניהם יחד- נוסיף ל- bx את לא חוקי או 39 ברק גונן

mov al, bx mov ds, 1234h mov [var1], [var2] mov [ax], cx mov [bx], 5 mov 5, ax גדלי המקור והיעד אינם זהים העתקת קבוע לתוך רגיסטר סגמנט העתקה מזיכרון לזיכרון גישה לזיכרון בעזרת רגיסטר לא מתאים העתקת מידע בגודל נתון לפרשנות נסיון להעתיק מידע לתוך קבוע 40 ברק גונן

12 שאלות על syntax )חוקי כתיבה ) 41 ברק גונן

1 mov ax, 0Bh 42 ברק גונן

2 mov 0Bh, ax 43 ברק גונן

3 mov [ax], 10h 44 ברק גונן

4 mov ax, [bx] 45 ברק גונן

5 mov [bx], [bx] 46 ברק גונן

6 mov cx, si 47 ברק גונן

7 mov cx, [si] 48 ברק גונן

8 mov [cx], si 49 ברק גונן

9 mov [bx+si], cx 50 ברק גונן

10 mov ax, [bx+dx] 51 ברק גונן

11 mov [bx+di+2], dx 52 ברק גונן

12 mov [bx+si+di], ax 53 ברק גונן

1. mov ax, 0Bh 2. mov 0Bh, ax 3. mov [ax], 10h 4. mov ax, [bx] 5. mov [bx], [bx] 6. mov cx, si 7. mov cx, [si] 8. mov [cx], si 9. mov [bx+si], cx 10. mov ax, [bx+dx] 11. mov [bx+di+2], dx 12. mov [bx+si+di], ax הריצו את הפקודות במחשב. צרו טבלה עם העמודות הבאות: הפקודה הודעת השגיאה )אם יש( הפקודה לאחר שינוי- בצעו שינוי כלשהו בפקודה, שיהפוך אותה לבעלת syntax חוקי 54 ברק גונן

שאלה: איך האסמבלר ממיר את האופרנדים הבאים )בגודל 16 ביט( לכתובות בזיכרון )בגודל 20 ביט(? mov mov mov [1], ax [Var], ax [bx], ax ds תשובה: האופרנדים מייצגים אופסט בלבד האסמבלר מניח שאנחנו מתייחסים לסגמנט כלומר [1] הוא למעשה [ds:1] 55 ברק גונן

mov mov ax, 0AABBh [1], ax 56 ברק גונן

mov ]es:1], ax 57 ברק גונן

DATASEG: Array db 0AAh, 0BBh, 0CCh, 0DDh, 0EEh, 0FFh :al העתקת האיבר באינדקס 2 לתוך mov al, [Array+2] האסמבלר יתרגם את Array+2 מכתובת יחסית לכתובת קבועה 58 ברק גונן

דרך נפוצה לטיפול במערכים היא להעתיק ל- bx כתובת תחילת המערך: את mov bx, offset Array :al העתקת האיבר באינדקס 2 לתוך mov al, [bx+2] 59 ברק גונן

LEA: Load Effective Address כמו פקודת offset התרגום הוא לאותו קוד מכונה 60 ברק גונן

מה הבעיה בקוד הבא? DATASEG Array db CODESEG mov 0AAh, 0BBh, 0CCh, 0DDh, 0EEh ax, [Array+2] 61 ברק גונן

DATASEG Array db CODESEG mov 0AAh, 0BBh, 0CCh, 0DDh, 0EEh ax, [word ptr Array+2] צריך להודיע לאסמבלר לבצע העתקה של שני בתים תרגול- נסו זאת! 62 ברק גונן

mov [bx], 5 מה הבעיה בפקודה הבאה? ניתן להשתמש בזיכרון בגדלים שונים כדי לשמור את הערך 5 באיזה גודל זיכרון להשתמש? צריך לתת הנחיה בעלת פרשנות אחת mov [byte ptr bx], 5 mov [word ptr bx], 5 תרגול- נסו את שתי השיטות והשוו את התוצאות 63 ברק גונן

ניצור תוכנית שהקוד שלה משתנה תוך כדי ריצה! נניח שאנחנו פונים למקום בזיכרון [1], לדוגמה: mov [1], al איך האסמבלר יודע לתרגם את [1] לכתובת מלאה בגודל 20 ביטים? למעשה הפקודה האחרונה זהה לפקודה הבאה: mov [ds:1], al 64 ברק גונן

מה יקרה אם נכתוב: mov [cs:1], al מה יקרה אם נכניס לסגמנט הקוד ערכים שמייצגים opcodes אמיתיים בשפת מכונה? 65 ברק גונן

נתון קטע קוד: גירמו לכך שבסיום ריצת הקוד ax=3 ולא 4. גירמו לכך שבסיום ריצת הקוד.ax=bx=3 מגבלות: אין להוסיף שורות בתוך קטע הקוד, רק לפניו ואחריו. מותר להשתמש רק בפקודות.mov אסורות קפיצות תוויות וכו'. בקידוד אסור לפנות ישירות ל- bx ax, או.ah, al, bh, bl...בהצלחה! 66 ברק גונן

למדנו להגדיר בזיכרון ה- DATA משתנים בגדלים שונים למדנו לאתחל אותם למדנו ליצור מחרוזות למדנו להגדיר מערכים למדנו כיצד לבצע העתקה מ/אל רגיסטרים התמקדנו בצורות חוקיות ולא חוקיות של גישה לזיכרון למדנו כיצד ניגשים לזיכרון שהוא חלק ממערך למדנו אודות big endian / little endian ומ/אל הזיכרון 67 ברק גונן