פתרון אביב 2009arikporat.com/mahattest/micro_spring_2009.doc · Web view* רכיב PPI...

31
www.arikporat.com תתת : תתתת תתתת בבבבב בבבב2009 בבבב בבבב1 תתתתת תתתתתת תתתתתתת תתתתתת תתתת תת תתתתת תת100 תתת תת תתתת2008 . תתתתתת תתתתת100 תתתתתת תתתתת תתת תתת תתת. תת תתתתת תתתתת תת תתתתת תתתתת : תתתת תתתת תתתת תתתתתת תתתתת תתתת .)תתתתתת תת תתתתת( תתתתת תתתת תתת תתתת תתתת תתתת תתתתת תתתתתת תתתת תתת תתתת50 תת תתתת5 תתתתת תת תתתתת תתת תת200 ת"ת תתתתתת,250 ת ת"ת תתתתתתת,210 ת"ת תתתתתת :50, 5 , 200 , 250 , 300 , 320 , 350 , 370 , 410 , 420 , 310 , 330 , 200 , 210 ת. תתתת תתתתת תתתתת תתתתתת תתתתתת תתתתתת תת תת תתת תתתת2008 תתתתתת תתתתתת תתתתתת תתתת תתת תתת. ת. תתתת תת תתתתת תתתתתת תת תתת תתתתת תתתתת תתתתתת תת תתתת תתתת תת תתתתת תתתתת תתתת תתתתתת תתתת תתתתתתתתת. בבבבב1 תת תתתתת תתתתתfamily תתתתתת תת : תת"ת תתתת תתת100 תתתתתת תתתת ת1 תת100 . ת תתתתתת תתת תתתתת10 תתתתת תת תתתת תתתת תתת תתתתת :family[10].home_number תת תתתתתת ת תתת תתתתת תתתתת תתת50 תתתתת :family[50].months[3] תתתתת תת תתתתתתת תתתתת :x ת( תת תתתת תתתתתת תתתתתת תתתתת- תתתתת תתתתתת תתת1 תת100 .) family int int int months[12] תתתת תת12 תתתתתת

Transcript of פתרון אביב 2009arikporat.com/mahattest/micro_spring_2009.doc · Web view* רכיב PPI...

Page 1: פתרון אביב 2009arikporat.com/mahattest/micro_spring_2009.doc · Web view* רכיב PPI 8255 המשמש כממשק בין הממירים למעבד. כניסת ST משמשת

www.arikporat.comפתר : אריה פורת

2009 פתרון אביב

1 שאלה מספר

. הרשימה2008 בתי אב בשנת 100רשימת נתונים מתייחסת לצריכת המים של יישוב עם רשומה אחת לכל בית. כל רשומה כוללת את השדות הבאים : – רשומות 100מכילה

מספר הביתמספר הנפשות הגרות בבית.)צריכת המים בכל חודש בשנה )מינואר עד דצמבר

מ"ק200 נפשות עם צריכת מים של 5 בו גרות 50להלן דוגמא לרשומה עבור בית מספר מ"ק בדצמבר :210 מ"ק בפברואר, ו 250בינואר,

50, 5 , 200 , 250 , 300 , 320 , 350 , 370 , 410 , 420 , 310 , 330 , 200 , 210

וממוצע הצריכה2008א. צייר תרשים זרימה לחישוב הצריכה הכוללת של כל בית בשנת החודשי לנפש בכל בית.

ב. השלם את תרשים הזרימה על מנת לאפשר בדיקה והדפסה של מספר הבית בו הייתהצריכת המים השנתית לנפש מינימאלית.

1 תשובה

ותיראה כך : familyכל רשומה תיקרא

. 100 עד 1 רשומות כאלה מ 100סה"כ יהיו לנו

ולדעת את מספר הבית שלה נרשום :10כדי לפנות למשפחה ה family[10].home_number

נרשום :50כדי לפנות לחודש מרץ של המשפחה ה family[50].months[3]

נגדיר את המשתנים הבאים :x – (.100 עד 1 משתנה מטיפוס שלם - אינדקס המראה את מספר המשפחה )מy – ( .12 עד 1 משתנה מטיפוס שלם - אינדקס המראה את מספר החודש )מ

total_consumption[100] איברים מטיפוס שלם - אשר יציין את צריכת100 מערך של ההספק הכוללת לכל משפחה.

