Professional Documents
Culture Documents
המחשב הראשו היה ענק ,בגודל של חדר ,והיישומי שלו היו יותר פשוטי ממה
שמחשב ב ימינו מסוגל לבצע .בסו שנות ה – 40גילו שלושה מדעני בארצות הברית את
המולי למחצה שהוא חומר שיכול להולי בתנאי מסוימי ולהיות מבודד בתנאי אחרי,
טרנזיסטור ,דיודה מעגל משולב ...כל הרכיבי האלקטרוני האלה בנויי מחומר זה .הדבר
היה פריצת דר למזעור המכשירי האלקטרוני.
מחשב ב ימינו הינו מחשב שמייש את תפיסת פו ניומ ,ולכ מחשב זה צרי להיות
מסוגל לבצע את הדברי הבאי :
לבצע את הפעולות המתמטיות והלוגיות שעוזרות לנו בפתרו משוואות או משימות 1
שונות ולבקר את הפעולות ) הסדר האוטומטי ( .לש כ ,אנו צריכי רכיב מסוי או מעגל
אלקטרוני שיעשה זאת ,וזה מה שנקרא המעבד ,או יחידת העיבוד המרכזית )יע"מ( או באנגלית
) Central Processing Unit (CPUאו בערבית
.היע"מ הינה המרכיב
החשוב ביותר במחשב ,היא משפיעה בצורה גדולה על מחיר המחשב ,מהירותו ,והביצועי שלו.
לקלוט נתוני כדי לעבד אות ולהיות מסוגל לפלוט את התוצאות .לש כ ,צריכי 2
מה שנקרא יחידות או התקני קלט/פלט .(Input/Output) , / ,התקני אלה
מקשרי את המחשב ע העול החיצוני.
התקני קלט ה התקני שאפשר להזי דרכ נתוני למחשב כדי שיוכל לעבד אות,
התקני מוכרי לנו ה ,מקלדת ,עכבר ,סורק ,מצלמה דיגיטאלית ,מיקרופו ,וכו'...
התקני פלט ה התקני שדרכ אפשר לקבל את התוצאות מהמחשב ,התקני כמו
מס ,רמקול ,מדפסת ,וכו' ...ה התקני פלט .
. Memory לזכור את הפעולות שברצוננו לבצע ,לש כ צריכי ג זיכרו 3
הזיכרו משמש אותנו ג לשמירת תוצאות הביניי והנתוני הזמניי.
אלו ה שלושת המרכיבי העיקריי של המחשב ,כדי שיוכלו לתפקד ביחד צרי להיות
ביניה קשר כדי להעביר אחד לשני את הנתוני .ולכ ,ה מחוברי ביניה דר שלושה
אפיקי או פסי ,שלכל אחד יש תפקיד מסוי.
________________________________________________________________________________________________________________________
www.zaher.co.il -1-
2 מיקרו מחשבים
פס – BUSהוא אוס של מוליכי חשמליי בעלי תפקיד משות ,במחשב יש שלושה
פסי המחברי בי מרכיביו השוני ,וה :
פס הנתוני - DATA BUSהוא אפיק דו כיווני שתפקידו להעביר את המידע בי א
מרכיביו של המחשב .לגודל של פס זה יש השפעה גדולה על ביצועי המעבד ,ככל שהרוחב שלו
יותר גדול ) מכיל מספר גדול של קווי ( ,ביצועי המעבד יהיו יותר טובי .הרוחב שלו יכול להיות
כפולה של 8ז"א , 64, 32, 16, 8וכו'...
פס הכתובות – ADDRESS BUSהוא אפיק חד כיווני שתפקידו להעביר את הכתובת ב
של היעד בי מרכיבי המחשב ,למשל א המעבד רוצה לשלוח תוצאות למס ,אז בפס זה הוא
מעביר את הכתובת של המס ,כ שהמידע לא יל לזיכרו או למדפסת .הרוחב של פס זה קובע
את כמות תאי הזיכרו המקסימאלית שאפשר לחבר למעבד ,לפי הקשר :
כאשר nהוא פרמטר המייצג את כמות הקווי בפס הכתובות .למשל א מספר
קווי הכתובת בפס הכתובות הוא 20אז אפשר לפנות ל 220תאי זיכרו.
פס הבקרה CONTROL BUSהוא אפיק דו כיווני שתפקידו להעביר את אותות ג
הבקרה בי מרכיבי המחשב ,למשל א המעבד רוצה לכתוב נתו מסוי בתו הזיכרו אז בפס זה
הוא מעביר אות לזיכרו שאומר לו כי המעבד רוצה לכתוב נתו ולא לקרוא ,או רכיב מסוי יכול
להעביר למעבד אות מסוי שיגיד למעבד א הוא סיי את העבודה שלו ,וכו' ...
________________________________________________________________________________________________________________________
www.zaher.co.il -2-
3 מיקרו מחשבים
או Read Write Memory - RWM Random Access Memory - RAM 1
הוא זיכרו לקריאה וכתיבה ,נקרא ג זיכרו ראשי ,זיכרו נדי ,או זיכרו לגישה
אקראית .משתמשי בו כדי לאחס נתוני זמניי שהתוכניות משתמשות בה בעת הפעלת
המחשב .חלק ממנו ג מנוצל ע"י מערכת ההפעלה ,בד"כ הוא מהיר אבל יקר יחסית לדיסק
הקשיח .Hard Disk
המידע נשמר בו בצורה חשמלית ולכ אחרי שמנתקי אותו מהחשמל התוכ שלו הול
לאיבוד .זהו חסרונו הגדול של זיכרו מסוג זה.
הוא זיכרו לקריאה בלבד ,ז"א אפשר לקרוא את התוכ שלו אבל לא לכתוב לתוכו או
לעדכ אותו ,התוכ שלו נקבע בעת הייצור ולא נית לשינוי .לזיכרו זה יש תכונה חשובה מאוד,
והיא שהמידע הנמצא בו נשמר ג כאשר מנתקי אותו מהחשמל ,לכ שימושו העיקרי הוא
לאחסו ה ,( Basic Input Output System ) BIOSשהיא אוס של קבצי שתפקיד לבצע
את פעולת האתחול של המחשב.
התקני זיכרו משני 3
ה התקני זיכרו שאפשר לאחס בה מידע ,וג אפשר לקרוא מה נתוני .יתרונ של
התקני אלה הוא בכ שהמידע נשמר בה בצורה מגנטית או אופטית ,לכ ג כאשר מנתקי
אות מהחשמל המידע נשאר .יתרו נוס הוא המחיר הזול יחסית לזיכרו ראשי .דיסק קשיח
) ,( HARD DISKדיסקט ,CD-ROM ,וכו' ...כל אלה ה התקני זיכרו משני.
.iסיבית או ביט bit ,היא יחידת האחסו הקטנה ביותר שיכולה לשמור מידע בצורת ''0
או ' .'1ז"א סיבית יכולה להיות באחד משני המצבי :אפס או אחד.
רמה ' ' 0מיוצגת בד"כ ע"י מתח .0 v
ורמה ' ' 1מיוצגת בד"כ ע"י מתח .5 v
.iiבית – Byteהיא יחידת אחסו המכילה 8סיביות ,יחידה זו היא הנפוצה ביותר .
1בית = 8סיביות .1Byte = 8 Bit's .
________________________________________________________________________________________________________________________
www.zaher.co.il -3-
4 מיקרו מחשבים
יחידות אלו
1 Kilo = 1KB = 210 = 1024 byte .v
________________________________________________________________________________________________________________________
www.zaher.co.il -4-
5 מיקרו מחשבים
עבודה נעימה
________________________________________________________________________________________________________________________
www.zaher.co.il -1-
6 מיקרו מחשבים
מעגלי פענוח
ההוראה והבקרה מצביע מחסנית ) ( SP
אוגרי נתוני
יחידה אריתמטית
לוגית מעגלי הפקת הכתובת
) ( ALU
________________________________________________________________________________________________________________________
www.zaher.co.il -1-
7 מיקרו מחשבים
אוגר זה מכיל את הקוד או הצירו" הבינארי שמייצג את הפעולה הנוכחית שהמעבד מבצע.
מעגלי אלו מנתחי את הצירו" של הפקודה שנמצא ב IRומפעילי דר! קווי בקרה את
חלקי המעבד המבצעי את הפעולה הדרושה.
כוללת מעגלי אלקטרוני האחראי על ביצוע הפעולות הלוגיות ) NOT, OR, AND
,(NAND, NOR , XOR, XNORוהחשבוניות ) חיבור ,חיסור ,כפל ,חילוק ( .ההוראה
הנוכחית שהמעבד מבצע היא הקובעת איזו פעולה צריכה ה ALUלבצע.
הוא אוגר מיוחד המכיל סיביות שלכל אחת מה תפקיד מסוי ,וה נקראות דגלי .דגלי
אלה מושפעי מתוצאת החישוב האחרונה שה ALUביצעה ,ומאפשרי למעבד לקבל החלטות
המסתמכות על תוצאות הפעולה האחרונה .למשל ,א התכנית שלנו צריכה לבצע פעולה Xא
התוצאה אפס או פעולה Yא התוצאה שונה מאפס ,במקרה זה המעבד בודק את דגל האפס
ולפי ערכו הוא מחליט איזה פעולה לבצע .נסביר לדוגמה 3דגלי מתו! אוגר זה :
דגל האפס ) $ ( Zero Flagמקבל ' '1א תוצאת החישוב שהייתה ב ALUהיא אפס, .i
אחרת הוא מקבל ' .' 0
דגל הסימ ) - (Sign flagמקבל ' ' 1כאשר תוצאת החישוב היא שלילית ,אחרת הוא .ii
מקבל ' . ' 0
דגל הנשא ) – ( Carry Flagמקבל ' ' 1כאשר בחישוב הפעולה האחרונה היה נשא או .iii
לווה ,אחרת מקבל ' . ' 0
ה קבוצה של אוגרי שנועדו לאחסו זמני של נתוני ,פעולות על נתוני הנמצאי בתו!
המעבד ,הרבה יותר מהירות מפעולות המבוצעות על נתוני הנמצאי בזיכרו.
________________________________________________________________________________________________________________________
www.zaher.co.il -2-
8 מיקרו מחשבים
ה מעגלי אלקטרוניי שתפקיד הוא לבצע את החישובי הנדרשי כדי להפיק לפס
הכתובות את הכתובת הנדרשת.
המחשב הראשו שיצא לשוק בצורה המוכרת לנו היה בתחילת שנות השמוני ,ע"י חברת
IBMולאחר מכ התחילה חברת INTELלייצר מחשבי תואמי .IBMהמעבד הראשו
שייצרה אינטל ושולב במחשב אישי היה ,8086ולאחר מכ שיפרה אותו ויצאה ע מספר
מעבדי מתקדמי יותר בסדרה שקראה לה . X86הסדרה כללה .486 ,386 ,286ובתו! הסדרה
הזו היו ג גרסאות שונות 386SX, 386DX, 486DX2, 486DX4 ,שה בעצ גרסאות שונות
של אותו מעבד .ההבדל היה במהירות או הכללת מעבד מתמטי או הכללת זיכרו מטמו CACH
.MEMORY
לאחר מכ יצאה אינטל ע סידרה אחרת של מעבדי ,פנטיו ,Iפנטיו ,IIפנטיו III
ופנטיו .4ובכל מעבד היו מספר גרסאות שעיקר ההבדל ביניה הייתה המהירות דוגמת
.PENTIUM II 350 MHZ , PENTIUM II 500 MHZ
עניי אחר הקשור למעבדי היה הזיכרו המטמו ,זיכרו זה מהיר מאוד ויקר מאוד דבר
שגור להתייקרות כל מעבד שכולל כמות גדולה מזיכרו זה ,מעבדי פנטיו של אינטל כללו
512KBולכ היו מעבדי יקרי מאוד .כדי שאינטל תוכל לעמוד בתחרות ע יצרניות
מעבדי אחרות כמו AMDאו CYREXהייתה חייבת להוריד את המחירי שלה ,ולכ יצאה
ע גרסה חדשה של מעבדי שנקראת סילירו CELERONשהוא מקביל לפנטיו IIשלה רק
ע כמות זיכרו מטמו .128KB
היו יש גרסאות יותר מתקדמות של מעבדי תוצרת חברת אינטל ,כמו מעבד ליבה
כפולה ,ומעבד ,CORE 2 DUOעל תכונות מעבדי אלו נדבר בהמש!.
________________________________________________________________________________________________________________________
www.zaher.co.il -3-
9 מיקרו מחשבים
עבודה נעימה
________________________________________________________________________________________________________________________
www.zaher.co.il -1-
10 מיקרו מחשבים
כאשר מציינים מעבד ,8086/88הכוונה היא לשני מעבדים תוצרת חברת אינטל העולמית,
הראשון הוא מעבד 8086והשני הוא מעבד .8088שני המעבדים זהים במבנה הפנימי שלהם,
מלבד ההבדל העקרוני ביניהם והוא שרוחב פס הנתונים שונה ,ולכן כאשר מציינים 8086/88
הכוונה היא שכל מה שנאמר או כל מה שנרצה לציין נכון לשני המעבדים ,אומנם כאשר
הדברים נכונים לגבי מעבד אחד ,נציין את המעבד עצמו.
רוחב פס הנתונים כאמור הוא ההבדל העקרוני בין שני המעבדים ,פס הנתונים של ה 8086
הוא ברוחב 16קווים ,דבר שמאפשר טיפול ב 16סיביות בכל פעולה שהמעבד מבצע ,ואילו פס
הנתונים של ה 8088הוא ברוחב 8קווים ,דבר שמאפשר לטפל ב 8סיביות בכל פעולה שהוא
מבצע.
כדי להתגבר על בעיה זו ,מחלקים את הזיכרון למקטעים ,שהגודל המקסימאלי של כל
אחד הוא ) ,64KBמאותה סיבה שהפנייה לזיכרון מתבצעת דרך אוגר ( ,דבר המאפשר פניה
למספר גדול יותר של תאי זיכרון ע"י חילוק הכתובת לשני חלקים ,שאותם נתאר בהמשך .
CPU CPU
8088 8086
20קווים פס כתובות 20קווים פס כתובות
________________________________________________________________________________________________________________________
www.zaher.co.il -1-
11 מיקרו מחשבים
היחידה השניה נקראת ,יחידת המשק לפס ) ( Bus Interface Unit - BIUאו יחידת
הבקרה ) ( Control Unit - CUשתפקידה לטפל בחיבור המעבד להתקנים ההיקפיים ולטפל
באותות הבקרה של המעבד בנוסף לחישוב הכתובת הלוגית והפיזית ,והבאת הוראות מהזיכרון
לתוך המעבד.
AH AL
CS
BH BL
DS
CH CL
SS
DH DL
ES
SI
IP
DI
BP
פס נתונים פנימי
פס נתונים
מעגלי הפקת
ALU הכתובת פס בקרה
והבקרה
פס כתובות
________________________________________________________________________________________________________________________
www.zaher.co.il -2-
12 מיקרו מחשבים
אוגר REGISTER
האוגר הוא מקום במעבד שבו אפשר לשמור נתון בינארי ,רוחב האוגר מגביל את המספר
הגדול ביותר שאפשר לשמור בתוכו .המספר הגדול ביותר שאפשר לשמור באוגר בן 8סיביות ,הוא
.( 11111111 )2 = (FF)16 = (255)10ואילו המספר הגדול ביותר שאפשר לשמור באוגר בן 16
סיביות. (1111111111111111)2 = (FFFF)16 = (65535)10 ,
D7 D6 D5 D4 D3 D2 D1 D0
אוגר בן 8סיביות
להבדיל מתא הזיכרון ,לאוגר יש שם .לעומת זאת לתא הזיכרון יש כתובת .הגישה לאוגר
יותר מהירה מהגישה לתא הזיכרון כי האוגר נמצא בתוך המעבד עצמו ,וזמן הגישה שלו הרבה
יותר קטן מזה של הזיכרון.
כל האוגרים במעבד הם בני 16סיביות והם מתחלקים לקבוצות לפי תפקידם :
היא קבוצה שכוללת 4אוגרים . AX, BX, CX, DXנקראת גם קבוצת האוגרים לשימוש
כללי .האוגרים משמשים לאחסון זמני של נתונים .קבוצה זו מיוחדת בכך שאפשר להשתמש בכל
הרוחב של כל אחד מהאוגרים כדי לאחסן נתון בן 16סיביות ) מלה שלמה ( .ואפשר להשתמש
בכל אוגר כאילו הוא מורכב משני אוגרים נפרדים בני 8סיביות ) בית בודד (.
High Low
D15 D8 D7 D0 מס' הסיביות :
במלים אחרות ,האוגר AXמורכב משני אוגרים ALו ,AH -כאשר ALמכיל את שמונה
AHמכיל את הסיביות הכי הסיביות הנמוכות או הפחות משמעותיות ב ,AXוהאוגר
משמעותיות ב .AXוכך גם שאר האוגרים בקבוצה זו.
________________________________________________________________________________________________________________________
www.zaher.co.il -3-
13 מיקרו מחשבים
אוגר SIהוא אוגר שבד"כ מכיל כתובת שמצביעה על תא זיכרון שממנו מביאים נתון.
אוגר DIהוא אוגר שבד"כ מכיל כתובת שמצביעה על תא זיכרון שאליו מעבירים נתון.
אוגר BPהוא אוגר שבד"כ מכיל כתובת שמצביעה על תאי זיכרון באזור המחסנית .
אוגר SPהוא אוגר המכיל את כתובת ראש המחסנית ,הכוונה היא לתא הזיכרון בקצה
המחסנית .
אוגר IPהוא אוגר שמכיל את כתובת תא הזיכרון המכיל את הפקודה הבאה לביצוע.
________________________________________________________________________________________________________________________
www.zaher.co.il -4-
14 מיקרו מחשבים
________________________________________________________________________________________________________________________
www.zaher.co.il -5-
15 מיקרו מחשבים
דגלים FLAGS
במעבד 8086/88קיים אוגר שנקרא אוגר דגלים ,שהוא אוגר שמכיל 16סיביות ,מתוכן 9
סיביות משמשות כדגלים .לשאר הסיביות אין משמעות .אוגר זה מיוחד בכך שאפשר לגשת
לכל סיבית בנפרד .כאשר כל סיבית יכולה לקבל את הערך ' '1או '. '0
X X X X OF DF IF TF SF ZF X AF X PF X CF
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
הסימן Xמציין כי הערך של הסיבית אינו משמעותי וכי הסיבית הזו באוגר אינה דגל.
הדגלים מתחלקים לשתי קבוצות :
הוא דגל שמקבל ' '1אם בתוצאת החישוב יש נשא בפעולת חיבור או לווה בפעולת חיסור
מהסיבית המשמעותית ביותר ,אחרת הוא מקבל '. '0
למשל :
CF=1 CF=0 CF=1
1 1 0 10 0 10 1 1 1 1 1 1 1
FE34 11001110 11001101
+ - +
D563 00101001 01011011
_______ ___________ ___________
D397 10100101 00101000
הוא דגל שמקבל ' '1אם 8הסיביות הפחות משמעותיות בתוצאה מכילות מספר זוגי של
' ,'1אחרת הוא מקבל '. '0
למשל אם תוצאת החישוב שהתקבלה היתה :
PF = 0 PF=0 PF=1
________________________________________________________________________________________________________________________
www.zaher.co.il -1-
16 מיקרו מחשבים
אם מתקבל נשא בפעולת חיבור מהסיבית הרביעית לסיבית הוא דגל שמקבל ''1
החמישית )בהקסה מהספרה הראשונה לשנייה( או לווה בפעולת חיסור מהסיבית החמישית
לסיבית הרביעית )בהקסה מהספרה השנייה לראשונה(,אחרת הוא מקבל '.'0
למשל :
AF=1 AF=0 AF=1
D 12 14 0 10 0 10 1 1 1 1 1 1 1
FE34 11001110 11001101
- - +
D567 00101001 01011011
_______ ___________ ___________
28CD 10100101 00101000
הוא דגל שמקבל את ערכה של הסיבית המשמעותית ביותר בתוצאה ,כידוע במשלים ל,2 -
מספר חיובי מסתיים בסיבית ' , '0ומספר שלילי מסתיים ב '. '1ולכן אם תוצאת החישוב היא
שלילית ,הדגל מקבל את הערך ' , '1אחרת הוא '). '0בהקסה אם הספרה השמאלית בין 0ל7 -
אז ,SF=0ואם היא בין 8ל F -אז .(SF=1
למשל :
SF=1 SF=1 SF = 0
1 1 0 10 0 10 1 1 1 1 1 1 1
FE34 11001110 11001101
+ - +
D563 00101001 01011011
_______ ___________ ___________
D397 10100101 00101000
________________________________________________________________________________________________________________________
www.zaher.co.il -2-
17 מיקרו מחשבים
הוא דגל שמקבל ' ,'1כאשר משתנה היעד אינו מספיק רחב כדי להכיל את תוצאת החישוב,
ז"א התוצאה שגויה מבחינת משלים ל .2 -אחרת הוא מקבל '. '0
כלל :אם הנשא שנכנס ל MSBשונה מהנשא היוצא מה , MSBאז , OF = 1אחרת .OF = 0
למשל :
OF=1 OF=1 OF=1
0 10 10 0 10 1 1 1 1 1 1
7E34 11001110 11001101
+ - +
11 63 01101001 10011011
_______ ___________ ___________
8F97 01100101 01101000
בדגמה הראשונה חיברנו שני מספרים שליליים וקיבלנו תוצאה חיובית ! .
בדגמה השנייה חיסרנו מספר חיובי ממספר שלילי וקיבלנו מספר חיובי ! .
בדגמה השלישית חיברנו שני מספרים חיוביים וקיבלנו מספר שלילי !.
ידוע גם בשם דגל צעד יחיד ,כאשר הוא נקבע ' ,'1מתבצעת פסיקת צעד-יחיד
) , ( BRAKEPOINTלאחר ביצוע ההוראה הבאה .פסיקה זו תאפס את הדגל . TF
כאשר הוא נקבע ' ,'1ה 8086/88 -יענה לכל בקשת פסיקה שתתקבל במבוא הפסיקה שלו
מכל התקן היקפי אחר .אחרת ה 8086/88לא נענה לבקשות פסיקה שיתקבלו אצלו .קובעים דגל
זה כ ' '0כאשר חשוב לנו כי התכנית תתבצע במהירות וללא הפסקה.
כאשר הוא נקבע ' ,'1בפעולות מחרוזת תתבצע הפחתה אוטומטית של אוגר האינדקס
המתאים .וכאשר הוא ' '0יתבצע קידום אוטומטי לאוגר האינדקס המתאים.
________________________________________________________________________________________________________________________
www.zaher.co.il -3-
18 מיקרו מחשבים
.3נתון כי לאחר ביצוע פעולת חיבור במעבד ,מצב הדגלים היה PF = 1, OF = 0 , ZF =0, :
SF = 1, CF = 0מהו המידע שנותן כל אחד מדגלים אלה לגבי התוצאה ,נמק.
.5בפעולת השוואה שהתבצעה במעבד בין האוגר ALלבין האוגר ) ,BLההשואה מתבצעת
ע"י הפחתת ערך האוגר BLמהאוגר ,( ALתאר את מצב הדגלים CFו , ZF -כדי לזהות
כל אחד משלושת המקרים:
BL = AL -iii BL < AL -ii BL > AL -i
עבודה נעימה !
________________________________________________________________________________________________________________________
www.zaher.co.il -1-
19 מבנה פקודה בשפת סף מיקרו מחשבים
הפקודות בשפת ס
מיוצגות בצורה הבאה :
Sourceאופרנד המקור ,מייצג את המקו בזיכרו ,או האוגר שממנו מביאי נתו,
האופרנד הזה יכול להיות ג הנתו עצמו שעליו מבצעי את הפקודה.
חלק מהפקודות עובד ע אופרנד אחד ,ואילו חלק מה עובד בלי אופרנד בכלל .את הפקודות
האלה נציי מאוחר יותר.
כעת ,נציי פקודה וננסה להבי בעזרתה את המבנה הזה:
MOV AX,501FH
בפקודה זו בחלק של קוד הפעולה ,רואי את הפקודה ,MOVזוהי פקודה בשפת אסמבלר
שמבצעת העברת נתוני.
בחלק של אופרנד היעד ,רואי ,AXשהוא אוגר ב 16סיביות במעבד ,משמעות הדבר
שאחרי ביצוע הפקודה ,הנתו יועבר לאוגר זה.
הפסיק ) ( ,הוא זה שמפריד בי שני האופרנדי.
בחלק של אופרנד המקור ,רואי ,501FHזהו הנתו שצריכי להעביר אותו .במקרה זה
רשמנו את הנתו עצמו באופרנד ולא את האוגר או כתובת תא הזיכרו שמכיל אותו.
כדי לציי הערות או תיעוד של פקודה מסוימת משתמשי באופרטור ) ; ( ,במקרה זה כל
מה שמופיע אחרי ה ; נחשב להערה.
למשל :
________________________________________________________________________________________________________________________
www.zaher.co.il -1-
20 פקודת MOV מיקרו מחשבים
פקודת MOVהיא פקודה בשפת אסמבלר שמעבירה נתוני לאוגרי המעבד או לתאי
הזיכרו או בי אוגרי המעבד ותאי הזיכרו.
תחביר הפקודה הוא :
מקור,יעד MOV
.1ביעד מותר שיהיה אוגר או כתובת זיכרו ואסור שיהיה מספר .
הפקודה MOV AL,20משמעותה העברת המספר 2010לאוגר ALז"א AL= 14H
הפקודה MOV 40,DLאינה חוקית מאחר ופירוש הפקודה חסר טע כי אי משמעות
להעברת תוכ האוגר DLלמספר .! 40
.2מקובל לייצג את תוכ האוגרי ותאי הזיכרו במחשב בשיטה הבינארית או
ההקסאדיצימאלית .א רושמי את הנתו בפקודה ולא מצייני את הבסיס בו הוא מיוצג אז
ברירת המחדל שהוא מיוצג בעשרוני ,א נרשו אחרי המספר Hאז המחשב מתייחס למספר
כאל מספר הקסאדיצימאלי ,וא נרשו אחרי המספר Bאז המחשב מתייחס למספר כאל מספר
בינארי.
.3כאשר מעבירי נתו לאוגר במעבד ,צרי& להיות התאמה בי גודל הנתו לבי גודל האוגר.
כלומר בפנייה לאוגר ב 8סיביות ,המספר המכסימלי שאפשר להעביר הוא,
25510 = FFH = 111111112
כי זהו המספר הגדול ביותר שאוגר ב 8סיביות יכול לאחס .
לעומת זאת ,בפנייה לאוגר ב 16סיביות ,המספר המכסימלי שאפשר להעביר הוא ,
6553510= FFFFH= 11111111111111112
למשל הפקודה MOV CL,500Hאינה חוקית כי המספר המצוי יותר גדול מהמספר
המותר להעביר לאוגר 8סיביות.
.4א הספרה השמאלית בנתו שצריכי להעביר היא אות אז צריכי להוסי +אפס משמאל
למספר.
.5אפשר להעביר לאוגר מסויי קוד ASCIIשל תו כלשהו ע"י הצבת התו המבוקש בי גרשיי.
.6כאשר מעבירי נתו לאוגר סגמנט ,אסור לרשו את הנתו בפקודה ,אלה שהנתו צרי&
להיות באוגר או בזיכרו.
הפקודה MOV DS,AXחוקית והיא מעבירה עותק של תוכ האוגר AXל .DS
.1בפנייה לזיכרו צריכי לציי את כתובת תא הזיכרו באחד מהאוגרי ,SI,DI,BXאו לרשו
את התווית ) ( LABELשמצביעה על התא א הנתו נמצא בסגמנט הנתוני ,או לציי את
הכתובת באוגר BPא הנתו נמצא בסגמנט המחסנית .האוגר שמכיל את הכתובת צרי& להיות
בי סוגריי מרובעי.
.2אסור להעביר נתו מתא זיכרו לתא זיכרו אחר ישירות ,כדי לבצע את הפעולה הזו צריכי
להשתמש באוגר עזר .
הפקודות הבאות
]MOV AL,[SI
MOV [DI],AL
מעבירות עותק מתוכ תא הזיכרו שכתובתו נמצאת באוגר SIלתא אחר שכתובתו
נמצאת באוגר , DIהשתמשנו כא באוגר עזר . AL
.3אסור להשתמש באותו אוגר כמצביע על תא זיכרו וכנתו באותה פקודה .
הפקודה ,MOV [BX],BHאינה חוקית מפני שהאוגר BHהוא חלק מהאוגר . BX
.4אסור להשתמש בשני אוגרי אינדקס או שני אוגרי בסיס כדי להצביע על כתובת בפקודה אחת.
.5דר& פקודת MOVאפשר ג להעביר את הכתובת הלוגית של משתנה מסוי לתו& אוגר ,ע"י
שימוש באופרטור .OFFSET
הפקודה , MOV AL,OFFSET SUMאינה חוקית מפני שכתובת לוגית היא בגודל של
16סיביות ,לכ האוגר צרי& להיות בגודל של 16סיביות .
אפשר ג לקבל את הכתובת הלוגית של משתנה מסוי ,ע"י שימוש בפקודת . LEA
הפקודה , LEA BL,SUMאינה חוקית מפני שכתובת לוגית היא בגודל של 16סיביות,
לכ האוגר צרי& להיות בגודל של 16סיביות .
________________________________________________________________________________________________________________________
www.zaher.co.il -4-
24 MOV דף עבודה בפקודת מיקרו מחשבים
וא
היא לא חוקית, א
הפקודה חוקית הסבר את משמעותה,השל
את הטבלה הבאה .1
: ציי את הסיבה
חוקית
סיבה/משמעות לא/
כ הפקודה 'מס
MOV AL,60 1
MOV AH,50H 2
MOV BX,AX 3
MOV CL,E3H 4
MOV DH,0D4H 5
MOV CH,0FB1H 6
MOV CH,DX 7
MOV AX,BL 8
MOV AH,AL 9
MOV DL,256 10
MOV DH,255 11
MOV SI,AX 12
MOV BX,DI 13
MOV DL,SI 14
MOV AX,70H 15
MOV BL,70H 16
MOV [CX],AL 17
MOV [BX],AL 18
MOV [BL],AL 19
MOV [DI],DX 20
MOV [DI],5FH 21
MOV[345D],AL 22
________________________________________________________________________________________________________________________
www.zaher.co.il -1-
25 MOV דף עבודה בפקודת מיקרו מחשבים
MOV [678C],90H 23
MOV [BX],[SI] 24
MOV DL,[SI] 25
MOV CX,[SI] 26
MOV AX,65432H 27
MOV [SI+3],DL 28
MOV [DI+15],AX 29
MOV DX,67FH 30
MOV [BX],BL 31
MOV [BX+SI],AL 32
MOV [SI+DX],CL 33
MOV [SI+DI],DL 34
MOV [DI-23H],CL 35
MOV AX,DI 36
MOV AL,TOTAL 37
MOV SUM,BX 38
AX BX CX DX
פקודות התכנית CH CL DH DL
AH AL BH BL
MOV AX,67FEH
MOV BL,AH
MOV BH,AL
MOV CX,BX
MOV DX,78H
MOV AL,DH
MOV AH,DL
MOV BX,678H
ערך סופי
________________________________________________________________________________________________________________________
www.zaher.co.il -2-
26 דף עבודה בפקודת MOV מיקרו מחשבים
.7כתוב קטע של תכנית אשר קורא נתו מתא זיכרו שכתובתו ,300Hומציב אותו באוגר
.BH
________________________________________________________________________________________________________________________
www.zaher.co.il -3-
27 דף עבודה בפקודת MOV מיקרו מחשבים
.9כתוב קטע של תכנית אשר מעתיק את הנתו שנמצא בכתובת 320Hלתא אחר בזיכרו
שנמצא בכתובת . 230H
.10כתוב קטע של תכנית אשר מחלי %את תוכ שני תאי הזיכרו שכתובת
. 400H , 410H
MOV SI,352H
]MOV AX,[SI
MOV BL,AH
MOV BH,59H
]MOV DH,[SI+3
MOV [SI-1],BH
MOV DI,356H
]MOV AL,[DI
MOV [DI],AH
עבודה נעימה
________________________________________________________________________________________________________________________
www.zaher.co.il -4-
שיטות מעון Addressing Modes
28 מיקרו מחשבים
שיטות מעון Addressing Modes
שיטת מעו היא הדר שבה מצוי אופרנד בהוראה .בזכות אוגרי הסגמנט ,מצייני את
הכתובת הלוגית של אופרנד זיכרו ,ולא את הכתובת הפיזית .בשיטות המעו ,מקובל להשתמש
במונח של כתובת אפקטיבית במקו כתובת לוגית.
MOV AH , SUM
הפקודה מעבירה את תוכ משתנה בגודל בית שנקרא SUMלאוגר .AH
________________________________________________________________________________________________________________________
www.zaher.co.il -1-
שיטות מעון Addressing Modes
29 מיקרו מחשבים
.5מעון אינדקס
בשיטת מעו זו משתמשי באחד מאוגרי האינדקס ,DI,SIועוד היסט כדי לציי את כתובת
תא הזיכרו.
דוגמאות לפקודות בשיטה זו:
]MOV DX , [SI+7
MOV [DI-50H] , AL
.6מעון בסיס
בשיטת מעו זו משתמשי באחד מאוגרי הבסיס ,BP,BXועוד היסט כדי לציי את כתובת
תא הזיכרו .
דוגמאות לפקודות בשיטה זו:
]MOV CL , [BX+7
MOV [BP-50H] , BH
________________________________________________________________________________________________________________________
www.zaher.co.il -2-
שיטות מעון Addressing Modes
30 מיקרו מחשבים
________________________________________________________________________________________________________________________
www.zaher.co.il -3-
דף עבודה בשיטות מיעון
31 מיקרו מחשבים
דף עבודה בשיטות מיעון
.1כתוב פקודה אחת לפחות בכל אחת משיטות המיעו.
.2מהי שיטת המיעו שבה מיוצגת כל אחת מהפקודות הבאות.
שיטת המיעו הפקודה מס'
עבודה נעימה
________________________________________________________________________________________________________________________
www.zaher.co.il -1-
פקודות חשבוניות
32 מיקרו מחשבים
פקודות חשבוניות
.1פקודת .Increment – INC
היא פקודה שמגדילה את ערכו של אופרנד היעד המצוי בפקודה באחד בלבד.
תחביר הפקודה :
יעד INC
• דגלי מושפעי מהפקודה .AF,OF,PF,SF,ZF :
• הדגל CFאינו מושפע מהפקודה.
משמעותה של הפקודה ,היא הוספת 1בלבד לערכו של היעד ,התוצאה נשמרת ביעד.
דוגמאות :
INC AL
{ AL AL + הפקודה מוסיפה 1לערכו של האוגר 1 } .AL
היא פקודה שמקטינה את ערכו של אופרנד היעד המצוי בפקודה באחד בלבד.
תחביר הפקודה :
יעד DEC
• דגלי מושפעי מהפקודה .AF,OF,PF,SF,ZF :
• הדגל CFאינו מושפע מהפקודה.
משמעותה של הפקודה ,היא הפחתת 1בלבד מערכו של היעד ,התוצאה נשמרת ביעד.
דוגמאות :
DEC BL
{ BL BL - הפקודה מפחיתה 1מערכו של האוגר 1 } . BL
________________________________________________________________________________________________________________________
www.zaher.co.il -1-
פקודות חשבוניות
33 מיקרו מחשבים
היא פקודה שמבצעת פעולת חיבור חשבוני בי שני ערכי ,התוצאה נשמרת ביעד.
תחביר הפקודה :
מקור ,יעד ADD
• דגלי מושפעי מהפקודה .AF,OF,PF,SF,ZF,CF :
משמעותה של הפקודה ,היא הוספת ער המקור ליעד ,התוצאה נשמרת ביעד.
דוגמאות :
ADD AL , BH
הפקודה מוסיפה את ער האוגר BHלער שנמצא באוגר ,ALהתוצאה נשמרת באוגר .AL
{ AL } AL + BH
היא פקודה שמבצעת פעולת חיבור חשבוני בי היעד למקור ,ומוסיפה את ער CF
שהתקבל מהפקודה הקודמת .התוצאה נשמרת ביעד.
תחביר הפקודה :
מקור ,יעד ADC
דגלי מושפעי מהפקודה .AF,OF,PF,SF,ZF,CF :
________________________________________________________________________________________________________________________
www.zaher.co.il -2-
פקודות חשבוניות
34 מיקרו מחשבים
משמעותה של הפקודה ,היא הוספת ער המקור ועוד ער דגל הנשא ליעד ,התוצאה
יעד { נשמרת ביעד } .יעד +מקור CF +
הפקודה שימושית כאשר פעולת החיבור מתבצעת בשלבי ויש המשכיות.
דוגמה :
כתוב קטע תכנית המחבר את המספרי .B = 675D23H , A = 3EF45H
רואי כי המספרי יותר גדולי ממילה ולכ אי אפשר להכיל את התוצאה בתו אוגר אחד
ב 16סיביות .ולכ מכניסי את המספר Aלשני אוגרי ) ,( BX,AXואת המספר Bלשני אוגרי
) ,( DX,CXואז התוצאה תהיה בשני האוגרי ).( BX,AX
MOV AX,0EF45H 1 1
MOV BX,3H 0003 EF45
MOV CX,5D23H +
MOV DX,67H 0067 5D23
ADD AX,CX
ADC BX,DX 006B 4C68
היא פקודה שמבצעת פעולת חיסור חשבוני בי שני ערכי ,התוצאה נשמרת ביעד.
תחביר הפקודה :
מקור ,יעד SUB
דגלי מושפעי מהפקודה .AF,OF,PF,SF,ZF,CF :
משמעותה של הפקודה ,היא החסרת ער המקור מהיעד ,התוצאה נשמרת ביעד .כלומר,
יעד
−
מקור
יעד תוצאה
דוגמאות :
SUB AL , BH
הפקודה מחסרת את תוכ האוגר BHמהער שנמצא באוגר ,ALהתוצאה נשמרת באוגר .AL
{ AL } AL - BH
SUB CX , DX
הפקודה מחסרת את תוכ האוגר DXמערכו של CXושומרת את התוצאה באוגר .CX
{ CX } CX - DX
SUB BH , 50
הפקודה מחסירה 50 ) 32Hעשרוני (מערכו של תוכ האוגר .BH
________________________________________________________________________________________________________________________
www.zaher.co.il -3-
פקודות חשבוניות
35 מיקרו מחשבים
היא פקודה שמבצעת התאמה לתוצאת חיבור עשרוני ,ז"א חיבור שני מספרי המיוצגי
בקוד ,BCDכ שתוצאת החיבור תהיה נכונה מבחינת קוד .BCDההוראה פועלת רק על
האוגר ,ALהיא מוסיפה 6לתוכנו של האוגר א ערכ של 4הסיביות הפחות משמעותיות
) ( LSBשל ALגדול מ – ,9או א הועבר נשא מהסיבית הרביעית לסיבית החמישית בפעולת
החיבור ז"א א ). (AF = 1
הערה
כדי שפקודת DAAתפעל בצורה תקינה ,המספרי שצריכי לסכ אות צריכי להיות
מיוצגי בקוד .BCD
________________________________________________________________________________________________________________________
www.zaher.co.il -4-
36 מיקרו מחשבים
.מה יהיה ערכ של אופרנד היעד ושל הדגלי המבוקשי בכל פקודה .1
________________________________________________________________________________________________________________________
www.zaher.co.il -1-
37 מיקרו מחשבים
320H לתאי הזיכרו שכתובת8FH כתוב קטע של תכנית אשר מוסי את המספר .3
.321H, 399H, 400H
,BH מהאוגר300H כתוב קטע של תכנית אשר מפחית את הנתו שבתא זיכרו בכתובת .4
.BH התוצאה תהיה ב
________________________________________________________________________________________________________________________
www.zaher.co.il -2-
38 מיקרו מחשבים
.5כתוב קטע של תכנית אשר מחבר את הנתו שנמצא בכתובת ,320Hע תוכ התא
שכתובתו ,230Hומציב את התוצאה בכתובת .324H
.6כתוב קטע של תכנית אשר מחבר את הנתוני המיוצגי בקוד BCDשנמצאי בכתובות
432H, 431H, 430Hומציב את התוצאה בכתובת . 433H
MOV SI,352H
]MOV AX,[SI
MOV BL,70H
]ADD BL,[SI
]ADD AH,[SI+3
SUB [SI-1],AH
MOV DI,354H
]SUB AX,[DI
MOV [DI],AH
עבודה נעימה
________________________________________________________________________________________________________________________
www.zaher.co.il -3-
פקודות השוואה וקפיצה
39 מיקרו מחשבים
דוגמאות:
נסתכל על הדגל ZFא הער שלו ,1אז המקור והיעד שווי.
נסתכל על הדגל ZFא הער שלו ,0אז המקור והיעד שוני ,ואז נתייחס לדגל .CFא
,CF = 0אז לא היה צור בלווה ,כלומר היעד מספיק גדול כדי להחסיר את המקור ,לכ היעד
גדול מהמקור.
1 10
0 15
MOV AL,15H 15 CF=1 PF=0
CMP AL,17H 17 - ZF=0 AF=1
FE SF=1 OF=0
נסתכל על הדגל ZFא הער שלו ,0אז המקור והיעד שוני ,ואז נתייחס לדגל .CFא
,CF = 1אז היה צור בלווה ,כלומר היעד לא מספיק גדול כדי להחסיר את המקור ,לכ היעד
קט מהמקור.
________________________________________________________________________________________________________________________
www.zaher.co.il -1-
פקודות השוואה וקפיצה
40 מיקרו מחשבים
הפקודה מבצעת קפיצה למקו בתכנית המסומ ע"י ,Labelומש ממשיכה את ביצוע
התכנית.
דגלי מושפעי :אי.
למשל :
MOV AL,3
JMP again
ADD AL,AL
again : INT 3
שים לב :בביצוע הקטע הזה התכנית מדלגת על הפקודה .ADD AL,AL
אזהרה
שימוש לא נכו בפקודה יכול לגרו ללולאה אינסופית שתוקעת את המחשב .למשל ,במקרה
הבא כל פע שהתכנית מגיעה לפקודה JMPהיא קופצת שוב למקו המסומ ע"י ,Badדבר
שגור לתכנית לבצע לולאה בלי הפסקה ,ז"א המחשב נתקע.
MOV AL,5
Bad : MOV AH,7
ADD AL,AH
JMP Bad
MOV AH,4DH
למצב זה אין סוף ,ולכן הלולאה תוקעת את המחשב.
אסור שהתווית תכלול רווח ,ז"א התווית GOOD BYEלא נכונה ,אפשר להשתמש (3
במק %תחתו.GOOD_BYE ,
נית להשתמש בכל אות אנגלית גדולה וקטנה בספרות ובתווי מיוחדי ,כמו &,),@, (4
נקודה ).(.
דוגמה:
כתוב תכנית שתוסי 5 %לאוגר , AHא ערכו של ALשונה מ) .3
CMP AL ,3
JZ SOF
ADD AH,5
SOF : INT 3
א ערכו של ALהוא 3אז תוצאת ההשוואה תהיה אפס ,ולכ ZFיהיה ,1ז"א תנאי
הקפיצה מתקיי ,ולכ התכנית מדלגת על הפקודה .Add
________________________________________________________________________________________________________________________
www.zaher.co.il -3-
פקודות השוואה וקפיצה
42 מיקרו מחשבים
דוגמה:
כתוב תכנית שתוסי 7 %לאוגר ,AHא ערכו של ALשווה ל – .9
CMP AL,9
JNZ NO
ADD AH,7
NO : INT 3
א ערכו של ALהוא 9אז תוצאת החיסור תהיה אפס ,ולכ ZFיהיה ,1ז"א תנאי
הקפיצה לא מתקיי ,ולכ התכנית לא מבצעת קפיצה ,אלא ממשיכה ומבצעת את פעולת
החיבור .אחרת א התוצאה שונה מאפס ,אז ZF = 0ז"א תנאי הקפיצה מתקיי והתכנית
מדלגת על פעולת החיבור.
תחביר הפקודה:
LOOP Label
דגלי מושפעי :אי
פקודות LOOPו) , JNZה פקודות שמשתמשי בה בד"כ במוני או בלולאות ,ז"א
א רוצי לבצע פעולה מסוימת מס' פעמי .קובעי באוגר מסוי ) בד"כ זה ,CXכי
פקודת LOOPלא עובדת ע אוגר אחר ( את מס' הפעמי ,שרוצי לבצע את הפעולה .כל
פע שמבצעי פעולה ,מפחיתי מערכו של המונה 1ובודקי א הוא הגיע לאפס .א כ,
אז סיימנו לבצע את הפעולה ,אחרת התכנית תמשי לבצע את הפעולה שוב ושוב עד
שהמונה יגיע לאפס .שיטה זו נקראת שיטת מונה מטה ,ז"א שהמונה מתחיל מער מסוי
ויורד עד שהוא מגיע לאפס.
________________________________________________________________________________________________________________________
www.zaher.co.il -4-
פקודות השוואה וקפיצה
43 מיקרו מחשבים
דוגמה:
כתוב תכנית המאפסת בלוק זיכרו בגודל 5תאי שמתחיל בכתובת .500H
או
MOV CX,5 MOV CX,5
MOV DI,500H MOV DI,500H
MOV AL,0 MOV AL,0
AGAIN : MOV [DI],AL AGAIN : MOV [DI],AL
INC DI INC DI
DEC CX LOOP AGAIN
JNZ AGAIN
בשתי התכניות השתמשנו באוגר CXכמונה ,האוגר DIשמש אותנו כמצביע על תאי
הזיכרו ) כתובת ( ,אחרי שהצבנו ( AL ) 0בתא הראשו ,קידמנו את האוגר DIבאחד ז"א הגענו
לכתובת הבאה ,הפחתנו את המונה ) ( CXבאחד ,ובדקנו א הוא עדיי לא הגיע לאפס סימ
שעוד לא סיימנו לבצע את כל הפעולות ,אז התכנית מבצעת קפיצה וחוזרת ומאפסת את התא
הבא .התהלי נמש עד שהמונה מגיע לאפס ואז מסיימי את איפוס הבלוק.
יש אפשרות שנממש מונה מעלה ,ז"א שהמונה מתחיל לספור מאפס ועד למספר מסוי,
אבל אז נצטר לבצע פקודה נוספת מספר פעמי השווה למספר הפעולות שרוצי לבצע
)ז"א שווה למונה( ,הביצוע של הפקודה הנוספת מיותר ,וגור להאטת הביצוע של התכנית
) מספר רב יותר של פקודות ( .ולכ בד"כ לא משתמשי במונה מעלה אלא במונה מטה.
בדוגמה הבאה נבצע אותה משימה שביצענו קוד ) איפוס בלוק זיכרו ( ,רק שהפע נשתמש
או בשיטת מונה מעלה.
MOV CX,0 MOV DI,500H
MOV DI,500H MOV AL,0
MOV AL,0 AGAIN : MOV [DI],AL
AGAIN : MOV [DI],AL INC DI
INC DI CMP DI,505H
INC CX JNZ AGAIN
CMP CX,5
JNZ AGAIN
________________________________________________________________________________________________________________________
www.zaher.co.il -5-
פקודות השוואה וקפיצה
44 מיקרו מחשבים
דוגמה:
כתוב תכנית שתאפס את האוגר , AHא תוכ שני האוגרי ALו) BLשונה.
CMP AL,BL
JE SOF
MOV AH,0
SOF : INT 3
א תוכ שני האוגרי שווה אז תוצאת ההשוואה תהיה אפס ,ולכ ZFיהיה ,1ז"א תנאי
הקפיצה מתקיי ) במקרה זה לא צריכי לבצע את פעולת האיפוס ( ,ולכ התכנית מדלגת על
הפקודה ,MOVוא התוכ שונה ,אז תוצאת ההשוואה תהיה שונה מאפס ,ולכ ,ZF = 0ז"א
תנאי הקפיצה לא יתקיי ולכ פעולת האיפוס מתבצעת.
________________________________________________________________________________________________________________________
www.zaher.co.il -6-
פקודות השוואה וקפיצה
45 מיקרו מחשבים
דוגמה:
כתוב תכנית שתאפס את האוגר ,AHא תוכ שני האוגרי ALו) BLשווה.
CMP AL,BL
JNE SOF
MOV AH,0
SOF : INT 3
א התוכ שונה ,אז תוצאת ההשוואה תהיה שונה מאפס ,ולכ ,ZF = 0ז"א תנאי
הקפיצה מתקיי ולכ הקפיצה מתבצעת ופעולת האיפוס לא מתבצעת .וא תוכ שני האוגרי
שווה אז תוצאת ההשוואה תהיה אפס ,ולכ ZFיהיה ,1ז"א תנאי הקפיצה לא מתקיי )
במקרה זה צריכי לבצע את פעולת האיפוס ( ,ולכ התכנית מבצעת את הפקודה .MOV
דוגמה:
כתוב תכנית שתכפיל את תוכ האוגר ,AHא ער האוגר BLגדול או שווה ל) ) .90Hאינו
קט מ) .(90H
CMP BL,90H
JC OK
ADD AH,AH
OK : INT 3
א ער האוגר BLקט מ) ,90Hאז חייב להיות לווה כדי להשלי את פעולת החיסור,
כלומר בפעולת ההשוואה מתקבל ,CF = 1ולכ תנאי הקפיצה מתקיי ,הקפיצה מתבצעת
ומדלגי על פקודת ,ADDאחרת ) א ער BLגדול או שווה( אי צור בלווה ,לכ בפעולת
ההשוואה מתקבל ,CF = 0ואז תנאי הקפיצה לא מתקיי ,הקפיצה לא מתבצעת ולכ מבצעי
את פקודת ,ADDכלומר מכפילי את ער האוגר .AH
________________________________________________________________________________________________________________________
www.zaher.co.il -7-
פקודות השוואה וקפיצה
46 מיקרו מחשבים
דוגמה:
כתוב תכנית שתאפס את תוכ האוגר ,BHא ער האוגר DLקט מ) .50H
CMP DL,50H
JNC ABD
SUB BH,BH
ABD : INT 3
א ער האוגר DLקט מ) ,50Hאז חייב להיות לווה כדי להשלי את פעולת החיסור,
כלומר בפעולת ההשוואה מתקבל ,CF = 1ולכ תנאי הקפיצה לא מתקיי ,הקפיצה לא מתבצעת
ופקודת SUBמתבצעת ,כלומר מאפסי את האוגר ,BHאחרת ) א ער DLגדול או שווה( אי
צור בלווה ,לכ בפעולת ההשוואה מתקבל ,CF = 0ואז תנאי הקפיצה מתקיי ,הקפיצה
מתבצעת ולכ מדלגי על פקודת ,SUBכלומר התכנית מסתיימת ולא מתבצע איפוס לאוגר .BH
דוגמה:
כתוב תכנית שתכפיל את תוכ האוגר ,AHא ער האוגר BLקט או שווה ל) ) .90Hאינו
גדול מ) .(90H
CMP BL,90H
JA OK
ADD AH,AH
OK : INT 3
________________________________________________________________________________________________________________________
www.zaher.co.il -8-
פקודות השוואה וקפיצה
47 מיקרו מחשבים
א ער האוגר BLגדול מ) ,90Hאז אי לווה ,כלומר בפעולת ההשוואה מתקבל ,CF = 0
ומאחר והיעד והמקור לא שווי ,אז מתקבל ג ,ZF = 0לכ תנאי הקפיצה מתקיי ,הקפיצה
מתבצעת ומדלגי על פקודת ,ADDאחרת ) א ער BLקט אז יש צור בלווה ,לכ בפעולת
ההשוואה מתקבל ,CF = 1וא ער BLשווה מתקבל (ZF = 1ואז תנאי הקפיצה לא מתקיי,
הקפיצה לא מתבצעת ולכ מבצעי את פקודת ,ADDכלומר מכפילי את ער האוגר .AH
דוגמה:
כתוב תכנית שתאפס את תוכ האוגר ,BHא ער האוגר DLגדול או שווה ל) ) .50Hאינו
קט מ) .(50H
CMP DL,50H
JNAE ABD
SUB BH,BH
ABD : INT 3
א ער האוגר DLקט מ) ,50Hאז חייב להיות לווה כדי להשלי את פעולת החיסור,
כלומר בפעולת ההשוואה מתקבל ,CF = 1ולכ תנאי הקפיצה מתקיי ,הקפיצה מתבצעת
ופקודת SUBלא מתבצעת ,כלומר לא מאפסי את האוגר ,BHאחרת ) א ער DLגדול או
שווה( אי צור בלווה ,לכ בפעולת ההשוואה מתקבל ,CF = 0ואז תנאי הקפיצה לא מתקיי,
הקפיצה לא מתבצעת ולכ מבצעי את פקודת ,SUBכלומר התכנית מבצעת איפוס לאוגר .BH
________________________________________________________________________________________________________________________
www.zaher.co.il -9-
פקודות השוואה וקפיצה
48 מיקרו מחשבים
________________________________________________________________________________________________________________________
www.zaher.co.il - 10 -
49 דף עבודה בפקודות קפיצה מיקרו מחשבים
א הנתו שנמצא בתא זיכרוBH כתוב קטע של תכנית אשר מאפס את תוכ האוגר.2
. אחרת התכנית תסתיי,45H שווה ל340H שכתובתו
" שונה מBL א ערכו של, DL באוגרFFH כתוב קטע של תכנית אשר מציב את המספר.4
.0 את המספרDL אחרת התכנית תציב באוגר,58H
.400H שמתחיל בכתובת, תאי5 כתוב תת"שגרה אשר מאפסת בלוק זיכרו בגודל.5
בתי שנמצא החל מהכתובת15H כתוב תת"שגרה אשר מעבירה בלוק נתוני בגודל.6
.330H למקו אחר בזיכרו החל מהכתובת,300H
________________________________________________________________________________________________________________________
www.zaher.co.il -1-
50 דף עבודה בפקודות קפיצה מיקרו מחשבים
.7כתוב תת"שגרה אשר מחליפה בלוק נתוני בגודל 10Hבתי שנמצא החל מהכתובת
,200Hע בלוק אחר בזיכרו שמתחיל מהכתובת .330H
.8כתוב תת"שגרה אשר סופרת את מס' תאי הזיכרו בלוק נתוני בגודל 20Hתאי שמתחיל
בכתובת ,1000Hאשר מכילי ערכי קטני מ" ,5AHומציבה את התוצאה בתא זיכרו
בכתובת .1020H
________________________________________________________________________________________________________________________
www.zaher.co.il -2-
51 דף עבודה בפקודות קפיצה מיקרו מחשבים
.13נתו כי תאי הזיכרו בכתובות 2000Hעד 2009Hמכילי נתוני בקוד . BCDבכל תא
נתו מספר דו"ספרתי .כתוב תת " שיגרה המסכמת את ערכי התאי שלעיל בסיכו
עשרוני ומציבה את התוצאה בתא . 2010Hידוע כי התוצאה אינה עולה על . 99
________________________________________________________________________________________________________________________
www.zaher.co.il -3-
52 דף עבודה בפקודות קפיצה מיקרו מחשבים
________________________________________________________________________________________________________________________
www.zaher.co.il -4-
53 דף עבודה בפקודות קפיצה מיקרו מחשבים
________________________________________________________________________________________________________________________
www.zaher.co.il -5-
54 דף עבודה בפקודות קפיצה מיקרו מחשבים
עבודה נעימה
________________________________________________________________________________________________________________________
www.zaher.co.il -6-
55 פקודות סיבוב מיקרו מחשבים
פקודות סיבוב
.1פקודת Rotate Right – ROR
היא פקודה שמסובבת ימינה את כל הסיביות של היעד ,פע אחת או מספר פעמי
הנמצא באוגר ) .CLכאשר מספר ההזזות גדול מ 1משתמשי באוגר CLבלבד להגדרת מספר
ההזזות(.
, 1יעד ROR
או תחביר הפקודה הוא :
, CLיעד ROR
הערה 1
אפשר לראות שכאשר מספר ההזזות גדול מאחד ,קשה לפרט את כל ההזזות אחת
אחרי השנייה כדי להגיע לתוצאה הסופית ) ,כמו בדוגמה .(2לכ יש שיטה יותר פשוטה שבה
מתקבלת התוצאה מיד בפעולה אחת .א הסיבוב בכיוו ימי ,אז מתחילי לספור סיביות מצד
ימי השווה למספר ההזזות ,מעתיקי אות באותו סדר לצד שמאל של המספר ,וכ $מתקבל
המספר החדש .ערכו של הדגל CFיהיה שווה לערכה של הסיבית השמאלית ביותר מבי הסיביות
שהוצאנו מימי .
למשל א נתייחס לדוגמה ,2אז נוכל להגיע לאותה תוצאה בשיטה הפשוטה :
MOV CL , 03H
MOV AH , 53H 0 1 0 1 0 0 1 1 AHלפני
ROR AH , CL CF
0 1 1 0 1 0 1 0 AHאחרי 0
________________________________________________________________________________________________________________________
www.zaher.co.il -2-
57 פקודות סיבוב מיקרו מחשבים
הערה 2
אפשר לראות שכאשר מספר ההזזות גדול מאחד ,קשה לפרט את כל ההזזות אחת
אחרי השנייה כדי להגיע לתוצאה הסופית ) ,כמו בדוגמה .(4לכ יש שיטה יותר פשוטה שבה א
הסיבוב בכיוו שמאל ,אז מתחילי לספור סיביות מצד שמאל השווה למספר ההזזות ,מעתיקי
אות באותו סדר לצד ימי של המספר ,וכ $מתקבל המספר החדש .ערכו של הדגל CFיהיה שווה
לערכה של הסיבית הימנית ביותר מבי הסיביות שהוצאנו משמאל.
למשל א נתייחס לדוגמה ,4אז נוכל להגיע לאותה תוצאה בשיטה הפשוטה :
MOV CL , 03H
MOV AH , 53H
ROL AH , CL AHלפני 0 1 0 1 0 0 1 1
CF
0 AHאחרי 1 0 0 1 1 0 1 0
________________________________________________________________________________________________________________________
www.zaher.co.il -3-
דף עבודה בפקודות סיבוב
58 מיקרו מחשבים
דף עבודה בפקודות סיבוב
מהו תוכ האוגר AHודגל הנשא CFאחרי ביצוע קטעי התכנית הבאי: .1
כתוב תכנית שמחליפה את סדר הספרות בהקסה של תוכ תא זיכרו בכתובת .200H .2
למשל ,א תוכ התא היה ,2Fהוא יהפו ל .F2
כתוב תכנית שמחליפה את תוכ האוגרי BLו ).BHהשתמש בטכניקת הסיבוב( .3
כתוב תכנית שמאפסת את תוכ תא הזיכרו בכתובת ,130Hא ער האוגר ALזוגי, .4
אחרת התכנית תסתיי.
כתוב תכנית שמכפילה את תוכ תא הזיכרו בכתובת ,1A0Hא ער תא הזיכרו .5
בכתובת 300Hשלילי ,אחרת התכנית תאפס אותו.
כתוב תכנית שמציבה את המספר ,7AHבאוגרי ,AL, BHא ער הסיבית D5 .6
באוגר DLהוא '.'1
על פי שאלה מס' 6בבגרות 98 .7
כתוב תת שגרה המונה את מס' הסיביות שערכ ' '1בתא הזיכרו שכתובתו א.
.10Hומציבה את התוצאה בתא הזיכרו שכתובתו .11H
מהו השינוי הנדרש על מנת שתת שהגרה תמנה את הסיביות שערכ '.'0 ב.
________________________________________________________________________________________________________________________
www.zaher.co.il -1-
דף עבודה בפקודות סיבוב
59 מיקרו מחשבים
________________________________________________________________________________________________________________________
www.zaher.co.il -2-
דף עבודה בפקודות סיבוב
60 מיקרו מחשבים
שאלה מס' 15בבגרות 05 .10
________________________________________________________________________________________________________________________
www.zaher.co.il -3-
דף עבודה בפקודות סיבוב
61 מיקרו מחשבים
בלוק נתוני ב 10Hבתי מתחיל בכתובת .1030Hכל בית מכיל נתו מספרי. .13
כתוב תת שגרה המונה את מס' הנתוני החיוביי בבלוק .ומציבה את התוצאה א.
בתא הזיכרו שכתובתו .1040H
מהו השינוי הנדרש על מנת שתת שהגרה תמנה את הנתוני השליליי בבלוק. ב.
עבודה נעימה
________________________________________________________________________________________________________________________
www.zaher.co.il -4-
פקודות לוגיות
62 מיקרו מחשבים
פקודות לוגיות
ה פקודות שמבצעות פעולות לוגיות בי הסיביות של האופרנדי בפקודה.
.1פקודת NOT
היא פקודה שמבצעת פעולת היפו לוגי לכל אחת מסיביות האוגר או תא הזיכרו המופיע
בפקודה.
יעד NOT תחביר הפקודה הוא :
דוגמה :1
MOV AL,92H ALלפני 1 0 0 1 0 0 1 0
NOT AL AL = 6DH
AL 0 1 1 0 1 1 0 1אחרי
.2פקודת OR
היא פקודה שמבצעת פעולת חיבור לוגי ) (ORבי הסיביות של היעד והמקור ,התוצאה
נשמרת ביעד.
מקור ,יעד OR תחביר הפקודה הוא :
הפקודה משמשת אותנו לקביעת ערכי של סיביות מסוימות ל , 1תו כדי שמירה על ערכ
של שאר הסיביות .
אפשר לראות מהטבלה כי א מבצעי כניסות מוצא
A B F
ORע 0מקבלי אותה סיבית ,וא 0 0 0
מבצעי ORע ,1מקבלי .1 0 1 1
1 0 1
1 1 1
________________________________________________________________________________________________________________________
www.zaher.co.il -1-
פקודות לוגיות
63 מיקרו מחשבים
דוגמה :2
MOV AL,4DH ALלפני0 1 0 0 1 1 0 1
20H 0 0 1 0 0 0 0 0
OR AL,20H AL = 6DH
AL 0 1 1 0 1 1 0 1אחרי
מסקנה
כל סיבית שרוצי לקבוע אותה ל ' , '1מבצעי לה פעולת ORע .1
דוגמה :3
קבע את ערכ של הסיביות מס' 2,3,7ל – , 1באוגר ALתו שמירה על שאר הסיביות .
OR AL,10001100B OR AL,8CH
.3פקודת AND
היא פקודה שמבצעת פעולת כפל לוגי ) (ANDבי הסיביות של היעד והמקור ,התוצאה
נשמרת ביעד.
הפקודה משמשת אותנו לבירור ערכי של סיביות מסוימות ,הדבר נעשה ע"י חסימת
הסיביות הלא רצויות ביעד ,פעולה זו נקראת מיסו .הכוונה היא לאיפוס כל הסיביות הלא
רצויות ובירור הסיבית הנדרשת .
________________________________________________________________________________________________________________________
www.zaher.co.il -2-
פקודות לוגיות
64 מיקרו מחשבים
דוגמה :4
MOV AL,6DH ALלפני0 1 1 0 1 1 0 1
20H 0 0 1 0 0 0 0 0
AND AL,20H AL = 20H
AL 0 0 1 0 0 0 0 0אחרי
רואי כי הסיבית מס' 6באוגר , ALנשארה כמו שהיא .שאר הסיביות התאפסו ,ז"א
חסמנו אות.
מסקנה
כל סיבית שרוצי לברר את ערכה ,מבצעי לה פעולת ANDע ,1ושאר הסיביות
ע .0
דוגמה :5
כתוב קטע תכנית שמאפס את האוגר ,ALא ערכה של הסיבית החמישית באוגר AH
שווה ל .0
AND AL,00010000B AND AL,10H
JNZ SOF
MOV AH,0
SOF : INT 3
.4פקודת TEST
היא פקודה שמבצעת פעולת כפל לוגי ) (ANDבי הסיביות של היעד והמקור ,התוצאה
משפיעה על הדגלי בלבד ולא נשמרת ביעד.
הערה
הפקודה מתפקדת בדיוק כמו הפקודה ,ANDא שומרת על ער האופרנדי ללא
שינוי.
________________________________________________________________________________________________________________________
www.zaher.co.il -3-
פקודות לוגיות
65 מיקרו מחשבים
דוגמה :6
MOV AL,6DH ALלפני0 1 1 0 1 1 0 1
20H 0 0 1 0 0 0 0 0
TEST AL,20H AL 0 0 1 0 1 1 0 1אחרי
AL = 6DH
רואי כי הער נשאר ב ALללא שינוי ,אבל הדגלי השתנו בהתא לתוצאה.
.5פקודת XOR
היא פקודה שמבצעת פעולת XORלוגי בי הסיביות של היעד והמקור ,התוצאה נשמרת
ביעד.
מקור ,יעד XOR תחביר הפקודה הוא :
דוגמה :7
MOV AL,6DH ALלפני0 1 1 0 1 1 0 1
20H 0 0 1 0 0 0 0 0
XOR AL,20H AL 0 1 0 0 1 1 0 1אחרי
AL = 4DH
רואי כי הסיבית מס' 6באוגר ALהתהפכה .שאר הסיביות נשארו כמו שהיו ללא שינוי.
מסקנה
היא שכל סיבית שרוצי לשנות את ערכה ,מבצעי לה פעולת XORע ,1ושאר
הסיביות ע .0
________________________________________________________________________________________________________________________
www.zaher.co.il -4-
פקודות לוגיות
66 מיקרו מחשבים
דוגמה :8
כתוב פקודה שהופכת את ערכ של הסיביות מס' 3,5,7באוגר .AL
XOR AL,01010100B XOR AL,54H
דוגמה :9
כתוב תכנית שמבצעת את המשלי ל – 2של המספר הנמצא באוגר ALותציב את התוצאה
באוגר .AH
MOV AH,AL
NEG AH
________________________________________________________________________________________________________________________
www.zaher.co.il -5-
דף עבודה בפקודות לוגיות
67 מיקרו מחשבים
דף עבודה בפקודות לוגיות
________________________________________________________________________________________________________________________
www.zaher.co.il -2-
דף עבודה בפקודות לוגיות
69 מיקרו מחשבים
________________________________________________________________________________________________________________________
www.zaher.co.il -3-
דף עבודה בפקודות לוגיות
70 מיקרו מחשבים
תא הזיכרו בכתובת ,247Hמכיל נתו בגודל בית אחד )שתי ספרות הקסה( .כתוב .24
תת!שגרה שמכפילה את הספרה הראשונה של הנתו בספרה השנייה ומציבה את
התוצאה בתא הזיכרו בכתובת .248H
________________________________________________________________________________________________________________________
www.zaher.co.il -4-
דף עבודה בפקודות לוגיות
71 מיקרו מחשבים
________________________________________________________________________________________________________________________
www.zaher.co.il -5-
דף עבודה בפקודות לוגיות
72 מיקרו מחשבים
עבודה נעימה
________________________________________________________________________________________________________________________
www.zaher.co.il -6-
73 מחסינת ופרוצדורה ) ( Stack & Procedure מיקרו מחשבים
מחסנית ) ( Stack
המחסנית היא איזור בזיכרו הראשי ) ,(RAMשמתנהל לפי עיקרו נכנס ראשו יוצא
אחרו ) .( FILO –First In Last Outאו להפ ,זאת אומרת נכנס אחרו יוצא ראשו ) – LIFO
) .(Last In First Outכמו מחסנית הכדורי של אקדח (.
סדר ניהול זה עוזר לנו כאשר רוצי לשמור נתוני בסדר מסוי .נרחיב על זה בפסיקות
ובפרוצדורות .כדי לנהל את המחסנית בצורה זו נעזרי באוגר מיוחד הנקרא מצביע ראש
המחסנית (SP) - Stack Pointerאשר מצביע על קצה המחסנית ,כלומר המקו שאליו נכנס
הנתו האחרו.
תוכ כתובת
1FEH
1FFH
SP נתו 1 200H
.2אחסו החלק העליו של האוגר לתו הכתובת ש SPמצביע עליהMSB ⇒ [ SP] .
MOV SP,200H
MOV AX,3F4CH
PUSH AX
AX
תוכ כתובת
3F 4C
.1קריאת הנתו ש SPמצביע עליו לתו החלק הנמו של האוגר[ SP] ⇒ LSB .
.3קריאת הנתו ש SPמצביע עליו לתו החלק העליו של האוגר[ SP] ⇒ MSB .
למשל :תאר את מצב המחסנית ,בהנחה כי אחרי ביצוע פעולת הדחיפה הקודמת ,ההוראה
הבאה לביצוע ב :86/88
POP DX
________________________________________________________________________________________________________________________
www.zaher.co.il -2-
75 מחסינת ופרוצדורה ) ( Stack & Procedure מיקרו מחשבים
DX
תוכ כתובת
3F 4C
דוגמה :
תאר בקצרה מה מבצע כל אחד מקטעי התכנית הבאי:
לפי אותו עיקרו FILOאפשר לראות אפשר לראות לפי עיקרו FILOשהנתו
שהנתו הראשו שנכנס למחסנית הוא ער הראשו שנכנס למחסנית הוא ער האוגר
האוגר AXוהוא יוצא אחרו לאותו אוגר AXוהוא יוצא אחרו לאוגר ,BXואילו
,AXואילו הנתו האחרו שנכנס למחסנית הנתו האחרו שנכנס למחסנית הוא ער
הוא ער האוגר BXוהוא יוצא ראשו לאותו האוגר BXוהוא יוצא ראשו לתו האוגר
אוגר .BXלכ אפשר לומר שקטע תכנית זה .AXלכ אפשר לומר שקטע תכנית זה מחלי(
שומר ערכי של אוגרי בתו המחסנית את תוכ שני האוגרי בעזרת המחסנית בלי
ומשחזר אות. להשתמש באוגר עזר.
הערה :
לכאורה ,אפשר לומר שקטע ב' לא מבצע כלו ,כי הוא שומר ערכי של אוגרי ומשחזר
אות ערכי .אבל ,מצד שני יש לקטע זה שימוש חשוב מאוד .והוא שא אנחנו מבצעי תכנית
מסוימת ורוצי לקרוא לתכנית משנה ) פרוצדורה ( מתו התכנית הראשית ,וחשוב לנו לשמור
את הערכי של אוגרי מסוימי ) שיכולי להשתנות בתכנית המשנית ( ,אז בתחילת התכנית
המשנית שומרי אות במחסנית ע"י פקודת PUSHובסו( התכנית המשנית משחזרי אות
ע"י פקודות ) .POPחשוב לשמור על סדר הופעה הפו של האוגרי (
________________________________________________________________________________________________________________________
www.zaher.co.il -3-
76 מחסינת ופרוצדורה ) ( Stack & Procedure מיקרו מחשבים
פרוצדורה ) ( Procedure
לעתי צריכי לבצע משימה זהה מספר פעמי בתכנית ,הדר הפשוטה ביותר היא שכל פע
שרוצי לבצע את המשימה ,נרשו את קבוצת הפקודות שמבצעות אותה .אבל אז יש מס'
חסרונות ,א צריכי לבצע שינוי כלשהו במשימה נצטר לבצע את השינוי בכל מקו שבו
רשומות הפקודות של המשימה .וחסרו נוס( הוא אור התכנית שמגדיל את הסיכוי לשגיאות.
לכ הדר הטובה ביותר היא לרשו את קטע התכנית שמבצע את המשימה כפרוצדורה ובכל
מקו בתכנית שרוצי לבצע את המשימה קוראי לפרוצדורה ע"י הפקודה CALLומפעילי
אותה ,וכאשר מסיימי את הביצוע חוזרי לתכנית ע"י RETוממשיכי בביצוע התכנית ,כדי
לאפשר חזרה נכונה לתכנית שקראה לה ,חייבת היע"מ לשמור את ה IPלפני הקריאה ולשחזר
אותו בעת החזרה מהפרוצדורה לתכנית המקורית .דבר זה מתבצע באמצעות דחיפה ושליפה של
IPבמחסנית.
כאשר כותבי פרוצדורה ,הש שלה מופיע תמיד ליד פקודה ראשונה והיא מסתיימת
בפקודת .RET
פקודת CALL
פקודה זו מבצעת קריאה לפרוצדורה לפי הש שלה ,במקרה של פרוצדורה קרובה היא
שומרת את ערכו של IPבמחסנית ,ומעבירה את הכתובת של הפקודה הראשונה בפרוצדורה
לתו .IPוכאשר הפרוצדורה רחוקה היא שומרת את ערכ של CSו .IP +כדי לחזור למקו
שממנו התבצעה הקריאה לאחר סיו הפרוצדורה.
תכנית ראשית
פרוצדורה DELAY
:
CS: 1000 MOV AL,3FH CS: 0100 DELAY: MOV CX,0FFFFH
CS: 1002 OUT DX,AL CS: 0102 AGAIN : DEC CX
CS: 1004 CALL DELAY CS: 0103 JNZ AGAIN
CS: 1006 ADD AL,AL CS: 0105 RET
:
נראה כי בזמ ביצוע הפקודה ,CALL DELAYער האוגר IPהוא .IP = 1006אז אחרי
סיו הפרוצדורה ,אנו רוצי לחזור לאותה כתובת .לכ ,כתובת זו נשמרת במחסנית ולאוגר IP
טועני את הכתובת של הפקודה הראשונה בפרוצדורה .DELAY
IPבזמ ביצוע CALL
תוכ כתובת
10 06
01 00
ע סיו הפרוצדורה ,כאשר מגיעי לפקודת ,RETהיא שולפת את הער של IPמהמחסנית:
IP
תוכ כתובת
10 06
________________________________________________________________________________________________________________________
www.zaher.co.il -5-
78 דף עבודה במחסנית ופרוצדורות מיקרו מחשבים
________________________________________________________________________________________________________________________
www.zaher.co.il -1-
79 דף עבודה במחסנית ופרוצדורות מיקרו מחשבים
________________________________________________________________________________________________________________________
www.zaher.co.il -2-
80 דף עבודה במחסנית ופרוצדורות מיקרו מחשבים
________________________________________________________________________________________________________________________
www.zaher.co.il -3-
81 דף עבודה במחסנית ופרוצדורות מיקרו מחשבים
עבודה נעימה
________________________________________________________________________________________________________________________
www.zaher.co.il -4-
82 פסיקה Interrupt מיקרו מחשבים
היא תהלי של הפסקת תכנית שמתבצעת ,ביצוע שגרה מסוימת וחזרה עוד פע לתוכנית
הראשית.
קיימי שני סוגי של פסיקות :
פסיקת תוכנה פסיקה שהמתכנת הוא זה שמבקש אותה בעזרת פקודת ,INTבמקרה
זה היא מתבצעת מייד.
פסיקת חומרה – פסיקה המבוקשת ע"י רכיב חיצוני המחובר למחשב ,למשל טיימר של
רמזור שיבקש מהמחשב לשנות את התוכנה שלו בשעות מסוימות שבה יש עומס בכיוו
מסוי ) שעות הבוקר ואחה"צ שבה יש עומס של נסיעות עובדי( .במקרה זה אנחנו
יכולי לאפשר למחשב לבצע אותה או לחסו אותה ,תלוי בחשיבות התכנית שאנחנו
מבצעי בזמ בקשת הפסיקה.
מאחר ואנו לא יודעי מה היא השגרה שרוצי לבצע בפסיקה ,אז אנחנו שומרי במחסנית
את אוגר הדגלי ,האוגר ,CSוהאוגר .IP ,כדי להבטיח חזרה נכונה לתכנית.
מספר_פסיקה INT
תחביר הפקודה :
פקודה זו מסיימת את שגרת הטיפול בפסיקה ,ומבצעת חזרה לתכנית הראשית שאותה
הפסקנו .הפקודה מופיעה בסו' שגרת טיפול בפסיקה ,היא שולפת מהמחסנית את הערכי של
CS ,IPוהדגלי.
________________________________________________________________________________________________________________________
www.zaher.co.il -1-
83 פסיקה Interrupt מיקרו מחשבים
אפשור בקשת פסיקת חומרה תלוי בערכו של הדגל ,IFכאשר IF = 0אנחנו לא מאפשרי
למחשב לבצע פסיקות חומרה .וכאשר IF = 1אנחנו מאפשרי למחשב לבצע פסיקות חומרה.
ולכ יש פקודות שמשפיעות ישירות על הדגל .IF
א חשוב שהתכנית שלנו תתבצע ברצ' ,ושלא תעצור באמצע הביצוע כדי לענות לפסיקה,
אז מאפסי את הדגל IFבתחילת התכנית ,ובסו' התכנית מחזירי את הער שלו לאחד ,כדי
לאפשר ביצוע פסיקות חומרה.
למשל :
CLI
STI
________________________________________________________________________________________________________________________
www.zaher.co.il -2-
84 פסיקה Interrupt מיקרו מחשבים
מערכת ההפעלה DOSמספקת לנו מספר פונקציות מוכנות ,שאפשר להשתמש בה ,כל
פונקציה מאפשרת ביצוע פסיקה מסוימת .וכול מתבצעות בפסיקה מס' ) 21Hשהיא פסיקת
. (DOS
כדי לבצע פונקציה מסוימת ,צריכי להציב את המספר שלה בתו האוגר ) AHבלבד(,
ולאחר מכ לקרוא לפסיקה מס' .21H
הפונק' תגרו למחשב להפסיק את התכנית שמתבצעת ,להמתי עד שנלח +על מקש
כלשהו ,תקלוט את הקוד ASCIIשל המקש לתו האוגר ,ALהמקש הנלח +יופיע על המס .
ולאחר מכ התכנית תמשי כהלכה.
הפונק' תגרו למחשב להפסיק את התכנית שמתבצעת ,להמתי עד שנלח +על מקש
כלשהו ,תקלוט את הקוד ASCIIשל המקש לתו האוגר ,ALהמקש הנלח +לא יופיע על המס .
ולאחר מכ התכנית תמשי כהלכה.
________________________________________________________________________________________________________________________
www.zaher.co.il -3-
85 פסיקה Interrupt מיקרו מחשבים
הפונק' תגרו למחשב להפסיק את התכנית שמתבצעת ,להציג על המס את התו שקוד
ASCIIשלו נמצא בתו האוגר .DLולאחר מכ התכנית תמשי כהלכה) .יש לשי לב כי
הפסיקה " מקלקלת " או משנה את תוכנו של האוגר .(AL
________________________________________________________________________________________________________________________
www.zaher.co.il -4-
86 פסיקה Interrupt מיקרו מחשבים
הפונק' תגרו למחשב להפסיק את התכנית שמתבצעת ,לבדוק א נלח +מקש כלשהו
במקלדת ,א כ ,האוגר ALיקבל את הער .FFHאחרת ) א לא נלח +מקש ( הוא יקבל .00H
ולאחר מכ התכנית תמשי כהלכה .
________________________________________________________________________________________________________________________
www.zaher.co.il -5-