25.02.2015 Views

บทที่ 1 บทนำ

บทที่ 1 บทนำ

บทที่ 1 บทนำ

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>บทที่</strong> 1<br />

บทนํา<br />

ไมโครโพรเซสเซอรเปนอุปกรณอิเล็กทรอนิกสที่มีการทํางานแบบดิจิตอล ซึ่งนับวาเปนสวนสําคัญที่สุด<br />

ของเครื่องคอมพิวเตอร โดยจะทําหนาที่เปนเหมือนมันสมองของเครื่องคอมพิวเตอร เนื่องจากไมโครโพรเซสเซอรก็คือ<br />

ซีพียู (CPU – Central Processing Unit) หรือหนวยประมวลผลกลางของเครื่องคอมพิวเตอรนั่นเอง การจะเริ่ม<br />

เรียนรูเกี่ยวกับไมโครโพรเซสเซอรจึงจําเปนตองทําความเขาใจกับระบบตัวเลขเสียกอน<br />

1.1 ระบบตัวเลข (Number System)<br />

ระบบตัวเลขที่ใชกันโดยทั่วไปในชีวิตประจําวัน คือเลขฐานสิบ (Decimal Number System) แตขอมูลที่<br />

ประมวลผลโดยคอมพิวเตอรจะถูกเขารหัส (Encode) ดวยวิธีการตางๆ เครื่องคอมพิวเตอรจะใชระบบตัวเลขในการ<br />

แทนคาขอมูลและคําสั่งตางๆ ระบบตัวเลขที่เครื่องคอมพิวเตอรสามารถเขาใจไดคือเลขฐานสอง (Binary Number<br />

System) ซึ่งมีความสัมพันธกับเลขฐานแปด (Octal Number System) และเลขฐานสิบหก (Hexadecimal<br />

Number System)<br />

1.1.1 ระบบเลขฐานสิบ (Decimal Number System)<br />

เลขฐานสิบ เปนตัวเลขที่เราใชในชีวิตประจําวัน คําวา “ดิจิต (Digit)” ยอมาจากคําวา digitus ในภาษา<br />

ลาติน ซึ่งแปลวานิ้วมือซึ่งมี 10 นิ้ว เลขฐานสิบจะใชสัญลักษณเปนเลขอราบิค (Arabic) จํานวน 10 ตัว คือ 0, 1, 2,<br />

3, 4, 5, 6, 7, 8, 9 จํานวนของตัวเลขที่แตกตางกันนี้ เราเรียกวา ฐาน (Base) ของระบบตัวเลขนั้นๆ ดังนั้นในระบบ<br />

เลขฐานสิบ จึงมีตัวเลขที่แตกตางกัน 10 ตัวเลข<br />

ในการนําดิจิตตางๆ เหลานี้มาเขียนรวมกันเพื่อแสดงแทนคาตางๆ นั้น ไดมีการกําหนดคาประจําหลักของ<br />

ดิจิตในตําแหนงตางๆ เรียกวา Position weight โดยดิจิตที่อยูในตําแหนงขวาสุด จะมีความสําคัญนอยที่สุด และ<br />

เรียกวา Least Significant Digit และดิจิตในตําแหนงถัดมาจะมีคาเพิ่มขึ้นตําแหนงละ 10 เทา (คายกกําลังของ 10<br />

จะเพิ่มขึ้นตําแหนงละ 1 ตามลําดับ) และดิจิตที่อยูในตําแหนงซายสุดจะมีลําดับความสําคัญมากที่สุด และเรียกวา<br />

Most Significant Digit<br />

สัญลักษณที่ใชในเลขฐานสิบนั้น จะมีคาเพิ่มขึ้นทีละ 1 หนวย โดยคาที่นอยที่สุด คือ 0 และเพิ่มขึ้นเปน 1,<br />

2, 3, …. ไปจนถึง 9 และหลังจากนั้นเมื่อมีคาเพิ่มขึ้นอีก 1 หนวย เลข 9 ก็จะเปลี่ยนไปเปนเลข 0 พรอมกับมีตัวทด<br />

(Carry) ซึ่งเปนคาที่จะตองนําไปเปนดิจิตในหลักสิบ นั่นคือเลข 10<br />

สําหรับเลขเศษสวนหรือทศนิยมที่มีเครื่องหมายจุลภาค (.) คั่นระหวางเลขจํานวนเต็มกับเลขทศนิยม คา<br />

ประจําตําแหนงของดิจิตที่อยูหลังจุดทศนิยมก็จะมีคาลดลงตําแหนงละ 10 เทา เชนกัน (คายกกําลังของสิบจะลดลง<br />

ตําแหนงละ 1 นับจากจุดทศนิยม ตามลําดับ) เชน<br />

2 1 0 −1<br />

−2<br />

891.36 = (8 × 10 ) + (9 × 10 ) + (1×<br />

10 ) + (3 × 10 ) + (6 × 10 )<br />

1


1.1.2 ระบบเลขฐานสอง (Binary Number System)<br />

เนื่องจากเครื่องคอมพิวเตอรแบบดิจิตอลไดรับการออกแบบมาจากลอจิกเกต (Logic Gates) เปน<br />

จํานวนมาก และการทํางานของเกต (Gates) เหลานี้มีเพียง 2 สถานะ คือ 0 หรือ 1 (OFF หรือ ON) จึงทําใหเครื่อง<br />

คอมพิวเตอรไมสามารถเขาใจเลขฐานสิบที่ใชโดยทั่วไปได ดังนั้นการแทนคาตางๆ ในระบบคอมพิวเตอรจึงใชกลุมของ<br />

เลข 0 และ 1 เปนสําคัญ สําหรับคาประจําตําแหนงของกลุมเลขฐานสอง จะมีหลักการกําหนดเชนเดียวกับเลขฐานสิบ<br />

เพียงแตเมื่อมีเลขฐานเปนเลข 2 คาประจําตําแหนงก็จะเพิ่มขึ้นหรือลดลงตําแหนงละ 2 เทา<br />

4 3 2 1 0<br />

ตัวอยางเชน 10010 = (1 × 2 ) + (0 × 2 ) + (0 × 2 ) + (1 × 2 ) + (0 × 2 ) = 10<br />