איברים מטיפוס12100* מערך בן - average_person_consumption[100] ] 12[מערך איברים המציינים תצרוכת12 האיברים מציינים משפחה ולכל משפחה יש 100ממשי. כל

חודשית ממוצעת לנפש. נניח שכל איברי המערכים האלו שווים אפס בתחילת התוכנית.

family int int int months[12] חודשים12מערך של home_number persons 50 5 200 250 300 200 210

Page 2: פתרון אביב 2009arikporat.com/mahattest/micro_spring_2009.doc · Web view* רכיב PPI 8255 המשמש כממשק בין הממירים למעבד. כניסת ST משמשת

www.arikporat.comפתר : אריה פורת

א.

כן

כן

כן

משתנים נוספים מטיפוס שלם:3ב. נגדיר שמראה את תצרוכת הספק לנפש השנתיתmax_person_consumption א.

.0המקסימאלית. נניח שבהתחלה הוא שמראה תצרוכת לנפש כוללת שנתית. total_person_consumptionב. - מראה את מספר המשפחה שבה הייתה תצרוכת לנפש שנתית מקסימאלית zג.

x=1

x <=100

total_consumption[x]= total_consumption[x]+family[x].months[y]

y=1

y<=12

y=y+1

average_person_consumption[x][y]= average_consumption[x]+family[x].months[y] / family[x].persons

y=1

y<=12

y=y+1

סיום

x=x+1

Page 3: פתרון אביב 2009arikporat.com/mahattest/micro_spring_2009.doc · Web view* רכיב PPI 8255 המשמש כממשק בין הממירים למעבד. כניסת ST משמשת

www.arikporat.comפתר : אריה פורת

כן

כן

כן

x=1

x<=100

y=1, total_person_consumptio=0

סיום

total_person_consumption=total_person_consumption+average_person_consumption[x][y]

y<=12

y++

total_person_consumption>max_person_consumption

max_person_consumption=total_person_consumption , z=x

y=1, x++, total_person_consumptio=0

הדפסה : "מספר הבית שבו תצרוכתשנתית לנפש מקסימאלית הוא :

family[z].home_number ותצרוכת ההספק לנפש

המקסימאלית היא:max_person_consumption"

Page 4: פתרון אביב 2009arikporat.com/mahattest/micro_spring_2009.doc · Web view* רכיב PPI 8255 המשמש כממשק בין הממירים למעבד. כניסת ST משמשת

www.arikporat.comפתר : אריה פורת

2 שאלה מספר

מערכת מיקרו מחשב כוללת : קווי נתונים.16 קווי כתובת ו 20 בעל 8086מעבד מסוג

0FFFFH עד 0 כל אחד הממופים ברצף מכתובת 16Kbytes בגודל RAMרכיבי -)כולל(.

עד סוףE0000H כל אחד הממופים ברצף מכתובת 32Kbytes בגודל EPROMרכיבי -מרחב הזיכרון.

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

74138 במערכת בעזרת מפענח מסוג RAMתכנן מערך למיפוי מלא של רכיבי ה ב.ושערים לוגיים לבחירתך.

.RAMציין איזה קווי כתובת מחוברים לכל אחד מרכיבי ה -שרטט את המערך שתכננת.- .BHE ו M/IOהסבר את הצורך בקווי הבקרה -

2 תשובה

א. 64K / 16K = 4 ( : רכיבים(RAM 0 - FFFFh=64Kכמות רכיבי ה

בתים. h20000 יש FFFFFh ועד E0000h : מ EPROMכמות רכיבי 20000h = 128Kbytes 128K / 32K = 4 רכיבים

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

A13 עד A0 כלומר מ 16K = 24 *210 = 214 הם : RAMרגלי הכתובות של ה .A14 ועד A0 אז רגלי הכתובות שלו הן מ RAM גדול פי שניים מה EPROMהיות וה

של המיקרו יגידו מתי פונים לכתובות זוגיות ומתי לאיBHE של פס הכתובות ורגל A0רגל זוגיות.

A2 של פס הכתובות ל A1 של כל רכיב זיכרון ואת A0 של פס הכתובות נחבר ל A1את רגל של פס הכתובות ורגלA14 מתחברת ל RAM של כל A13של רכיב הזיכרון וכך הלאה. רגל

A14 של כל EPROM מתחברת אל A15.בפס הכתובות

כתובתבהקסה

A3 – A0A7 – A4A11 – A8

A15- A12

A19–A16

הרכיב המתחבר

0 0 0 00 - 07FFF

0 0 0 X x x x X

0 0 0 0 x x x x

0 0 0 0 - x x x x

0 0 0 0 - 0 x x x

0 0 0 0 – 0 0 0 0

RAM0+RAM1

0 8 0 00 -0FFFF

0 0 0 X x x x X

0 0 0 0 x x x x

0 0 0 0 - x x x x

1 0 0 0 - 1 x x x

0 0 0 0 – 0 0 0 0

RAM2+RAM3

10000 - DFFFF

0 0 0 X- 1 1 1 X

0 0 0 0 – 1 1 1 1

0 0 0 0 - 1 1 1 1

0 0 0 0 – 1 1 1 1

0 0 0 1 – 1 1 0 1

זיכרון פנוי

--- --- --- ---E 0 0 00 - EFFFF

0 0 0 X x x x X

0 0 0 0 x x x x

0 0 0 0 - x x x x

0 0 0 0 - x x x x

1 1 1 0 – 1 1 1 0

EPROM 0 + 1

F 0 0 00 -FFFFF

0 0 0 X x x x X

0 0 0 0 x x x x

0 0 0 0 - x x x x

0 0 0 0 - x x x x

1 1 1 1 – 1 1 1 1

EPROM 3+ 4

Page 5: פתרון אביב 2009arikporat.com/mahattest/micro_spring_2009.doc · Web view* רכיב PPI 8255 המשמש כממשק בין הממירים למעבד. כניסת ST משמשת

www.arikporat.comפתר : אריה פורת

דרכים :2את מרחב הזיכרון הפנוי ניתן לחשב ב 16K * 4 =64K RAM 1 רכיבי. 32K * 4 = 128K EPROM רכיבי

64K + 128K = 192 Kסה"כ זיכרון בשימוש : 1024K = 220 קווי הכתובות הוא 20היות ומרחב הזיכרון של המיקרו בעל

1024K-192K = 832K המרחב הפנוי יהיה :

D0000 . סה"כ DFFFFhועד h10000. דרך נוספת : לפי הטבלה המרחב הפנוי הוא מ 2 h

כתובות. כלומר המרחב הפנוי יהיה: D*164 + 0* 163 + 0*162+ 0*161 + 0*160 = 851968 כתובות

832K 851968 = 1024/ ונקבל : 1024אם נרצה את המרחב בקילו בתים נחלק ב

ב. 0 חייבות לקבל A16-A19 הוא פשוט. רואים בטבלה שרגלים 74138התכנון בעזרת מפענח

פונים.RAM תקבע לאיזה זוג A15ורגל המעגל ייראה כך :

Page 6: פתרון אביב 2009arikporat.com/mahattest/micro_spring_2009.doc · Web view* רכיב PPI 8255 המשמש כממשק בין הממירים למעבד. כניסת ST משמשת

www.arikporat.comפתר : אריה פורת

831 CA47

0A1

1A2

2A3

1E4

7 O76 O95 O014 O113 O212 O311 O410 O51

2E5

3E6

61A51A

71A

M/'OI

1MAR + 0MAR

3MAR + 2MAR

SSERRDA NEVE

SSERRDA NEVESSERRDA DDO

SSERRDA DDO

0 A01

1 A9

2A8

3A7

4A6

5A5

6A4

7A3

8A52

9 A42

01 A12

11 A32

21 A2

0 D11

1 D21

2 D31

3 D51

4 D61

5 D71

6 D81

7 D91

E O22

E W72

1 S C02

2 S C62

31 A

C CV

0 A01

1 A9

2 A8

3 A7

4 A6

5 A5

6 A4

7 A3

8 A52

9 A42

01 A12

11 A32

21 A2

0 D11

1 D21

2 D31

3 D51

4 D61

5 D71

6 D81

7 D91

E O22

E W72

1S C02

2S C62

31 A

C CV

2347

1

23

4

56

'EHB

0A

51D - 8D 7D - 0D

2 347

9

018

21

3111

'DR oT

'DR oT41A - 1A 41A - 1A

0 A01

1 A9

2A8

3A7

4A6

5A5

6A4

7A3

8A52

9 A42

01 A12

11 A32

21 A2

0 D11

1 D21

2 D31

3 D51

4 D61

5 D71

6 D81

7 D91

E O22

E W72

1 S C02

2 S C62

31 A

C CVC CV

0 A01

1 A9

2 A8

3 A7

4 A6

5 A5

6 A4

7 A3

8 A52

9 A42

01 A12

11 A32

21 A2

0 D11

1 D21

2 D31

3 D51

4 D61

5 D71

6 D81

7 D91

E O22

E W72

1S C02

2S C62

31 A

51D - 8D 7D - 0D

'DR oT

41A - 1A 41A - 1A

'RW oT

'RW oT

'RW oT

'EHB

0A

'DR oT'RW oT

91A81A

מחוברות לפס הכתובותRAM ב A13 ועד A0כדאי לשים לב שרגלי הכתובות של כל רכיב מ (.EPROM בהתאמה. )דבר דומה קורה ב A14 עד A1לרגלים

רכיבי הזיכרון הימניים הם הכתובות הזוגיות והשמאליים הם האי זוגיות. הרכיבים בכתובות.D8 – D15 והרכיבים בכתובות האי זוגיות ל D0 – D7הזוגיות מתחברים ל

- פעיל או לא . רגל זו תלויהD8 – D15 – קובעת האם פס הנתונים הגבוה ' BHEרגל המתחילה בכתובתמילהבפקודה הנוכחית. אם פונים בפקודה לכתובת אי זוגית או שפונים ל

שאומר לו שהוא פעיל.0 ואז רכיב הזיכרון מקבל 0זוגית הרגל מקבלת . כמובן1 ואז ברגל יש Memory או ל 0 ואז ברגל יש IO מציינת האם פונים ל IO'/Mרגל

ואם הפקודה היא1שרגל זו תלויה בפקודה הנוכחית. אם בפקודה יש פניה לזיכרון אז יש ברגל .0קלט או פלט אז יש בה

3 שאלה

8251 מסוג UART ( מחובר רכיב 8051 או 8086במערכת מיקרו מחשב )מבוססת מעבד המתוחל עם פרמטרי התקשורת הבאים :

1 Start Bit, 8 Bit Data, Odd Parity, 2 Stop Bits, Baud Rate Factor=16 סיביות כל אחד( בשנייה.8 תווי אסקי )800 נדרש לשדר בקצב של UARTרכיב ה

תאר ושרטט את סכימת החיבורים בין מרכיבי המערכת.א.

Page 7: פתרון אביב 2009arikporat.com/mahattest/micro_spring_2009.doc · Web view* רכיב PPI 8255 המשמש כממשק בין הממירים למעבד. כניסת ST משמשת

www.arikporat.comפתר : אריה פורת

.סמן את כל קווי הבקרה וכיווניהם תכנן מפענח חלקי למיפוי הUART 800 בכתובתH במרחב ה I/O. חשב את קצב השעון הדרוש בכניסת הUART.

הנ"ל. הסבר כל פקודהי לאופן העבודה הא סינכרונ8251כתוב קטע תוכנית לאתחול ה ב.בתוכנית

וציין את :)z ' )7A H' שרטט את אות השידור הטורי עבור ג.רמות לוגיות וכיוון השידורזמן ביט בודד רמות המתח הנדרשות בתקשורתRS 232

3 תשובה

.51נצייר את המערכת עם מיקרו ממשפחת ה א.נחשב את קצב השעון : סה"כ כמות הסיביות המשודרות הן :

1 start bit + 8 bits data + 1 parity + 2 stop bits = 12 bits.

תווים בשנייה היא צריכה לשדר בקצב של :800היות והמערכת אמורה לשדר 800*12=9600 bits / second

הגביש המתחבר אל הרכיב צריך להיות בתדר של :Fcrystal = 9600 * 16 = 153600 Hz

41A

11A

51A

3 73 C H47

E O1 EL

11

C CV02

Q12

Q25

Q36

Q49

Q521

Q651

Q761

Q891

D13

D24

D37

D48

D531

D641

D771

D881

0A

1528

T E SE R12

KL C02

D/ C21

D R31

R W01

S C11

DX R3CX R

52CXT

9

DXT91

0 D72

1 D82

2 D1

3 D2

4 D5

5 D6

6 D7

7 D8

Y D RX R41

Y D RXT51

EXT81

RB / Y S61

RS D22

RT D42

ST C71

ST R32

zH006351

H008

01A

21A31A

45147

0 Y1

1 Y2

2 Y3

3 Y4

4 Y5

5 Y6

6 Y7

7 Y8

8 Y9

9 Y01

01 Y11

11 Y31

21 Y41

31 Y51

41 Y61

51 Y71

A32

B22

C12

D02

1 G81

2 G91

25S98

0 .2 P12

1 .2 P22

2 .2 P32

3 .2 P42

4 .2 P52

5 .2 P62

6 .2 P72

7 .2 P82

D R71

R W61

NESP92P / EL A03

DXT11

DX R01

P V / AE13

1X91

2X81

T S R9

0 .0 P93

1 .0 P83

2 .0 P73

3 .0 P63

4 .0 P53

5 .0 P43

6 .0 P33

7 .0 P23

2T / 0 . 1 P1

X2T/ 1 .1 P2

2 .1 P3

3 .1 P4

4 .1 P5

5 .1 P6

6 .1 P7

7 .1 P8

0T N I21

1T N I31

0T41

1T51

Page 8: פתרון אביב 2009arikporat.com/mahattest/micro_spring_2009.doc · Web view* רכיב PPI 8255 המשמש כממשק בין הממירים למעבד. כניסת ST משמשת

www.arikporat.comפתר : אריה פורת

ב. של הרכיב .( mode)אתחול הרכיב יעשה ע"י שליחת פקודה לרגיסטר האופן

resetבהנחה שהרכיב אחרי Mov dptr,801h ; address of instruction register c/d' = 1 -> הוצאתפקודהMov a,#11011110b ; mode instruction; 11 - 2 STOP bits, 1 - ODD parity, 1- enable parity,11- 8 bits , 10 – FACTOR *16movx @dptr,a

שליחת מילת פקודה מיד אחרי מילת האופן: )העזר בשרטוט שבהמשך(:Mov a,#00110111B; EH=0 ללא השפעה בתקשורת סינכרונית , IR=0 אין איפוס פנימי לרכיב , ; RTS=1 0ל RTS הורדת הקו החיצוני , ER=1 איפוס שגיאות , ; SBRK=0 אל תשלח בקשת "הפסקה" , RxE=1 איפשור קליטה; DTR =1 0הורדת הקו החיצוני ל , TxEN=1 איפשור שידורMovx @dptr,a

רגיסטר הפקודה נראה כך:

Page 9: פתרון אביב 2009arikporat.com/mahattest/micro_spring_2009.doc · Web view* רכיב PPI 8255 המשמש כממשק בין הממירים למעבד. כניסת ST משמשת

www.arikporat.comפתר : אריה פורת

אל הLSB . השידור מסיבית ה 7AH = 01111010B7 ייראה כך : 7AHשידור את התו MSB.

5volt

1 1 0 0 1 1 1 1 0 1 0 0 0volt

ביט סיביות הנתון מהסיבית הנמוכה לגבוההODD8 ביטים של סיום ביט זוגיות 2 התחלה

לוגי0 וולט ו 5 לוגי הוא כ 1 שבהן TTL הן רמות 8251רמות המתח היוצאות / נכנסות ברכיב וולט. 0הוא

הלוגי הופך1 שבהם מתח ה RS232 רגל נוהגים לעבוד עם תקן 50כדי להגיע לטווחים של כ 15 ל 7 הלוגי עובר להיות מתח חיובי בין 0 וולט ואילו ה 15 עד מינוס 7למתח של בין מינוס

יש0- וולט ובזמן ה 15 וולט יש כ 5וולט. ולכן צורת הגל תהיה הפוכה לזו שבשרטוט. בזמן ה וולט.15כ

T=1/9600 = 0.104166 msec הוא : הזמן של כל סיבית ביטים בשנייה 9600היות ומשדרים 4 שאלה

( מיועדת לאיסוף נתונים וכוללת : 8051 או 8086מערכת מיקרו מחשב )עם EOC , RD , ST ושלושה קווי בקרה : 5V - 0 סיביות עם כניסה AtoD 8* ממיר .WR וקו בקרה 5V – 0 סיביות עם יציאת DtoA 8* ממיר המשמש כממשק בין הממירים למעבד.PPI 8255* רכיב

מסמנת את סיומה. EOC ויציאת AtoD משמשת להתחלת ההמרה ב STכניסת .DtoA מתחילה את ההמרה ב WRכניסת

.Active Lowהערה : כל קווי הבקרה אקטיביים באפס לוגי -

Page 10: פתרון אביב 2009arikporat.com/mahattest/micro_spring_2009.doc · Web view* רכיב PPI 8255 המשמש כממשק בין הממירים למעבד. כניסת ST משמשת

www.arikporat.comפתר : אריה פורת

בכתובתPPIתכנן ושרטט את סכימת החיבורים בין מרכיבי המערכת. מפה את רכיב ה א.400H במרחב ה IO.)של המעבד )פענוח חלקי

