Presentation is loading. Please wait.

Presentation is loading. Please wait.

מבוסס על שקפים מאת יאן ציטרין

Similar presentations


Presentation on theme: "מבוסס על שקפים מאת יאן ציטרין"— Presentation transcript:

1 מבוסס על שקפים מאת יאן ציטרין
תרגול 4 שיטות מעון – המשך הוראות לאסמבלר מבוסס על שקפים מאת יאן ציטרין

2 Auto-Increment Indirect Auto-Decrement Indirect
שיטות מעון: סיכום Mode Name Syntax Register Rn 1 Register Indirect (Rn) 2 Auto-Increment (Rn)+ 3 Auto-Increment Indirect @(Rn)+ 4 Auto-Decrement -(Rn) 5 Auto-Decrement Indirect @-(Rn) 6 Indexed X(Rn) 7 Indexed Indirect @X(Rn) הערה: ניתן להשתמש © את"ם - תרגול מס' 4

3 Immediate Addressing Mode 2,7 #k סינטקס op #k, d 7768 10008 10028
אחרי שליפת הפקודה ומייד לפני פענוח ערך ה-PC קודם ב-2 1000 pc ... 7768 op (pc)+, d זהו ה-EA לכן האופרנד הנו k 10008 k (constant) 10028 משום שמשתמשים בשיטה 2 ה-PC מקודם פעם נוספת 10048 סינטקס בשיטה כזאת ניתן לשים את ערך האופרנד מייד אחרי הפקודה (מכאן השם של השיטה) op #k, d © את"ם - תרגול מס' 4

4 Immediate Addressing (example)
Source mode + reg 10008 177776 10028 mov #177776, r0 opcode Destination mode + reg בעזרת הטריק הזה ניתן להשתמש בערכים קבועים בשפת האסמבלי r0 © את"ם - תרגול מס' 4

5 Absolute Addressing Mode 3,7 @#A סינטקס op @#A, d 7768 10008 10028
אחרי שליפת הפקודה ומייד לפני פענוח ערך ה-PC קודם ב-2 1000 pc ... 7768 d 10008 זוהי הכתובת של ה-EA A היינה ה-EA A (address) 10028 משום שמשתמשים בשיטה 3 ה-PC מקודם פעם נוספת 10048 סינטקס בשיטה כזאת ניתן לשים את הכתובת האפקטיבית מייד אחרי הפקודה d © את"ם - תרגול מס' 4

6 Absolute Addressing (example)
Source mode + reg 10008 2000 10028 r0 opcode Destination בעזרת הטריק הזה ניתן להשתמש בכתובות אבסולוטיות בשפת האסמבלי (מכאן השם) r0 22 20008 © את"ם - תרגול מס' 4

7 Relative Addressing Mode 6,7 A סינטקס op A, d 7768 10008 10028 10048
אחרי שליפת הפקודה ומייד לפני פענוח ערך ה-PC קודם ב-2 1000 pc ... 7768 op X(pc), d 10008 זהו ה-offset ביחס לכתובת הרצויה A X=A- 1004 10028 10048 סינטקס בשיטה כזאת ניתן לשים את ה- offset עד לכתובת האפקטיבית מייד אחרי הפקודה A=X+(PC) op A, d © את"ם - תרגול מס' 4

8 Relative Addressing (example)
10008 1000 10028 mov 2004, r0 בעזרת הטריק הזה ניתן להשתמש בכתובות יחסיות בשפת האסמבלי (מכאן השם) r0 3000 20048 10048 pc יתרון של כתובות יחסיות: אם התוכנית כולה זזה בזיכרון לא צריך לשנות אותם (בניגוד לכתובות אבסולוטיות) זה יהיה ברור יותר כשנלמד "קישור וטעינה" 2004 = offset ה-PC החדש © את"ם - תרגול מס' 4

9 Relative Deferred Mode 7,7 @A סינטקס op @A, d 7768 10008 10028 10048
אחרי שליפת הפקודה ומייד לפני ביצועה ערך ה-PC קודם ב-2 1000 pc ... 7768 d 10008 זהו ה-offset ביחס לכתובת של הכתובת הרצויה A X=A- 1004 10028 10048 בשיטה כזאת ניתן לשים את ה- offset עד לכתובת של הכתובת האפקטיבית מייד אחרי הפקודה A=X+(PC) כאן A הנה הכתובת של כתובת האופרנד סינטקס d © את"ם - תרגול מס' 4

10 Relative Deferred (example)
10008 2000 10028 r0 r0 5000 30048 10048 pc 1000 3004 = offset ה-PC החדש 22 50008 © את"ם - תרגול מס' 4

11 שיטות מעון עם PC: סיכום Mode Name Syntax תוכן המילה השנייה 2,7 3,7 6,7
Immediate #220 האופרנד 3,7 Absolute @#220 הכתובת האפקטיבית 6,7 Relative 220 המרחק בין ה-EA לבין הכתובת של המילה הבאה לביצוע 7,7 Deferred @220 המרחק בין הכתובת של ה-EA לבין הכתובת של המילה הבאה ביצוע © את"ם - תרגול מס' 4

12 הערות מבחינת האסמבלר תווית ומספר הם שווי משמעות
האסמבלר מזהה פעולות אריתמטיות פשוטות # שקול ל #230 )לפעמים שימוש בסוגריים יוצר בעיות..) השיטותAbsolute & Relative מובילות לאותה EA ושתיהן מקובלות עלינו © את"ם - תרגול מס' 4

13 שיטות מעון: דוגמאות Address Value r1 222 pc 1000 220 440 444 77 666
נניח שלפני ביצוע כל פקודה בשקף הבא תוכן הזיכרון הנו: Address Value r1 222 pc 1000 220 440 444 77 666 555 © את"ם - תרגול מס' 4