การที่จะทําใหคอมพิวเตอรเขาใจอักขระไดมากขึ้น จะตองมีการผสมเลขฐาน 2 เขาดวยกันเปนกลุม เชน<br />

• เลขฐานสอง 1 หลักสามารถแทนคาได 2 คา (0, 1)<br />

• เลขฐานสอง 2 หลักสามารถแทนคาได 4 คา (00, 01, 10, 11)<br />

• เลขฐานสอง 3 หลักสามารถแทนคาได 8 คา (000, 001, 010, 011, 100, 101, 110, 111)<br />

• เลขฐานสอง 4 หลักสามารถแทนคาได 16 คา (0000, 0001, … , 1111)<br />

• เลขฐานสอง 5 หลักสามารถแทนคาได 32 คา (00000, 0001, … , 11111)<br />

หรือเราสามารถใชสูตรคํานวณไดวา 2 n โดยที่ n คือจํานวนหลักของเลขฐานสอง จํานวนหลักของเลขฐานสอง<br />

นั้นอาจจะใชคําเรียกวาบิต (Bit) ก็ได เชน คอมพิวเตอรขนาด 8 บิต หมายถึงสามารถประมวลผลขอมูลเลขฐานสองได<br />

ทีละ 8 หลัก (สามารถแทนคาได 2 8 = 256 คา)<br />

1.1.2.1 Bit(s) - บิต<br />

บิตเปนหนวยที่เล็กเกือบที่สุดในหนวยการทํางานของเครื่องคอมพิวเตอร ขอมูลในบิตจะมีคา<br />

เปน 0 หรือ 1 เทานั้น โดยตัวเลข 0 จะหมายถึง OFF และเลข 1 จะหมายถึง ON และเมื่อรวมกลุมของคา 0 และ 1<br />

จํานวน 8 บิต เขาดวยกันจะเทากับ 1 ไบต (Byte) ซึ่งคานี้จะถูกแปลงเปนคาที่คอมพิวเตอรเขาใจ และสามารถทํางาน<br />

ได โดยสามารถทําการแปลงคาไดทั้งในระบบเลขฐาน 2 หรือเลขฐาน 16<br />

1.1.2.2 Byte(s) - ไบต<br />

ไบตเปนการเขียนรหัสเลขฐานสองจํานวน 8 บิตรวมเปนกลุม เพื่อใหคอมพิวเตอรสามารถเขาใจ<br />

ตัวอักษรตางๆ ในรูปแบบเดียวกัน โดยที่ขอมูล 1 ตัวอักษรสามารถแสดงผลดวยรหัสขนาด 1 ไบต อยางไรตาม<br />

ชุดคําสั่งอาจจะตองการขอมูลมากกวา 1 ไบต ดังนั้นไบตจึงถือวาเปนหนวยนับมาตรฐานของขอมูลในระบบคอมพิวเตอร<br />

1.1.2.3 Word - เวิรด<br />

เวิรด เปนหนวยนับของขอมูลที่สงภายในเครื่องคอมพิวเตอร เวิรดจะมีขนาดแตกตางกัน คือมี<br />

ขนาดตั้งแต 8 บิต จนถึง 64 บิต ทั้งนี้ขึ้นอยูกับความสามารถในการสงขอมูลภายในเครื่องคอมพิวเตอร ดังนั้นชุดคําสั่ง<br />

ตางๆ ในเครื่องคอมพิวเตอรแตละรุนจะมีความยาวของเวิรดไมเทากัน<br />

2


1.1.3 ระบบเลขฐานแปด (Octal Number System)<br />

เลขฐานแปด เปนระบบตัวเลขอีกระบบหนึ่งที่มีความสําคัญในการศึกษาวงจรดิจิตอล ระบบเลขฐานแปดจะ<br />

มีเลขฐานเทากับ 8 และมีสัญลักษณตัวเลขที่ใชแทนคาอยู 8 ตัว คือ 0, 1, 2, 3, 4, 5, 6, 7 และคาที่เพิ่มขึ้น 1 หนวยถัด<br />

จากเลข 7 ก็จะถูกแสดงคาดวยเลข 2 ดิจิต คือ 10 สําหรับคาประจําตําแหนงของกลุมเลขฐานแปด จะมีหลักการกําหนด<br />

เชนเดียวกับเลขฐานสิบ เพียงแตเมื่อมีเลขฐานเปนเลข 8 คาประจําตําแหนงก็จะเพิ่มขึ้น หรือลดลงตําแหนงละ 8 เทา<br />

2 1 0<br />

ตัวอยางเชน 138 = (1 × 8 ) + (3 × 8 ) + (7×<br />

8 ) 95<br />

8 =<br />

1.1.4 ระบบเลขฐานสิบหก (Hexadecimal Number System)<br />

นับตั้งแตมีการพัฒนาโพรเซสเซอร (Processor) ขนาด 16 บิต ขึ้นมา ทําใหชุดคําสั่งที่ใชในการสั่งงานมี<br />

ความยาวถึง 16 บิต ดังนั้นเมื่อเขียนในรูปเลขฐานสองทําใหยากตอการเขาใจ และเลขฐานสิบทําการแปลงเปน<br />

เลขฐานสองไดลําบากจึงแบงกลุมของเลขฐานสองในชุดคําสั่งยาว 16 บิต เปน 4 กลุมๆ ละ 4 บิต แทนดวยตัวเลขหรือ<br />

อักษรเพียงตัวเดียว เรียกวาระบบเลขฐานสิบหก ในปจจุบันคอมพิวเตอรมีการใชกลุมของฐานสองตั้งแต 16, 32 หรือ<br />

แมกระทั่ง 64 บิต ในการแทนขอมูลหรือคําสั่งเพียงคําสั่งเดียว เพื่อเพิ่มประสิทธิภาพใหเกิดความรวดเร็วในการทํางาน<br />

มากยิ่งขึ้น ชุดคําสั่งตางๆ จึงมักใชเลขฐานสิบหก<br />

เลขฐานสิบหกสามารถแสดงไดดวยเลข 0,1,2,3,…,9,A,B,C,D,E และ F และคาประจําตําแหนงของ<br />

กลุมเลขฐานสิบหก มีหลักการกําหนดเชนเดียวกับเลขฐานสิบ เพียงแตเมื่อมีเลขฐานเปนเลข 16 คาประจําตําแหนงก็จะ<br />