כתוב בשפת אסמבלי קטע תוכנית להפעלת המערכת הכוללת :ב. ציין את אופן העבודה שבחרת.8255אתחול רכיב ה . כתיבת נתון לממירDtoA וולט. 3.75 וביצוע ההמרה כדי לקבל ביציאה מתח של התחלת ההמרה בממיר הAtoD.וקריאת האות הדיגיטאלי בסוף המרה

הערה : הסבר כל פקודה בתוכנית.

4 תשובה

א.בשרטוט ציירנו רק את הקווים החשובים בממירים.

0000 0000 0100 0000 נראית כך : 400h כתובת A10

0

3 RK01

4 RK01

0

v 5= C CV

traTSCOE

25S98TA

TS R9

2L ATX811L ATX91

NESP92G O RP/ EL A03

PP V / AE13

2T /0 .1 P1

X E-2T / 1 .1 P2

2 . 1 P3

3 . 1 P4

4 . 1 P5

5 . 1 P6

6 . 1 P7

7 . 1 P8

8 A/ 0 . 2 P12

9 A/ 1 . 2 P22

01 A/ 2 . 2 P32

11 A /3 . 2 P42

21 A/ 4 . 2 P52

31 A/ 5 . 2 P62

41 A/ 6 . 2 P72

51 A/ 7 . 2 P82