14 שיטות מעון: דוגמאות (המשך)
שיטות מעון: דוגמאות (המשך) Mode OP Src Dst r1 r2 pc mov 1 (r1) 2 (r1)+ 3 @(r1)+ 4 -(r1) 5 @-(r1) 6 222(r1) 7 @222(r1) 222 222 1002 222 444 1002 224 444 1002 224 666 1002 220 440 1002 220 77 1002 222 666 1004 222 555 1004 © את"ם - תרגול מס' 4

15 שיטות מעון: דוגמאות ל- PC modes
OP Src Dst r2 pc 2,7 mov #100 3,7 @#220 6,7 220 7,7 @220 100 1004 440 1004 440 1004 77 1004 © את"ם - תרגול מס' 4

16 הוראות לאסמבלר .blkw n הקצאת n מילים בזיכרון (ללא אתחול) .blkw 4
לדוגמא, כדי להקצות 4 מילים : .word w1, w2,…, wn הקצאת n מילים בזיכרון (ואתחולן) .word 10, 20, 30, 40 לדוגמא, כדי להקצות מילים 10,20,30,40: .byte b1, b2,…, bn הקצאת n בתים בזיכרון .byte 1,2,3,4 לדוגמא, כדי להקצות בתים 1,2,3,4: © את"ם - תרגול מס' 4

17 הוראות לאסמבלר (המשך) 13 = 138 13. = 1310
ב- PDP-11 מספר ייחשב כאוקטלי כברירת המחדל. כדי שמספר ייחשב כעשרוני יש להוסיף אחריו נקודה. מספר אוקטאלי (ללא נקודה) המכיל ספרות 8 או 9 לא גורם לשגיאה, אך ערכו לא צפוי. 'A = 101 כדי לייצג ASCII של תו יש לכתוב לפניו גרש (') movb #'A, r0 למשל: .ascii<str> כדי להקצות מקום לבתים של המחרוזת str ולאתחל אותם בערכי ascii של תווי המחרוזת .ascii<ATAM> למשל, כדי להקצות מקום למחרוזת “ATAM” . = torg + A הקידוד של הפקודה הבאה ימצא בכתובת A . = torg .even הקידוד הבא ימצא בכתובת הזוגית הקרובה © את"ם - תרגול מס' 4

18 הוראות לאסמבלר (דוגמא)
כתובת שפת המכונה שפת האסמבלי . = torg 001000 000000 main: halt 001002 .blkw 6 . = torg 002000 .word 1, 2, 3 002006 .byte 1, 2, 3 002011 000 .even 002012 str: .ascii<abc> 002015 101 char: .byte 'A © את"ם - תרגול מס' 4

19 תוכנית – הדגמת שימוש בשיטות מעון
נדגים את שיטות המעון השונות בעזרת דוגמא הבאה: בין הכתובות מאורגן מערך המורכב מזוגות מילים: תוכן, כתובת, תוכן, כתובת, ... יש לכתוב תוכנית המעבירה כל תוכן נתון לתא בזיכרון שכתובתו מופיעה אחרי התוכן הנתון. © את"ם - תרגול מס' 4

20 למשל: 177777 10008 000650 10028 000234 10048 000200 10068 055555 10148 1234 10168 ... 10208 00008 2008 6508 1234 8 תוכן כתובת © את"ם - תרגול מס' 4

21 רגיסטר, רגיסטר עקיף . = torg + 500 main: mov #1000, r0
loop: mov (r0), r1 add #2, r0 mov (r0), r2 mov r1, (r2) cmp r0, #1020 bne loop halt . = torg arr: .word 1, 2000, 2, 2002, 3, 2004, 4, 2006 © את"ם - תרגול מס' 4

22 הגדלה אוטומטית ישירה . = torg + 500 main: mov #1000, r0
loop: mov (r0)+, r1 mov (r0)+, r2 mov r1, (r2) cmp r0, #1020 bne loop halt . = torg arr : .word 1, 2000, 2, 2002, 3, 2004, 4, 2006 © את"ם - תרגול מס' 4

23 הגדלה אוטומטית ישירה ועקיפה
. = torg + 500 main: mov #1000, r0 loop: mov cmp r0, #1020 bne loop halt . = torg arr : .word 1, 2000, 2, 2002, 3, 2004, 4, 2006 © את"ם - תרגול מס' 4

24 הקטנה אוטומטית . = torg + 500 main: mov #1020, r0 loop: mov -(r0), r1
cmp r0, #1000 bne loop halt . = torg arr : .word 1, 2000, 2, 2002, 3, 2004, 4, 2006 © את"ם - תרגול מס' 4

25 אינדקס ישיר . = torg + 500 main: mov #0, r0 loop: mov 1000(r0), r1
add #4, r0 cmp r0, #20 bne loop halt . = torg arr : .word 1, 2000, 2, 2002, 3, 2004, 4, 2006 © את"ם - תרגול מס' 4

26 אינדקס ישיר ועקיף . = torg + 500 main: mov #0, r0
loop: mov add #4, r0 cmp r0, #20 bne loop halt . = torg arr : .word 1, 2000, 2, 2002, 3, 2004, 4, 2006 © את"ם - תרגול מס' 4

27 תוכן 177777 10008 2008 000650 כתובת 10028 6508 000234 10048 000200 10068 1234 8 055555 10148 r0 1234 10168 r1 ... 10208 טבלת מעקב לתוכניות - שקף להדפסה והצגה על המטול. r2 r7(pc) © את"ם - תרגול מס' 4


Download ppt "מבוסס על שקפים מאת יאן ציטרין"

Similar presentations


Ads by Google