เพิ่มขึ้น หรือลดลงตําแหนงละ 16 เทา เชน<br />

2<br />

1BD16 = (1 × 16 ) + (11×<br />

16 ) + (13 × 16 ) = 445<br />

ตารางที่ 1 – 1 ตารางเปรียบเทียบคาของเลขฐานตางๆ<br />

1<br />

เลขฐาน10 เลขฐาน 2 เลขฐาน 8 เลขฐาน 16<br />

0 0000 0 0<br />

1 0001 1 1<br />

2 0010 2 2<br />

3 0011 3 3<br />

4 0100 4 4<br />

5 0101 5 5<br />

6 0110 6 6<br />

7 0111 7 7<br />

8 1000 10 8<br />

9 1001 11 9<br />

10 1010 12 A<br />

11 1011 13 B<br />

12 1100 14 C<br />

13 1101 15 D<br />

14 1110 16 E<br />

15 1111 17 F<br />

16 10000 20 10<br />

0<br />

3


1.1.5 รหัส BCD (Binary Coded Decimal)<br />

ในการที่จะศึกษาระบบดิจิตอลโดยคงเลขฐานสิบไว เราสามารถทําไดโดยการนําเลขฐานสิบมาเขารหัสเปน<br />

เลขฐานสอง ที่เรียกวา BCD (Binary Coded Decimal) รหัส BCD จะแทนคาเลขฐานสิบ 1 หลัก ดวย<br />

เลขฐานสองจํานวน 4 บิต ตัวอยางเชน<br />

78210<br />

= 0111 1000 0010<br />

1.1.6 รหัสสําหรับหลอดแบบ 7 ขั้ว (7 – Segment Display)<br />

การที่หลอดแบบ 7 ขั้ว จะสามารถแสดงตัวเลขไดตั้งแต 0 – 9 จําเปนตองมีรหัสโดยเฉพาะ เพื่อที่จะจาย<br />

สัญญาณใหแตละเซ็กเมตไดตรงตามตัวเลขที่ตองการ ตารางที่ 1 – 2 แสดงการเปรียบเทียบรหัสแบบตางๆ<br />

ตารางที่ 1 – 2 Common Code<br />

1.1.7 รหัสมาตรฐาน ASCII<br />

การเขารหัส (Encode) เพื่อแสดงขอมูลหรือความหมายที่ตรงกันระหวางเครื่องคอมพิวเตอรมีหลายวิธี วิธีที่<br />

ไดรับความนิยมมากที่สุด คือรหัสมาตรฐาน ASCII (American Standard Code for Information<br />

interchange) โดยรหัสแบบนี้ใชขอมูลจํานวน 7 บิตแทนคาตัวอักษรได 128 อักษร ตอมามีการขยายใหรหัสนี้มีจํานวน<br />

บิตเพิ่มขึ้นเปน 8 บิต เพื่อใหสอดคลองกับเครื่องไมโครคอมพิวเตอร ที่มีจํานวนบิต 8 บิตเชนกัน รหัส ASCII ที่ปรับปรุง<br />

แลวจึงสามารถแสดงผลได 256 ตัวอักษร สําหรับรหัสเพื่อแสดงผลเปนภาษาไทยก็ใชรหัส ASCII เชนกัน โดยเพิ่มเติม<br />

ตัวอักษรภาษาไทยเขาไปในรหัสนี้ (ในชองสัญลักษณของภาพ Graphics) และใชชื่อวารหัส สมอ. นอกจากนั้นยังมีรหัส<br />

แบบอื่นๆ เชน รหัสมาตรฐาน EBCDIC (Extended Binary Coded Decimal Interchange Code) พัฒนาโดย<br />

บริษัท IBM (International Business Machine Corp.)<br />

4


ตารางที่ 1 – 3 ตารางรหัส ASCII<br />

เลขฐาน10 เลขฐาน16 ตัวอักษร เลขฐาน10 เลขฐาน16 ตัวอักษร เลขฐาน10 เลขฐาน16 ตัวอักษร<br />

0 00 NUL 48 30 0 96 60 ‘<br />

1 01 SOH 49 31 1 97 61 a<br />

2 02 STX 50 32 2 98 62 b<br />

3 03 ETX 51 33 3 99 63 c<br />

4 04 EOT 52 34 4 100 64 d<br />

5 05 ENQ 53 35 5 101 65 e<br />

6 06 ACK 54 36 6 102 66 f<br />

7 07 BEL 55 37 7 103 67 g<br />

8 08 BS 56 38 8 104 68 h<br />

9 09 HT 57 39 9 105 69 I<br />

10 0A LF 58 3A : 106 6A j<br />

11 0B VT 59 3B ; 107 6B k<br />

12 0C FF 60 3C < 108 6C l<br />

13 0D CR 61 3D = 109 6D m<br />

14 0E SO 62 3E > 110 6E n<br />

15 0F SI 63 3F ? 111 6F o<br />

16 10 DLE 64 40 @ 112 70 p<br />

17 11 DC1 65 41 A 113 71 q<br />

18 12 DC2 66 42 B 114 72 r<br />

19 13 DC3 67 43 C 115 73 s<br />

20 14 DC4 68 44 D 116 74 t<br />

21 15 NAK 69 45 E 117 75 u<br />

22 16 SYN 70 46 F 118 76 v<br />

23 17 ETB 71 47 G 119 77 w<br />

24 18 CAN 72 48 H 120 78 x<br />

25 19 RM 73 49 I 121 79 y<br />

26 1A SUB 74 4A J 122 7A z<br />

27 1B ESC 75 4B K 123 7B {<br />

28 1C FS 76 4C L 124 7C ⎟<br />

29 1D GS 77 4D M 125 7D }<br />

30 1E RS 78 4E N 126 7E ~<br />

31 1F US 78 4F O 127 7F <br />

32 20 SP 80 50 P<br />

33 21 ! 81 51 Q<br />

34 22 “ 82 52 R<br />

35 23 # 83 53 S<br />

36 24 $ 84 54 T<br />

37 25 % 85 55 U<br />

38 26 & 86 56 V<br />

39 27 ‘ 87 57 W<br />

40 28 ( 88 58 X<br />

41 29 ) 89 59 Y<br />

42 2A * 90 5A Z<br />

43 2B + 91 5B [<br />

44 2C , 92 5C \<br />

45 2D - 93 5D ]<br />