DX R /0 .3 P01

DXT /1 . 3 P11

0T N I /2 .3 P21

1T N I /3 .3 P31

0T / 4 . 3 P41

1T / 5 . 3 P51

R W/6 .3 P61

D R /7 .3 P71

0 DA / 0 . 0 P93

1 DA / 1 . 0 P83

2 DA / 2 . 0 P73

3 DA / 3 . 0 P63

4 DA / 4 . 0 P53

5 DA / 5 . 0 P43

6 DA / 6 . 0 P33

7 DA / 7 . 0 P23

0 D43

1 D33

2 D23

3 D13

4 D03

5 D92

6 D82

7 D72

0 AP4

1 AP3

2 AP2

3 AP1

4 AP04

5 AP93

6 AP83

7 AP73

0 BP81

1 BP91

2 BP02

3 BP12

4 BP22

5 BP32

6 BP42

7 BP52

0 CP41

1 CP51

2 CP61

3 CP71

4 CP31

5 CP21

6 CP11

7 CP01

D R5

R W63

0A9

1A8

T ES E R53

S C6

373 C H47

EO1 EL

11

1Q2

2Q5

3Q6

4Q9

5Q21

6Q51

7Q61

8Q91

1 D3

2 D4

3 D7

4 D8

5 D31

6 D41

7 D71

8 D81

7A

0

7A

5528

1A0A

8A

2

31

11AH004

31A21A

41A51A

01A

9A

8

234

8191

9

621314161

0

40 80 C DA

NI+6

N I-7

2 / F E RV9

7 B D116 B D215 B D314 B D413 B D512 B D611 B D710 B D81

R KL C91

F E RV / C C V02

N I KL C4

RT N I5

S C1D R

2

R W3

C CV

'RW

6 B01

5 B9

4 B8

3 B7

2 B6

1 B5

+ RV41

- RV51

T U OI4

T U OI2

PMO C61

C LV1

+V31

-V3

7 B8 B

9 B

1 RK01

1 Cf P051

0

v 5= C CV

0

2 RK01

ב. שהוא0 ( יעבדו באופן עבודה B וגם A הקבוצות )גם 2 יעבוד בצורה הבאה : 8255רכיב ה

– B, פורט AtoD יהיה קלט ויקבל את תוצאת ההמרה של ה Aקלט פלט פשוטים. פורט הנמוך יהיה פלט ובעזרתו נשלוט על פקודתC, פורט DtoAפלט ודרכו נשלח את המילה ל

ועל פקודת קריאת הנתון ממנו בסיום ההמרה. כמו כן רגל נוספתAtoDהתחלת ההמרה ל שלו יגיע אותPc7 הגבוה יהיה קלט ול C . פורט DtoA תיתן פקודת המרה אל ה Pc2שלו ( .EOC המודיע על סיום ההמרה )AtoDמה

:8255 אתחול ה

Page 11: פתרון אביב 2009arikporat.com/mahattest/micro_spring_2009.doc · Web view* רכיב PPI 8255 המשמש כממשק בין הממירים למעבד. כניסת ST משמשת

www.arikporat.comפתר : אריה פורת

: מילת הבקרה תהיה 1 00 1 1 0 0 0 = 98H

Mov dptr,#403h פנייה אל רגיסטר הבקרה של הרכיב ;Mov A,#98H מילת הבקרה לרכיב ;Movx @dptr,a כתיבת מילת הבקרה אל רגיסטר הבקרה ;Mov dptr,#402h ; C כתובת של פורט Mov a,#0ffh העברת קווי הבקרה למצב גבוה - לא פעיל ;Movx @dptr,a ; C כתיבה לפורט

: DtoA כתיבת נתון לממיר וולט יש להוציא אליו את המספר הבינארי : 3.75 מתח של DtoAכדי לקבל מהממיר

256 * 3.75 / 5 = 192 Mov dptr,#401H ; B כתובת פורטMov a,#192 מספר עשרוני המתאים ל 3.75 וולט ;Movx @dptr,a הוצאת הנתון לפורט ;

. נשלח זאת בעזרת כתיבהDtoA לרכיב ה – המרה – פקודת כתיבה Pc2כעת נשלח בעזרת BITלאחת מהרגליים של הפורט מבלי להשפיע על הרגליים האחרות שלו. השיטה נקראת

