บทที่ 1 บทนำ
บทที่ 1 บทนำ
บทที่ 1 บทนำ
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