46 2E . 94 5E ^<br />

47 2F / 95 5F _<br />

5


1.2 การคํานวณเลขฐาน<br />

1.2.1 การบวกเลขฐานสอง<br />

ตารางคาความจริง สําหรับการบวกเลขฐานสอง และตัวทด (C IN ) ที่ไดจากการบวกเลขหลักทางขวามือ<br />

แสดงตามรูปที่ 1 – 1 พรอมทั้งแสดงตัวอยางของการบวกเลขฐานสอง จํานวน 8 บิต<br />

รูปที่ 1 – 1 การบวกเลขฐานสอง<br />

1.2.2 2’s Complement<br />

ในการเขียนตัวเลขเพื่อแสดงปริมาณทางกายภาพ เชนคาอุณหภูมิ สามารถใชเครื่องหมาย + และ<br />

เครื่องหมาย – วางไวหนาตัวเลข เพื่อระบุวาคาตัวเลขนั้นเปนบวกหรือเปนลบ อยางไรก็ตามถาตองการที่จะจัดเก็บคา<br />

เหลานี้ไวในหนวยความจําของเครื่องคอมพิวเตอร จะเริ่มพบกับปญหา ทั้งนี้เนื่องจากคอมพิวเตอรสามารถจดจําไดเพียง<br />

เลข 0 และเลข 1 เทานั้น วิธีการโดยทั่วไปในการแสดงเครื่องหมายกํากับตัวเลขคือจะใชบิตที่มีความสําคัญมากที่สุด<br />

(Most Significant bit) ซึ่งอยูทางซายมือสุดของเวิรดขอมูล เปน sign bit สวนบิตที่เหลือจะเปนขอมูลของตัว<br />

เลขที่แสดงปริมาณ เชนคอมพิวเตอรขนาด 8 bit-word จะใชบิตที่ 7 (MSB) เปน sign bit สวนขอมูล 7 บิตที่<br />

เหลือจะเปนเลขฐานสอง ซึ่งแสดงขอมูลปริมาณ ซึ่งมักจะกําหนดให sign bit = 0 เมื่อขอมูลนั้นมีคาเปนจํานวนบวก<br />

และ sign bit = 1 เมื่อขอมูลนั้นมีคาเปนจํานวนลบ<br />

เพื่อใหแสดงปริมาณไดถูกตอง และสอดคลองกับการใช sign bit จะตองทําใหเลขจํานวนนั้นเปน<br />

เลขฐานสอง ที่เรียกวา 2’s Complement โดยการเปลี่ยนขอมูลเดิมจาก 0 ใหเปน 1 และเปลี่ยนจากเลข 1 ใหเปน 0<br />

และบวกดวย 1 เชน + 710<br />

คือ 0000 0111 สวน −710<br />

คือ 1111 1001 เปนตน<br />

รูปที่ 1 – 2 เลขจํานวนเต็มบวกและจํานวนเต็มลบ แสดงแทนดวย sign bit และ 2’s Complement<br />

6


ดังนั้น สําหรับขอมูลขนาด 8 บิต จะสามารถแสดงคาปริมาณได 2 8 = 256 คา ซึ่งเมื่อมีทั้งคาบวกและลบ จะ<br />

สามารถแสดงคาปริมาณตางๆ ไดตั้งแต – 128 ถึง + 127 ดังรูป<br />

รูปที่ 1 – 3 คาสูงสุดและต่ําสุดของขอมูลขนาด 8 บิต<br />

รูปที่ 1 – 4 แสดงตัวอยางการบวกเลขฐานสองที่มี sign bit โดยรูป (a) คือการบวก 13 กับ 9 รูป (b) คือ<br />

การบวก 13 กับ – 9 รูป (c) คือการบวก 9 กับ – 13 และรูป (d) คือการบวก – 9 กับ – 13<br />

รูปที่ 1 – 4 การบวกเลขฐานสอง<br />

7


1.2.3 การลบเลขฐานสอง<br />

รูปที่ 1 – 5 (a) เปนตารางคาความจริงของการลบเลขฐานสอง มีวิธีการที่นิยมใชในการลบเลขฐานสอง<br />

อยู 2 วิธี คือทําการทดดวยดินสอ (รูป (b)) และการบวกเลขตัวตั้งดวย 2’s Complement ของเลขตัวลบ (รูป (c) และ<br />

(d)) ซึ่งหากเลขตัวตั้งในหลักนั้นมีคานอยกวางเลขตัวลบ จะตองตองมีการขอยืมคามาจากหลักกอนหนา (B IN ) มาใช<br />

รูปที่ 1 – 5 การลบเลขฐานสอง<br />

ปญหาประการหนึ่งที่อาจเกิดขึ้นในการบวกหรือลบเลขฐานสองก็คือการเกิด overflow และ underflow ถา<br />

ปริมาณของผลลัพธที่ไดมีคามากกวาจํานวนบิตที่จะรองรับได จะเรียกวา “overflow” ซึ่งทําใหผลลัพธที่ไดมีคาผิดไป เชน ถา<br />

บวก 0100 1001 เขากับ 0110 1101 จะได 1011 0110 จะเห็นไดวาเลขตั้วตั้งทั้งสองมี sign bit เปน 0 แสดงวามีคา<br />

เปนบวก แตผลลัพธที่ได มี sign bit เปน 1 แสดงวามีคาเปนลบ จึงเห็นไดอยางชัดเจนวาผลลัพธที่ไดผิด ทั้งนี้เนื่องจาก<br />

ผลลัพธที่ไดมีคามากกวาจํานวนบิตที่รองรับได และในทํานองเดียวกันถาบวกเลขจํานวนลบ 2 คาที่ทําใหผลลัพธที่ไดมีคา<br />

นอยกวา – 128 ก็จะเกิด “underflow” ซึ่งทําใหผลลัพธที่ไดมีคาผิด<br />

1.2.4 การคูณและหารเลขฐานสอง<br />

มีวิธีการหลายอยางในการคูณเลขฐาน 2 แตวิธีการที่คอมพิวเตอรใชคือการบวกเลขตัวตั้งเขาดวยกัน<br />

เทาจํานวนครั้งของตัวคูณ เชน 55× 7 เครื่องคอมพิวเตอรจะทําการนําคาของเลข 55 มาบวกกัน 7 ครั้ง อยางไรก็ตาม<br />