set/reset format דבר המדמה פקודת1 והחזרתה ל 0 . נעשה זאת על ידי הורדת הרגל ל( כתיבה( .

Mov dptr,#403H ; C כתובת פורט Mov a,# 00000100B ; Pc2 אל0כתיבת Movx @dptr,aMov a,#00000101B לרגל זו1כתיבת ;Movx @dptr,a

: תתבצע כך AtoD הפנייה אל רכיב ה

Page 12: פתרון אביב 2009arikporat.com/mahattest/micro_spring_2009.doc · Web view* רכיב PPI 8255 המשמש כממשק בין הממירים למעבד. כניסת ST משמשת

www.arikporat.comפתר : אריה פורת

(.Start )נקראת אצלנו ST א. נשלח לו פקודת המרה בעזרת רגל כדי לוודא סיום המרה )EOC -)End Of Conversion ב. נבדוק את רגל

ג. נקרא את הנתון מהממיר.

:Start המשמשת כ Pc1שליחת פקודת ההמרה בעזרת mov dptr,#403H ; C כתובת פורטmov a,#00000010B ; Pc1 0 אל movx @dptr,a ; mov a,#00000011B ; Pc1 1 החזרת אל הרגלmovx @dptr,a

בדיקה האם הרכיב סיים המרה ?Mov dptr,#403H ; C כתובת פורטAgain:Movx a,@dptr הכנסת מצב הפורט אל האקומולטור ;Anl a,#10000000B שמים מסכה כדי לבדוק מה מצב רגל Pc7 המציינת סיום המרה ;Jnz again - לא הסתיימה ההמרה, חזור לבדוק סיום 0אם האקומולטור איננו ;המרה

קריאת הנתון מהממיר : והחזרת רגלA( הכנסת הנתון שבפורט Pc0) 0הקריאה תתבצע ע"י הורדת רגל הקריאה ל

. 1הקריאה ל

Mov dptr,#402H ; C כתובת פורט Mov a,#00000000B ; PC0 0 אל Movx @dptr,a ; Pc0 אל0הוצאת ה Mov dptr,#400H ; A כתובת פורטMovx a,@dptr הכנסת הנתון ;Mov dptr,#402H ; C כתובת פורט Mov a,#00000001B ; PC0 1 אל Movx @dptr,a ; Pc0 אל0הוצאת ה

5 שאלה

. לכלIO רכיבי 3 ו 8259 מחוברים בקר פסיקה 8086במערכת מיקרו מחשב מבוססת מעבד הרכיבים2 ואילו NMIרכיב קו פסיקה אחד בלבד. רכיב אחד מחובר ישירות לקו הפסיקה

האחרים מחוברים באמצעות בקר הפסיקות לכניסות סמוכות זו לזו. .TYPE = 2AHהנח כי הרכיב עם העדיפות הנמוכה יותר מזוהה עם פסיקה מסוג

תאר באופן סכמאתי את מרכיבי המערכת והחיבורים ביניהם.א..סמן את כל קווי הבקרה וכיווניהם.ציין לאיזה כניסות בבקר הפסיקה מחוברים שני הרכיבים לאיזהTYPE ? משויכת הפסיקה בעדיפות הגבוהה יותר נתון בטבלא להלן, חשב את כתובת 00H – FFHבהנחה שתוכן הזיכרון בכתובת ב.

.NMIהזיכרון המשמשת לאחסון כתובת רוטינת השירות עבור פסיקת ה .TYPE = 2 שמור NMIהערה : לפסיקת

כתובת

00 01 02 03 04 05 …. FC FD FE FF

FC FD FE FF .… 05 04 03 02 01 00 תוכן 5 תשובה

א.

Page 13: פתרון אביב 2009arikporat.com/mahattest/micro_spring_2009.doc · Web view* רכיב PPI 8255 המשמש כממשק בין הממירים למעבד. כניסת ST משמשת

www.arikporat.comפתר : אריה פורת

F000H עשינו פענוח חלקי לכתובת 8259הערה : היות ולא נתונה הכתובת בה נמצא רכיב ה .IOבמרחב ה

הוא בעל3 ( מחוברים לכניסות סמוכות ורכיב Device 3 ו Device 2היות ושני הרכיבים ) IRכי הכניסה IR2 אז הוא חייב להתחבר לכניסה TYPE =2AHהעדיפות הנמוכה והוא בעל