วิธีการนี้จะใชเวลาในการคํานวณมาก ในกรณีที่ตัวเลขนั้นๆ มีคามาก อาทิเชน 786× 253 เครื่องคอมพิวเตอรจะตอง<br />

ทําการบวกคาของเลข 786 ถึง 253 ครั้ง ดังนั้นคอมพิวเตอรสวนใหญจึงใชวิธี Add – and Shift Right ขอสังเกต<br />

อยางหนึ่งของการคูณเลขฐานสอง คือจํานวนบิตของผลลัพธจะเพิ่มขึ้นเปน 2 เทา เชนคูณเลข 4 บิต 2 จํานวนเขา<br />

ดวยกัน ผลลัพธที่ไดจะเปนเลข 8 บิต ดังแสดงตามรูปที่ 1 – 6<br />

8


รูปที่ 1 – 6 การคูณเลขฐานสอง<br />

สําหรับการหาร คอมพิวเตอรจะใชวิธีการที่เรียกวา Subtract – and Shift Left ดังแสดงตามรูปที่ 1 – 7<br />

รูปที่ 1 – 7 การหารเลขฐานสอง<br />

1.2.5 การบวก-ลบเลขฐานสิบหก<br />

วิธีการอยางหนึ่งในการบวกเลขฐานสิบหก คือการแปลงใหเปนเลขฐานสองกอนแลวจึงทําการบวกกัน<br />

จากนั้นจึงแปลงผลลัพธที่ไดมาเปนเลขฐานสิบหก ดังแสดงตามรูปที่ 1 – 8 (a) สวนรูป (b) เปนการบวกเลขฐานสิบหก<br />

โดยตรง วิธีการนี้จะตองจําใหไดวาคา A ในเลขฐานสิบหกมีคาเทากับ 10 ในฐานสิบ จนถึง คา F ในเลขฐานสิบหกมีคา<br />

เทากับ 15 ในฐานสิบ ดังนั้น 7 + 3 = 10 เมื่อรวมกับตัวทดอัก 1 จึงเทากับ 11 ซึ่งมีคาเทากับ B ในเลขฐานสิบหก<br />

รูปที่ 1 – 8 การบวกเลขฐานสิบหก<br />

สําหรับการลบ ก็ทําไดดวยวิธีการเชนเดียวกัน ดังแสดงตามรูปที่ 1 – 9<br />

รูปที่ 1 – 9 การลบเลขฐานสิบหก<br />

9


1.2.6 การบวก-ลบเลข BCD<br />

ในระบบที่ตองการผลลัพธเพื่อการแสดงผล ซึ่งแตละหลักจะมีคาไดไมเกิน 9 เชนในเครื่องคิดเลข จะ<br />

มีความสะดวกมากกวาถาทําการคํานวณในรูปแบบของ BCD การที่ BCD มีคาไดไมเกิน 9 หรือ 1001 ในการบวก<br />

BCD บางกรณีจึงจําเปนตองนําผลลัพธที่ไดมาบวกดวย 6 อีกครั้ง จึงจะไดผลลัพธที่ถูกตอง ดังแสดงตามรูปที่ 1 – 10<br />

รูปที่ 1 – 10 การบวก BCD<br />

สําหรับการลบ BCD ก็ตองนํา 6 มาลบออกจากผลลัพธที่ไดอีกครั้งหนึ่ง ในกรณีที่มีเลขชุดใดมีคามากกวา 9<br />

หรือ 1001 เชน BCD 17 (0001 0111) ลบดวย BCD 9 (0000 1001) ในเบื้องตนจะไดผลลัพธเปน 0000 1110<br />

ซึ่งจะเห็นไดวาหลักสุดทายไมเปนไปตามกฎของ BCD จึงตองนํา 0110 หรือ 6 ไปลบออกอีกครั้งหนึ่งกอน จึงจะได<br />

ผลลัพธเปน BCD ที่ถูกตอง ดังแสดงตามรูปที่ 1 – 11<br />

รูปที่ 1 – 11 การลบ BCD<br />

10


1.3 การแสดงผลตัวเลขและตัวอักษร<br />

ในการใชชีวิตประจําวันที่เกี่ยวของกับเลขฐานสองมักจะไมมีความจําเปน โดยมากมักจะแสดงออกมาในรูปของ<br />

เลขฐานสิบที่รูจักกันโดยทั่วไป คนสวนใหญจึงมักไมทราบเกี่ยวกับระบบเลขฐานสอง หรือรหัสเลขฐานสองชนิดตางๆ<br />

การแสดงคาตัวเลขและตัวอักษรตางๆ หรือสัญลักษณอยางอื่น มีวิธีการดําเนินการได 3 วิธี คือ<br />

1.3.1 วิธีการแบบดีสครีท (Discrete Method)<br />

วิธีการนี้เราจะใชแหลงกําเนินแสงเพียงตัวเดียว สําหรับการแสดงตัวอักษร หรือตัวเลข แตละตัว เชน<br />

หลอดนิกซีย (Nixie Tube) ซึ่งเปนหลอดที่มีขั้วอาโนด (Anode) เพียงตัวเดียว แตมีขั้วคาโธด (Cathode) หลายๆ<br />

ตัว และคาโธดแตละตัวจะมีรูปรางเหมือนกับตัวเลข หรือตัวอักษรที่เราจะใหแสดง ภายในหลอดบรรจุกาซนีออน ดังนั้น<br />

เมื่อเราตอกราวนดเขากับคาโธดตัวใด กาซนีออนที่อยูภายในก็จะเกิดการไอออนไนซ (ionize) ทําใหเกิดแสงสวางขึ้น<br />

เปนรูปของตัวอักษรนั้นๆ<br />

1.3.2 วิธีการแบบบาร-แมตทริกซ (Bar-Matrix Method)<br />

วิธีการแบบนี้ แหลงกําเนิดแสงอาจจะมีเพียงตัวเดียว หรือหลายๆ ตัวก็ได สําหรับการแสดงตัวอักษร<br />

หรือตัวเลขแตละตัว อุปกรณที่ใชในการแสดงตัวเลขแบบนี้ที่รูจักกันดีก็คือ หลอดแบบ 7 ขั้ว (Seven Segment<br />

Display) ในการแสดงคาตัวเลขหรือตัวอักษรใด จะตองทําใหขั้วที่ประกอบกันเปนตัวอักษรนั้นติด เชนการแสดงเลข 1<br />

ก็จะตองทําใหขั้ว b และ c ติด ดังแสดงในรูปที่ 1 – 12<br />

รูปที่ 1 – 12 Seven Segment Display<br />

สําหรับแหลงกําเนิดแสงโดยมากมักจะใชไดโอดแบบกระจายแสง หรือ LED (Light Emitting Diode)<br />

เมื่อตอกราวดนเขากับไดโอดตัวใด ไดโอดตัวนั้นก็จะกระจายแสงออกมา เมื่อประกอบกันหลายๆ สวน ก็จะแสดงเปน<br />

ตัวเลขตามที่เราตองการ ดังนั้นในการแสดงคาดวยวิธีนี้จึงมักจะตองมี ตัวถอดรหัสเลขฐานสิบ (Decoder) เชน IC ใน<br />

ตระกูล TTL เบอร 7447 เปนตน<br />

11


1.3.3 วิธีการแบบด็อท-แมตทริกซ (Dot-Matrix Method)<br />

วิธีการแบบนี้จะประกอบดวยแหลงกําเนิดแสงลักษณะคลายจุดเปนจํานวนมาก ตัวอยางเชน LED<br />

Matrix ขนาด 5 x 7 เมื่อจุดตัดในตําแหนงใดถูกตอลงกราวดน จุดในตําแหนงนั้นก็จะเปลงแสงออกมา และเมื่อนํา<br />

จุดตางๆ เหลานั้นมาประกอบกัน ก็จะแสดงเปนตัวเลข หรือตัวอักษรตามตองการ ดังรูปที่ 1 – 13<br />

รูปที่ 1 – 13 การแสดงตัวอักษร H<br />

1.4 วงจรตรรกะ (Logic Circuit)<br />

วงจรตรรกะ หรือวงจรลอจิก (Logic Circuit) เปนวงจรอิเล็กทรอนิกส หรืออุปกรณทางไฟฟาที่มีฟงกชัน<br />

การทํางานเปนไปตามพีชคณิตบูลลีน (Boolean) วงจรเหลานี้ประกอบดวย วงจรเกท (Gate) และฟลิป-ฟล็อป (Flip-<br />

Flop) นอกจากนั้นยังสามารถนําวงจรลอจิกเหลานี้มาประกอบกันเปน รีจิสเตอร (Register) และวงจรนับหรือ<br />

เคานเตอร (Counter) ได<br />

1.4.1 ลอจิกเกท (Logic Gate)<br />

ลอจิกเกทเปนวงจรตรรกะที่มีเอาทพุตเพียง 1 ตัว และอาจจะมีอินพุตหนึ่งตัวหรือมากกวาก็ได คาของ<br />

เอาทพุตเกิดจากคาการรวมกันของคาอินพุตที่แนนอน โดยคาเอาทพุตจะขึ้นอยูกับวงจรเกทที่ใช สําหรับวงจรเกทพื้นฐาน<br />

ที่จําเปนตองทราบ มีดังตอไปนี้<br />

1.4.1.1 อินเวอรทเตอร (Inverters)<br />

เปนวงจรลอจิกที่มีอินพุตตัวเดียว และใหเอาทพุตตัวเดียว โดยคาของเอาทพุตจะมีคาตรงกัน<br />

ขามกับคาอินพุต สัญลักษณและตารางคาความจริงของอินเวอรตเตอร แสดงดังรูปที่ 1 – 14<br />

รูปที่ 1 – 14 Inverter<br />

12


1.4.1.2 ออรเกท (OR Gates) และนอรเกท (NOR Gates)<br />

ออรเกทเปนวงจรลอจิกที่ทําหนาที่เหมือนการบวก (+) ในพีชคณิตบูลลีน สวนนอรเกทจะนํา<br />

เอาทพุตที่ไดจากออรเกทมาผานอินเวอรตเตอรอีกครั้งหนึ่ง สัญลักษณและตารางคาความจริงของออรเกท (OR Gates)<br />

และนอรเกท (NOR Gates) แสดงดังรูปที่ 1 – 15<br />

รูปที่ 1 – 15 OR และ NOR Gates<br />

1.4.1.3 แอนดเกท (AND Gate) และแนนดเกท (NAND Gates)<br />

แอนดเกทเปนวงจรลอจิกที่ทําหนาที่เหมือนการคูณ (•) ในพีชคณิตบูลลีน สวนแนนดเกทจะนํา<br />

เอาทพุตที่ไดจากแอนดเกทมาผานอินเวอรตเตอรอีกครั้งหนึ่ง สัญลักษณและตารางคาความจริงของแอนดเกท (AND Gates)<br />

และแนนดเกท (NAND Gates) แสดงดังรูปที่ 1 – 16<br />

รูปที่ 1 – 16 AND และ NAND Gates<br />

1.4.1.4 เอ็กซคลูซีฟ-ออร (XOR Gates)<br />

เปนเกทที่มีอินพุต 2 ตัว และเอาทพุต 1 ตัว การทํางานของวงจรลอจิก เมื่ออินพุตที่เขามามีคา<br />

ทางตรรกะแตกตางกัน จะใหเอาทพุตเปน 1 และจะใหเอาทพุตเปน 0 เมื่ออินพุตที่เขามามีคาทางตรรกะที่เหมือนกัน<br />

สัญลักษณและตารางคาความจริงของเอ็กซคลูซีฟ-ออร (XOR Gates) แสดงดังรูปที่ 1 – 17<br />

รูปที่ 1 – 17 XOR Gates<br />

13


1.4.2 แล็ทช และฟลิป-ฟล็อป (Latches and Flip-Flops)<br />

เปนอุปกรณที่ใชในวงจรดิจิตอล ที่มีสถานะที่คงที่อยู 2 สถานะ หรือไปสเตเบิล (Bi-stable) การ<br />

ทํางานจึงเปลี่ยนคาเอาทพุตระหวางสถานะซึ่งคงที่ทั้งสองนั้น ฟลิป-ฟล็อปมีอยูหลายประเภท ไดแก RS, JK, D, T<br />

และฟลิป-ฟล็อปที่มีการควบคุมโดยสัญญาณนาฬิกา (CLK)<br />