2 )ואליה אף רכיב אינו מחובר ולכן מתחברת לאדמה( ורכיב TYPE=28H חייבת להיות 0 . TYPE=29Hיהיה

.8086הדבר מודגם בטבלה הבאה המתארת את התוכן של ביית וקטור הפסיקה שיש לשלוח ל תלויותD2 עד D0 שהסיביות 8בטבלה רואים שביית וקטור הפסיקות הוא בקפיצות של

.D7 עד D3 והמתכנת רושם רק את הסיביות 8259 של רכיב ה IR7 עד 0IRבכניסות שמספר הפסיקה שלו :2 שבו מתחבר רכיב IR1העדיפות הגבוהה הטבעית היא לכניסה

TYPE=29H לא ניתן למסך1 הוא בעל העדיפות הנמוכה. את פסיקת רכיב 3 . רכיב )לחסום(.

המעגל ייראה כך :

A9528

0 D11

1 D01

2 D9

3 D8

4 D7

5 D6

6 D5

7 D4

0 R I81

1 R I91

2 R I02

3 R I12

4 R I22

5 R I32

6 R I42

7 R I52

0A72

S C1D R

3

R W2

NE / PS61

T N I71

AT N I62

0S A C21

1S A C31

2S A C51

68 08

7 S / E HB43

D R23

K C OL92

0 S Q52

1 S Q42

0T G/ Q R13

1T G/ Q R03

IM N71

TS ET32

XM33

Y DAE R22

KL C91

TS R12

RT N I81

0 DA61

1 DA51

2 DA41

3 DA31

4 DA21

5 DA11

6 DA01

7 DA9

8 DA8

9 DA7

01 DA6

11 DA5

21 DA4

31 DA3

41 DA2

51 DA93

3 S / 6 1A83

4 S / 7 1A73

5 S / 8 1A63

6 S / 9 1A53

0S62

1S72

2S82

C CV

1 eciveD

3 eciveD

2 eciveD

'RW

hctaL retfa 1A oT

'ATNI

0 447

12

45

6A 6 U

23 CA 47

1

23

'oi / m

61A71A

81A

91A

Page 14: פתרון אביב 2009arikporat.com/mahattest/micro_spring_2009.doc · Web view* רכיב PPI 8255 המשמש כממשק בין הממירים למעבד. כניסת ST משמשת

www.arikporat.comפתר : אריה פורת

ב.

2 היא פסיקה מספר NMI כתובות. היות ופסיקת 4בטבלת וקטור הפסיקות תופסת כל פסיקה ( יש את הכתובת0BH עד 8 )או 11 עד 8 ולכן בכתובות 4יש להכפיל את מספר הפסיקה ב

ו10 )היסט( וכתובות IP הן כתובת ה 9 ו 8שבה נמצאת תוכנית השרות של פסיקה זו. כתובות . CS הן כתובת הסיגמנט 11

: 0B0AH . מכאן שהכתובת הפיזית היא : IP=0908H CS=0B0AHמהטבלה : 0908H : שהיא הכתובת

0B0A0 H+ 0908 H

0B9A8H הכתובת הפיזית בה נמצאת הפקודה הראשונה של תוכנית השרות לפסיקה2מספר :

6 שאלה

.ASM 8051נתונה תוכנית שנכתבה ב

DPTR C P1 R3 R2 R1 A 1100H 1 10H 0AH 10H 30H 10H

CLR CSTART:MOV DPH,#10HMOVX A, @DPTR

?MOV R2,AMOV DPH,#20H

?MOV C,P1.1MOVX A,@DPTR

?ADDC A,R2 ?MOV P1.1, C

?MOV DPH,R1MOVX @DPTR,A

?INC DPTR ?DJNZ R3,START

XXXXXXXXXXXX XX

( EXTERNAL RAMנתון תוכן הזיכרון החיצוני )100FH1002H1001H1000HAddress 0F050403 02 01 00Data200FH2002H2001H2000HAddress 1F151413 12 11 10Data300FH3002H3001H3000HAddress 3F35343332 31 30Data

השלם את הטבלה עבור האיטרציה הראשונה. העתק את המקומות המסומנים בטבלאא. למחברת הבחינה.העתק שורה זו בלבד לשורה שבתחתית הטבלא. ?ב

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

Page 15: פתרון אביב 2009arikporat.com/mahattest/micro_spring_2009.doc · Web view* רכיב PPI 8255 המשמש כממשק בין הממירים למעבד. כניסת ST משמשת

www.arikporat.comפתר : אריה פורת

בטבלא למחברת הבחינה.השורה הראשונה בלבדהעתק את 6 תשובה

א. DPTR C P1 R3 R2 R1 A 1100H 1 10H 0AH 10H 30H 10H

0CLR CSTART:

1000HMOV DPH,#10H 00MOVX A, @DPTR

00MOV R2,A2000HMOV DPH,#20H

0MOV C,P1.110HMOVX A,@DPTR

010HADDC A,R210HMOV P1.1, C

3000H30HMOV DPH,R1MOVX @DPTR,A

3001HINC DPTR09HDJNZ R3,START

3001H 0 1009H 00 30H 10H

ב. עם1000H פעמים. היא מחברת בהתאמה את תוכן כתובת 10התוכנית עובדת בלולאה של

2000H 3000 ואת התוצאה שומרת בכתובתH 1001 . לאחר מכן מחברת את תוכןH עם 2001H 3001 ואת התוצאה כותבת בH 1009 . כך עד לכתובתH, 2009H 3009 וH.בהתאמה

כתובות הוא יתווסף אל זוג הכתובות הבאות. בטבלת2במידה והיה נשא בפעולת החיבור של הזיכרון הנתונה לא היה נשא בפעולות החיבור.

.3009H ועד 3000Hטבלת הזיכרון משתנה רק מהכתובות

300FH

300A

3009

3008

3007

3006

3005

3004

3003

3002

3001

3000

Address (HEX)

3F22201E1C1A181614 1220Data (HEX)

בכתובות אלו אין שינויהשורה התחתונה בטבלה תיראה כך:

3001H 0 1009H 00 30H 10H

7 שאלה

.ASM 86נתון קטע מתוכנית בשפת dseg segmentvect db 'CELERON,CENTRINO,XEON'res dw 0h

Page 16: פתרון אביב 2009arikporat.com/mahattest/micro_spring_2009.doc · Web view* רכיב PPI 8255 המשמש כממשק בין הממירים למעבד. כניסת ST משמשת

www.arikporat.comפתר : אריה פורת

dseg ends…..cseg segment

assume cs:cseg, ds:dseg, es:dsegstart: mov ax,dseg

mov ds,axmov s,axmov cx,size vectxor si,sixor di,di ; )1(cld ; )2(

again:mov al,'N'repne scasbjcxz exit1inc alscasbje yesjmp mytest

yes:inc si

mytest:jcxz exit1jmp again

exit1: mov res,si……hltend startcseg ends

תאר בקצרה מה מבצעת התוכנית )מבלי להתייחס לכל פקודה(. מהו ערכו שלא. בסוף התוכנית ?resהמשתנה

( ב:2( , )1 משתנה כאשר מחליפים את ההוראות )resהסבר האם התוצאה ב.mov di,cxstd

.repne scasb כתוב קטע תוכנית המחליף את ההוראה ג.

7 תשובה

: הערה . הפקודהmov cx,size vect( שבתוכנית רשומה הפקודה : 1שתי פקודות מעל הערה ) . בתוכנות האסמבלי שהשתמשתיvect את הגודל של המשתנה cxאומרת להעביר לרגיסטר

. במקרה זה התרגיל איננו בעל משמעות1 את הערך cxכדי לבדוק את התרגיל קיבל רגיסטר הגיונית.

יקבל את כמות התווים שנכתבו למשתנהcxסביר להניח שכותב השאלה התכוון שרגיסטר ( כולל הפסיקים. 15H תווים ) 21 - במקרה שלנו vect)למחרוזת(

האפשרויות שהזכרנו. 2נפתור את השאלה עבור cx=1א. כאשר

' . היות ואצלנו התו הראשוןN הוא 'vect התוכנית בודקת האם התו הראשון של המשתנה ואזrepne scasb מיד אחרי הבדיקה הראשונה של cx=0' אז התוכנית מסתיימת כי Nאיננו '

.0 יהיה res והמשתנה exit1עוברים לתווית

Page 17: פתרון אביב 2009arikporat.com/mahattest/micro_spring_2009.doc · Web view* רכיב PPI 8255 המשמש כממשק בין הממירים למעבד. כניסת ST משמשת

www.arikporat.comפתר : אריה פורת

cx=15Hכאשר ' אחדNO הצירוף של התווים 'vectהתוכנית בודקת כמה פעמים מופיע במחרוזת התווים

.res=1אחרי השני. במקרה זה התוצאה ב.

.cx=1כאשר 'N והיות והוא איננו 'vectכמעט ואין שינוי בתוכנית. התוכנית בודקת את התו השני של

. res=0 וגם עכשיו cx=0התוכנית מסתיימת כי

cx=15Hכאשר במקרה זה התוכנית תבדוק את המחרוזת מהסוף אל ההתחלה, כלומר היא תחפש את הצירוף

.=res 2' ( . במקרה זה ONההפוך של שני התווים ממקודם ) '

תווים נוספים אחרי3 יש בעיה כי התוכנית בודקת גם cx=15H : גם כאשר ניקח הערה !!cx ולא משנה את di מקדמת את רגיסטר scasbשהמחרוזת מסתיימת כי הפקודה

ג. מחליפה את הפקודות הבאות:repne scasb הפקודה א.

Again: Jcxz sofScasbJz sofDec cxjmp again

sof: 8 שאלה

.ASM 86נתונה תוכנית בשפת DI DX SI CX BX AX 100H 100H 100H 0AH 0AH 00Hמצב התחלתי / התוכנית

BEG: XOR AX,AX IN AL,DX MOV SI,DX MOV [SI],AL

? MOV DI,AX MOV BL,2 DIV BL MOV BL,ALTEST1: MOV AX,DI

? DIV BL CMP AH,0 JNZ NEXT

? INC SI MOV [SI],BL

?NEXT: DEC BL JNZ TEST1

? ADD DX,10H ? LOOP BEG

XX XX XX XX XX XX

Page 18: פתרון אביב 2009arikporat.com/mahattest/micro_spring_2009.doc · Web view* רכיב PPI 8255 המשמש כממשק בין הממירים למעבד. כניסת ST משמשת

www.arikporat.comפתר : אריה פורת

נתון להלן :I/Oתוכן מרחב ה

0190.......... 0120 0110 0100 HEXPort no. 29.......... 22 21 20DecimalDATA

השלם את החסר בטבלה עבור איטרציה ראשונה. העתק את המקומות המסומניםא..הבחינה העתק שורה זו בלבד למחברתבטבלה ב ? לשורה בתחתית הטבלה.

תאר בקצרה מה מבצעת התוכנית )מבלי להתייחס לכל פקודה(. ציין את תוכן הזיכרוןב. בסוף התוכנית.100H – 200Hבכתובות

בתחילת התוכנית. XOR AX,AXהסבר למה נחוצה ההוראה ג.

8 פתרון שאלה

א.

DI DX SI CX BX AX 100H100H100H0AH 0AH 00Hמצב התחלתי / התוכנית

00BEG: XOR AX,AX0014H IN AL,DX

100H MOV SI,DX MOV [SI],AL

0014H MOV DI,AX0002H MOV BL,2

000AH DIV BL000AH MOV BL,AL

0014HTEST1: MOV AX,DI0014H DIV BL

CMP AH,0 JNZ NEXT

105H INC SI MOV [SI],BL

0000HNEXT: DEC BL JNZ TEST1

110H ADD DX,10H0009H LOOP BEG

XX XX XX XX XX XX

השורה האחרונה בטבלה תהיה:

0014H 110H 105H 0009H0000H 0014H

ב. ובכתובות לאחר מכן100H , מכניסה אותו לזיכרון בכתובת 100Hהתוכנית קולטת נתון מפורט

(.0רושמת את כל המספרים השלמים המתחלקים בנתון שהוכנס ללא שארית )עם שארית בזיכרון ובכתובות110H ורושמת את הנתון בכתובת 110Hלאחר מכן קולטת נתון מפורט

Page 19: פתרון אביב 2009arikporat.com/mahattest/micro_spring_2009.doc · Web view* רכיב PPI 8255 המשמש כממשק בין הממירים למעבד. כניסת ST משמשת

www.arikporat.comפתר : אריה פורת

העוקבות הבאות את המספרים המתחלקים בנתון ללא שארית. התוכנית מתבצעת בלולאה של .190H פעמים כאשר הפורט האחרון שמכניס נתון הוא פורט 10

הנתון שהיה מקודם בכתובת זו (. בטבלה מתוארים הנתונים רק עבור– Xהטבלה נראית כך ) חלק מהכתובות.

10F10e10d10c10b10a109108107106105104103102101100כתובת בהקס

הX XXXXXXXX X010204050A14הנתון

בהקסה

11F11e11d11c11b11a119118117116115114113112111110כתובת בהקס

הX XXXXXXXX XX X01030715הנתון

בהקסה

12F12e12d12c12b12a129128127126125124123122121120כתובת בהקס

הX XXXXXXXX XX X01020B16הנתון

בהקסה

כתובתבהקס

ה הנתוןבהקס

ה19F19e19d19c19b19a199198197196195194193192191190כתובת

בהקסה

X XXXXXXXX XX XX X0129הנתון בהקס

הג.

נתון מפורט קלט AL . בפקודה הבאה מעבירים לרגיסטר AXהפקודה מאפסת את רגיסטר ויש לדאוג שהחלקBL ב AX כי אח"כ מחלקים את 0 יהיה AHאבל יש לדאוג שברגיסטר

.0 , יהיה AH , דהיינו AXהגבוה של והתוכנית הייתה ממשיכה לעבוד כרגיל.XOR AH,AHניתן היה במקום פקודה זו לרשום

9 שאלה

.Cנתון קטע תוכנית בשפת #include <stdio.h>#define X 20#define Y 10void main)void({int matrix [X][Y],s[X];

Page 20: פתרון אביב 2009arikporat.com/mahattest/micro_spring_2009.doc · Web view* רכיב PPI 8255 המשמש כממשק בין הממירים למעבד. כניסת ST משמשת

www.arikporat.comפתר : אריה פורת

int i,j,inputno;float v[X];for )i=0; i<X ; i++(

{j=0;s[i]=j;while) j < Y-1 ( {

printf)"enter a number"(;scanf)"%d",&inputno(;if) inputno < 0( break;

matrix[i][++j] = inputno;s[i]+=inputno;v[i] = )float( s[i] / j ; // )1(}

matrix[i][0] = s[i]; // )2(}

}ענה על השאלות הבאות :

תאר בקצרה מה מבצעת התוכנית )מבלי להתייחס לכל פקודה(.א.( ?2( לעיל אחרי ההוראה )1כיצד תושפע התוכנית באם נכתוב את ההוראה )ב. וציין היכן מתבצע בתוכנית .castingהסבר את המושג ג.

9 תשובה

א. מטיפוס שלם.20*10 - של matrix – מערכים . מערך אחד דו מימדי 3התוכנית מגדירה

איברים20 - בן v – - גם הוא מטיפוס שלם ומערך שלישי s – איברים 20מערך שני בן מטיפוס ממשי.

9 ( , כל פעם matrix פעם )עבור כל אחת מהשורות במערך 20התוכנית קולטת בלולאה של 0 מספרים אל השורה 9 ומכניסה אותם למערך הראשון . – שאינם שליליים –מספרים

האיבר הראשון יקבל בסיום כל לולאה את סכום–במערך הראשון )החל מהאיבר השני )שוב - החל מהאיבר השני (1 מספרים לשורה מספר 9המספרים שהוכנסו בשורה (, אח"כ

וכך הלאה. במיקוםs המספרים שנקלט )עבור כל שורה ( מסוכם עם קודמו ונשמר במערך 9כל אחד מ

המספרים לכל שורה יש בכל9 . בסיום הכנסת כל matrixהמתאים לשורה הנקלטת במערך .matrix את סכום האיברים המתאימים לשורה שבמערך sאיבר של המערך

, לאיבר המתאים ,v נכנס למערך matrixעבור כל המספרים הנכנסים בכל שורה של המערך ממוצע המספרים שהוכנסו באותה השורה.

של כל שורה( , מקבל0 )האיבר בעמודה matrixכאמור האיבר הראשון של כל שורה במערך את סכום המספרים של אותה השורה.

הכנסת מספר שלילי - מסיימת את לולאת קליטת המספרים ויוצאת מהתוכנית.ב.

( לא משנה את התוצאות הסופיות שבטבלה. הסיבה לכך היא2( עם שורה )1החלפת שורה ) שבסיום כלs[i] תלויים ב matrix של כל שורה במערך 0 וגם האיבר בעמודה vשגם המערך

משתנה עבור כל מספרv[i]שורה יש בו ערך שתלוי במספרים שהכנסנו. בתוכנית המקורית matrix של כל שורה ב 0שמכניסים לשורה ובסיום הכנסת המספרים לשורה מסוימת האיבר

מקבל את הסכום של השורה. פעמים ובסיום9 משתנה matrix של כל שורה ב 0במקרה שמחליפים בין השורות האיבר

את הסכום ואז מחושב ממוצע המספרים ומוכנס לאיבר המתאים במערך0השורה יש באיבר v .

Page 21: פתרון אביב 2009arikporat.com/mahattest/micro_spring_2009.doc · Web view* רכיב PPI 8255 המשמש כממשק בין הממירים למעבד. כניסת ST משמשת

www.arikporat.comפתר : אריה פורת

0רק במידה ונכניס מספר שלילי יהיה שינוי . הכנסת מספר שלילי במקרה הראשון משאירה יש את הממוצע עדv של אותה שורה שהכנסנו ואילו באיבר המתאים של המערך 0בעמודה

של אותה שורה יהיה0להכנסת המספר השלילי. במקרה של ההפיכה בין השורות אז בעמודה באיבר המתאים לשורה שב0 יהיה vסכום המספרים עד הכנסת המספר השלילי ואילו במערך

matrix.

ג. פירושו בעברית הוא ליהוק. כאשר נותנים תפקיד לשחקן תיאטרון ואומרים לוcastingהמושג

זה נקרא ללהק.–שהוא יגלם תפקיד כלשהו בהצגה . אם לא היינו ;v[i] = )float( s[i] / jכדי למצוא את הממוצע של כל שורה רשום

מטיפוס שלם החלוקהj הוא מטיפוס שלם וגם s[i]( אז היות ו (floatרושמים את המילה היא הייתה החלק השלם של החלוקהv[i]ביניהם נותנת מספר שלם ואז התוצאה שמועברת ל

. ע"י הוספת4.000 לדוגמא : 000 היינו מקבלים בחלק של השבר v[i]. וב ללא השבר הוא10 ואז אם ערכו היה לדוגמא float לתפקיד s[i] את – מלהקים –( אומרים (floatהמילה

לטיפוס שלם התוצאה תהיה– float – . כאשר מבצעים חלוקה בין טיפוס ממשי 10.000יהיה תמיד לכיוון הטיפוס "הגדול" יותר, הווה אומר התוצאה תהיה בממשי ואז יעבור מספר ממשי

. v[i]אל

10 שאלה

.Cבכל אחד משלושת הסעיפים הבאים נתון קטע קוד אחר של תוכניות שונות בשפת .הסבר בקצרה מה מבצע כל קטע תוכנית.רשום את הפלט של כל תוכנית עבור הקלט הנתון עבורה

אין קשר בין הסעיפים.הערה :

א. #include <stdio.h>void main)coid({int vect[20],x,i;int size = 0x14;int count=0;for)i=0; i<size ; i++(

{scanf)"%d", &vect[i](;x=vect[i];if ) x<=0x00( *)vect+i(=0;if ) x>=0x64( *)i+vect(=100;else count++;}

printf)"\n count = %d",count(;for ) i=0 ; i<size ; i++(printf )"\n vect)%d( = %d",i,vect[i](;}

הנח שהנתונים הנקלטים )משמאל לימין( הם :1, 3, 5, 7, 9, 0, -2, -4, -6, -8, 101, 303, 5, 7, 9, 0, -2, -4, -6, -8

ב. int calc )int x, int y(

Page 22: פתרון אביב 2009arikporat.com/mahattest/micro_spring_2009.doc · Web view* רכיב PPI 8255 המשמש כממשק בין הממירים למעבד. כניסת ST משמשת

www.arikporat.comפתר : אריה פורת

{return))x>y( ? x:y(;}

x = 100 , y = 20 הנח שהנתונים הנקלטים הם :

ג. #include <stdio.h>main) ({int res = 0;puts )" Type some keys and then press <ENTER>"(;while)getchar) ( !='\n'(

++res;printf)"\n res = %d",res(;}

Pentium586 הם : ENTERהנח שהנתונים הנקלטים במקלדת לפני לחיצת ה

Page 23: פתרון אביב 2009arikporat.com/mahattest/micro_spring_2009.doc · Web view* רכיב PPI 8255 המשמש כממשק בין הממירים למעבד. כניסת ST משמשת

www.arikporat.comפתר : אריה פורת

10 תשובה

( - מספרים ומכניסה אותם אל המערךH14 - )20התוכנית קולטת מהמשתמש א.vect 100 או גדול מ 0 . לאחר ההכנסה למערך היא בודקת האם המספר קטן מ- 64H) במקום המספר השלילי. אם0( . אם המספר שלילי אז היא מציבה במערך

. אם המספר שנקלט איננו100 היא מציבה במקומו את המספר 100המספר גדול מ ומראה כמה מספרים ) שליליים או חיוביים1 גדל ב count אז המשתנה 100גדול מ

הוכנסו .100הקטנים מ הפלט עבור הקלט הנתון יהיה :

count = 18vect)0(=1vect)1(=3vect)2(=5vect)3(=7vect)4(=9vect)5(=0vect)6(=0vect)7(=0vect)8(=0vect)9(=0vect)10(=100vect)11(=100

vect)12(=5 vect)13(=7 vect)14(=9 vect)15(=0 vect)16(=0 vect)17(=0 vect)18(=0 vect)19(=0

ב. calc משתנים מטיפוס שלם - 2 היא פונקציה המקבלת x ו yומחזירה ערך מטיפוס -

ואם לא הערךx ? אם כן הערך המוחזר הוא y גדול מ xשלם. הפונקציה בודקת האם הגדול מבין השניים.100 . במקרה של הקלט שלנו היא תחזיר את הערך yהמוחזר הוא

ג. -res –הפונקציה קולטת מהמשתמש תווים בלולאה ועבור כל תו הנכנס היא מקדמת משתנה

. ENTER . התוכנית מסתיימת כאשר המשתמש מקיש על התו 1ב .res = 10בדוגמא שלנו ההדפסה תהיה :