รูปที่ 1 – 18 (a) D – Latch และ (b) D – flip-flop<br />

1.5 โปรแกรมเมเบิลลอจิกอาเรย (Programmable Logic Array)<br />

แทนที่จะใชลอจิกเกทมาตอกันมีละตัว เราอาจจใชอุปกรณที่เรียกวา “โปรแกรมเมเบิลลิจิกอาเรย” แทนได<br />

อุปกรณจําพวกนี้จะประกอบดวยเกทหลายๆ ตัววางเรียงอยูในลักษณะของอาเรย เมื่อผูใชตองการใหวงจรดิจิตอลนั้นมี<br />

การทํางานอยางไร ก็จะเชื่อมตอจุดตอของอาเรยเหลานั้น ตัวอยางของอุปกรณจําพวกนี้ ไดแก FPLAs, PROMs<br />

และ PALs<br />

รูปที่ 1 – 19 PLA และ PROM<br />

14


รูปที่ 1 – 20 PAL<br />

1.6 รีจิสเตอร (Registers)<br />

เราอาจจะนําฟลิป-ฟล็อปเพียงตัวเดียวหรือเปนกลุมมาใชในการจัดเก็บขอมูลไบนารี่ กลุมของ D flip-flops<br />

ที่ตอกันแบบขนาน จะถูกนํามาใชในการเก็บขอมูลไปนารี่เปนเวิรด (Binary Word) โดยขอมูลเหลานั้นจะถูกสงเขาไป<br />

ทางอินพุตของฟลิป-ฟล็อป และเมื่อมีสัญญาณนาฬิกาเปน High ฟลิป-ฟล็อปเหลานั้นจะสงเอาทพุตออกมาทางขา Q<br />

และขอมูลไบนารี่เวิรดเหลานั้นก็จะถูกจัดเก็บอยูในฟลิป-ฟล็อปนั้นจนกวาจะมีขอมูลใหมถูกสงเขามาทางขาอินพุต และ<br />

สัญญาณนาฬิกามีการเปลี่ยนสถานะจาก Low เปน High ดังรูปที่ 1 – 21<br />

รูปที่ 1 – 21 Register<br />

และถาเอาทพุต Q ของฟลิป-ฟล็อปแตละตัวของรีจิสเตอร ถูกเชื่อมตอเขากับอินพุต D ของ ฟลิป-<br />

ฟล็อปตัวถัดไป รีจิสเตอรนั้นก็จะมีฟงกชันการทํางานเปน Shift Register ดังรูปที่ 1 – 22<br />

รูปที่ 1 – 22 Shift Register<br />

15


1.7 วงจรนับหรือเคานเตอร (Counters)<br />

วงจรนับหรือเคานเตอร เปนวงจรที่ใชในการนับสัญญาณพัลซ (Pulse) โดยการนับจะสามารถเริ่ม<br />

นับจากคาหนึ่งไปยังอีกคาหนึ่งตามที่เราไดออกแบบไว และหลังจากนับครบตามที่จํานวนที่กําหนดแลวก็อาจจะกลับมา<br />

นับคาเริ่มตนใหม หรืออาจจะหยุดนับก็ได<br />

รูปที่ 1 – 23 สัญลักษณของวงจรนับขนาด 4 บิต และเอาทพุต<br />

ลําดับของการนับจะเพิ่มจาก 0000 ไปทีละ 1 เมื่อมีสัญญาณนาฬิกาเขามา 1 พัลซ และนับไปเรื่อยๆ<br />

จนกระทั่ง Q = 1111 เมื่อเอาทพุต Q = 1111 และมีสัญญาณนาฬิกาเขามาอีก 1 พัลซ เอาทพุต Q ก็จะ เทากับ 0000<br />

ใหม โดยมีสัญญาณ CARRY = 1 ซึ่งสัญญาณนี้อาจจะใชเปนสัญญาณนาฬิกาใหกับวงจรนับตัวอื่นไดโดยเราอาจจะตอ<br />

เคานเตอรเปนลําดับไดตามตองการ จํานวนสูงสุดที่วงจรนับจะสามารถนับไดจะเทากับ 2 N − 1 เมื่อ N เปนจํานวน<br />

ของฟลิป-ฟล็อปที่มีในเคานเตอร นอกจากนั้นเรายังสามารถที่จะออกแบบวงจรนับใหทําการนับขึ้น หรือนับลงก็ได การนํา<br />

วงจรนับไปใชงานที่นาสนใจก็คือ การนําไปสรางเปนนาฬิกาดิจิตอล ที่แสดงคาเปน ชั่วโมง นาที และวินาที โดยใชตน<br />

กําเนิดสัญญาณความถี่ 1 Hz และหากเปนนาฬิกาที่ใชไฟฟาตามบานเรือนซึ่งมีความถี่ 50 Hz จะตองนํามาลดความถี่<br />

ใหเหลือ 1 Hz กอน<br />

1.8 หนวยความจํา RAMs และ ROMs<br />

RAMs ยอมาจากคําวา Random Access Memory เปนหนวยความจําประเภทชั่วคราว ที่ใชในการจัดเก็บ<br />

ขอมูลที่มีการเปลี่ยนแปลงอยูตลอดเวลา ขอมูลในหนวยความจําประเภทนี้จะหายไปเมื่อไมมีไฟเลี้ยงจึงเรียกวา volatile<br />

ในการทํางานจะตองมีสัญญาณ CE (Chip Enable) เขามาควบคุม นอกจากนั้นหากพิจารณาจากรูปที่ 1 – 24 และ<br />

1 – 25 จะเห็นขอแตกตางของ RAMs กับ ROMs คือ จะมีสัญญาณควบคุม W / R เขามาที่อินพุตของ RAM<br />

แสดงใหเห็นวา สามารถทําการอานและเขียนลงไปยังหนวยความจํา RAM ได<br />

16


รูปที่ 1 – 24 Schematic Diagram ของ RAM<br />

สวนหนวยความจํา ROMs ยอมาจากคําวา Read Only Memory เปนหนวยความจําถาวร ที่ขอมูลซึ่ง<br />

จัดเก็บภายในจะไมสูญหายเมื่อไมมีกระแสไฟเลี้ยง เราจึงเรียกอุปกรณประเภทนี้วา nonvolatile นอกจากนั้นยังมี<br />

ROMs ประเภทตางๆ อีกเปนจํานวนมากที่สามารถเขียนใหมได สามารถลบขอมูลเดิม แลวเขียนขอมูลใหมลงไปได<br />

(PROMs, EPROMs, และ EEPROMs)<br />

รูปที่ 1 – 25 Schematic Diagram ของ ROM<br />

1.9 ALU (Arithmetic Logic Units)<br />

ALU เปนอุปกรณภายในไมโครโพรเซสเซอรที่มีความสามารถในการคํานวณทั้งทางคณิตศาสตร และทางตรรกะ<br />

โดยมีฟงกชันการทํางานหลายอยาง ทั้งนี้ขึ้นอยูกับคําสั่งที่กําหนดไว ตัวอยางเชน ALU ขนาด 4 บิต เบอร 74LS181 จะ<br />

มีสัญลักษณและ Block Diagram ดังแสดงตามรูปที่ 1 – 26 (a)<br />

17


รูปที่ 1 – 26 four – bit ALU (a) Symbol (b) Truth Table (c) Sample AND, OR, XOR Operation<br />

รูปที่ 1 – 26 (b) เปนตารางคาความจริงของ ALU ขนาด 4 บิต เบอร 74LS181 ซึ่งหมายถึงขอมูลอินพุต<br />

A และ B จะมีขนาด 4 บิต ถูกสงเขามายัง ALU ทาง A0 – A3 และ B0 – B3 เพื่อทําการประมวลผลแลวสงผลลัพธ<br />

ออกไปทางเอาตพุต F ทางขา F0 – F3 สําหรับสัญญาณควบคุม M จะเปนตัวระบุวา ALU ตัวนี้จะทําการคํานวฯทาง<br />

คณิตศาสตรหรือตรรกศาสตร โดยที่ถา M เปน High 74LS181 จะทําการประมวลผลทางตรรกศาสตร และถา M เปน<br />

Low 74LS181 จะทําการประมวลผลทางคณิตศาสตร สําหรับฟงกชันในการประมวลผลจะถูกควบคุมโดยสัญญาณ S<br />

(Selector) ซึ่งเปนอินพุตของ ALU ที่ขา S0 – S3 สวนรูป (c) เปนตัวอยางการทํางานของ ALU 74LS181 ในการ<br />

ทํา AND, OR และ XOR Operation<br />

18


แบบฝกหัดทายบท<br />

0 20<br />

1. จงเขียนเลขฐานสิบที่เทียบเทากับเลขฐานสอง ตั้งแต 2 ถึง 2<br />

2. จงแปลงเลขฐานสิบตอไปนี้ ใหเปนเลขฐานสอง<br />

ก) 22<br />

ข) 76<br />

ค) 500<br />

3. จงแปลงเลขฐานสองตอไปนี้ ใหเปนเลขฐานสิบ<br />

ก) 1011<br />

ข) 11010001<br />

ค) 1110111001011001<br />

4. จงแปลงคาตางๆ เหลานี้ใหเปนเลขฐานสิบหก<br />

ก) 5310<br />

ข) 75610<br />

ค) 011011000102<br />

ง) 110000101112<br />

5. จงแปลงเลขฐานสิบหกตอไปนี้ ใหเปนเลขฐานสิบ<br />

ก) D 3 H<br />

ข) 3 FEH<br />

ค) 44 H<br />

6. จงแปลงเลขฐานสิบตอไปนี้ ใหเปน BCD<br />

7. ใหคําจํากัดความของคําวา Parity และอธิบายวิธีการใชในการตรวจจับ error ในการสงขอมูล<br />

8. จงแสดงการหาผลบวกของคาตางๆ ตอไปนี้<br />

ก) 100112 + 10112<br />

ข) 10 2510<br />

37 + ในรูปแบบของ BCD<br />

ค) 4 A H + 77 H<br />

9. จงแสดงคาของเลขฐานสิบตอไปนี้ ใหอยูในรูปแบบของ Sign และ Magnitude<br />

ก) + 26<br />

ข) − 7<br />

ค) − 26<br />

ง) − 125<br />

10. จงหาผลตางของเลขฐานสิบตอไปนี้ ในรูปแบบของเลขฐานสอง ดวยการใช 2’s Complement<br />

ก) 7 − 4<br />

ข) 37 − 26<br />

ค) 125 − 93<br />

1001× และ 11010× 101<br />

11. จงหาผลลัพธของ 011<br />

19


12. จงหาผลลัพธของ 1100100 ÷ 1010<br />

13. จงหาผลลัพธของ<br />

14. จากวงจรในรูปที่กําหนดให จงตอบคําถามตอไปนี้<br />

ก) เอาตพุต Y Active High หรือ Active Low<br />

ข) สัญญาณ C Active High หรือ Active Low<br />

ค) จงบอกเงื่อนไขของสัญญาณอินพุต A, B และ C ที่ทําใหเกิดสัญญาณเอาตพุต Y<br />

15. จะเกิดอะไรขึ้นเมื่อมี Positive pulse สงเขามาที่ขาอิพุต CLK ของ D Latch เปรียบเทียบกับการที่มี<br />

Positive pulse สงเขามาที่ขาอิพุต CLK ของ D Flip-Flop<br />

16. เซมิคอนดักเตอร INS8298 เปน chip หนวยความจํา ROM ขนาด 8 บิต ที่สามารถเก็บขอมูลได 8,192 words<br />

หรือ 65,536 bits อยากทราบวาจะตองมี Address Line กี่เสน จึงจะสามารถกําหนดแอดเดรสใหหนวยความจํา<br />

ROM ตัวนี้ไดครบ<br />

17. ใชรูปที่ 1 – 26 four – bit ALU เพื่อแสดงใหเห็นการเลือกโหมดอินพุตของ 74LS181 ใหมีการทํางานตาม<br />

ฟงกชันตางๆ ดังตอไปนี้<br />

ก) A + B<br />

ข) A − B − 1<br />

ค) AB + A<br />

18. จงหาคา Output word เมื่อนําคา binary ที่กําหนดใหมาทําการ ANDed และ ORed ซึ่งกันและกัน<br />

ก) 1010 และ 0111<br />

ข) 1011 และ 1100<br />

ค) 11010111 และ 111000<br />

20

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!