1 / 41

Chapter 7

ANGKANA. Chapter 7. คุณลักษณะและหน้าที่ของ Instruction Sets. ANGKANA. หัวข้อการเรียนรู้.

york
Download Presentation

Chapter 7

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ANGKANA Chapter 7 คุณลักษณะและหน้าที่ของ Instruction Sets

  2. ANGKANA หัวข้อการเรียนรู้  คุณลักษณะของคำสั่งภาษาเครื่อง - องค์ประกอบของคำสั่งเครื่อง - รูปแบบตัวแทนคำสั่ง - การออกแบบชุดคำสั่ง ชนิดของตัวถูกดำเนินการ - ข้อมูลชนิดตัวเลข - ข้อมูลชนิดตัวอักษร - ข้อมูลประเภทตรรกะ ชนิดของการดำเนินการ - การคำนวณคณิตศาสตร์ - การคำนวณตรรกะ - การเรียกใช้ฟังก์ชัน

  3. บทนำ ขอบเขตระหว่างผู้ออกแบบคอมพิวเตอร์ และผู้พัฒนาโปรแกรมที่ทำงานกับคอมพิวเตอร์เครื่องเดียวกันอยู่ตรงที่ชุดคำสั่งคอมพิวเตอร์ (machine instruction set) เมื่อมองจากทัศนะของผู้ออกแบบฯ ชุดคำสั่งคอมพิวเตอร์จัดเตรียมสิ่งแวดล้อมในการทำงานสำหรับซีพียู หรือการสร้างซีพียูเป็นงานที่เกี่ยวข้องกับการสร้างชุดคำสั่งคอมพิวเตอร์เป็นอย่างมากจากมุมมองของผู้ใช้

  4. คุณลักษณะของคำสั่งภาษาเครื่องคุณลักษณะของคำสั่งภาษาเครื่อง การทำงานของซีพียูถูกกำหนดโดยคำสั่งที่กำลังทำการประมวลผลอยู่ในขณะนั้น ซึ่งเรียกว่าคำสั่งเครื่อง (machine instructions or computer instructions) คำสั่งเครื่องเมื่อถูกนำมารวมเข้าไว้ด้วยกัน หรือเมื่ออ้างอิงถึงกลุ่มคำสั่งเครื่องสำหรับคอมพิวเตอร์หนึ่ง ๆ รวมเรียกว่า ชุดคำสั่ง (Instruction set)

  5. องค์ประกอบของคำสั่งเครื่ององค์ประกอบของคำสั่งเครื่อง รูปแสดงไดอะแกรมแสดงขั้นตอนการทำงานของวงรอบคำสั่ง

  6. องค์ประกอบของคำสั่งเครื่ององค์ประกอบของคำสั่งเครื่อง  โค้ดงาน (Operation code): บอกให้ทราบถึงการทำงานที่ต้องการทำ เช่น การบวก หรืองานเกี่ยวกับไอโอ วิธีการกำหนดโค้ดงานจะใช้รหัส เลขฐานสอง (binary code) ซึ่งเรียกอีกชื่อหนึ่งว่า รหัสดำเนินการ (opcode)  การอ้างอิงแหล่งที่มาข้อมูลโดยตัวถูกดำเนินการ (Source operand reference): การทำงานอาจมีการอ้างอิงถึงตัวถูกดำเนินการ ที่บอกแหล่งที่เก็บข้อมูลที่ต้องนำมาใช้ในการกระทำนั้น ซึ่งหมายถึงข้อมูลนำเข้าสำหรับการทำคำสั่งนั้น ๆ

  7. องค์ประกอบของคำสั่งเครื่ององค์ประกอบของคำสั่งเครื่อง  การอ้างอิงแหล่งที่เก็บข้อมูลโดยตัวถูกดำเนินการ (Destination operand reference): การทำงานอาจมีการสร้างผลลัพธ์ขึ้นมา ซึ่งต้องการตัวถูกดำเนินการสำหรับใช้อ้างอิงถึงแหล่งที่เก็บผลลัพธ์นั้น  การอ้างอิงถึงคำสั่งต่อไป (Next instruction reference): เป็นวิธีการที่บอกซีพียูให้ทราบตำแหน่งของคำสั่งที่จะถูกนำมาประมวลผลในลำดับต่อไป ภายหลังจากที่ประมวลผลคำสั่งที่กำลังทำงานอยู่นี้เสร็จสิ้นแล้ว

  8. องค์ประกอบของคำสั่งเครื่ององค์ประกอบของคำสั่งเครื่อง ตัวถูกดำเนินการที่ใช้บอกตำแหน่งการอ้างอิงแหล่งที่มาหรือที่เก็บข้อมูล อาจอยู่ในรูปแบบดังต่อไปนี้  หน่วยความจำหลัก หรือหน่วยความจำเสมือน (Main or virtual memory) ซีพียูรีจิสเตอร์ (CPU register) ส่วนใหญ่ซีพียูจะมีส่วนประกอบเป็นรีจิสเตอร์อย่างน้อยหนึ่งตัว ซึ่งจะถูกอ้างอิงโดยคำสั่งเครื่อง ถ้ามีรีจิสเตอร์เพียงหนึ่งตัว การอ้างอิงถึงอาจจะกระทำได้โดยนัย ถ้ามีรีจิสเตอร์หลายตัวก็จะต้องกำหนดหมายเลขเฉพาะให้แก่รีจิสเตอร์แต่ละตัว และคำสั่งเครื่องจะนำหมายเลขรีจิสเตอร์ที่ต้องการไปใช้

  9. องค์ประกอบของคำสั่งเครื่ององค์ประกอบของคำสั่งเครื่อง  อุปกรณ์ไอโอ (I/O devices) คำสั่งจะต้องกำหนดไอโอโมดูลและอุปกรณ์ไอโอสำหรับการทำงาน ถ้ามีการทำแผนที่ไอโอ (mapped I/O) ก็จะกำหนดตำแหน่งหน่วยความจำหลัก หรือหน่วยความจำเสมือนที่เก็บข้อมูลสำหรับไอโอนั้น ๆ ไว้

  10. รูปแบบตัวแทนคำสั่ง ภายในเครื่องคอมพิวเตอร์ คำสั่งแต่ละคำสั่งจะอยู่ในรูปกลุ่มของบิต (sequence of bits) คำสั่งจะถูกแบ่งออกเป็นเขตข้อมูลหลายส่วน ซึ่งใช้แสดงแทนองค์ประกอบแต่ละส่วน การที่จะอธิบายรายละเอียดด้วยการใช้เลขฐานสอง ซึ่งเป็นรูปแบบที่แท้จริงของคำสั่งนั้นเป็นเรื่องที่ทำได้ยากมาก ดังนั้นจึงได้เลือกที่จะใช้ภาษาสัญลักษณ์ (symbolic language) มาใช้แทนรูปแบบที่แท้จริง ซึ่งจะช่วยให้อธิบายและทำความเข้าใจได้ง่ายขึ้น แสดงรูปแบบโครงสร้างคำสั่งแบบง่าย

  11. การออกแบบชุดคำสั่ง เป็นเรื่องที่มีความซับซ้อนมาก และส่งผลกระทบต่อส่วนอื่น ๆ ของระบบเป็นอย่ามาก ชุดคำสั่งจะเป็นตัวกำหนดหน้าที่การทำงานของซีพียู จึงมีผลโดยตรงต่อการออกแบบและสร้างซีพียูขึ้นมาใช้งาน ชุดคำสั่งเป็นเสมือนเครื่องมือของนักพัฒนาโปรแกรมที่ใช้ในการควบคุมการทำงานของซีพียู หัวข้อที่เป็นพื้นฐานทีสำคัญของการออกแบบได้แก่  Operation repertoire : ซีพียูควรจะมีจำนวนฟังก์ชันการทำงานเป็นเท่าใด การทำงานแต่ละอย่างควรทำอะไร และการทำงานควรมีความซับซ้อนมากเพียงใด  Data type : ชนิดของข้อมูลแบบต่าง ๆ ที่นำมาใช้งานร่วมกับการทำงานของซีพียู

  12. การออกแบบชุดคำสั่ง  Instruction format : ความยาวของคำสั่ง (หน่วยเป็นบิต) จำนวนที่อยู่อ้างอิง ขนาดของแต่ละเขตข้อมูล และอื่น ๆ  Registers : จำนวนรีจิสเตอร์ในซีพียูที่สามารถอ้างอิงได้ในแต่ละคำสั่ง และการใช้งาน  Addressing : รูปแบบการทำงานที่ใช้กำหนดชนิดของที่อยู่ของตัวถูกดำเนินการ

  13. ชนิดของตัวถูกดำเนินการชนิดของตัวถูกดำเนินการ ข้อมูลชนิดตัวเลข ความแตกต่างที่สำคัญระหว่างตัวเลขที่ใช้ในทางคณิตศาสตร์ทั่วไป กับตัวเลขที่เก็บอบอู่ในเครื่องคอมพิวเตอร์คือ ตัวเลขคอมพิวเตอร์มีขนาดที่จำกัดเนื่องจากเหตุผลสองประการ คือ 1. ตัวเลขที่เก็บอยู่ในคอมพิวเตอร์นั้นถูกจำกัดขนาดด้วยรูปแบบที่ใช้อยู่ในเครื่องฯ นั้น 2. ในกรณีของเลขจำนวนจริงก็ถูกจำกัดขนาดด้วยระดับความเที่ยงตรงที่ต้องการนักพัฒนาโปรแกรมจึงต้องทำความเข้าใจในผลที่จะเกิดขึ้นจากการปัดเศษ การ overflow และการ underflow

  14. ชนิดของตัวถูกดำเนินการชนิดของตัวถูกดำเนินการ ข้อมูลชนิดตัวเลข ข้อมูลชนิดตัวเลขมักจะแบ่งออกเป็นสามชนิดคือ 1. เลขจำนวนเต็ม (Integer or fixed point) 2. เลขจำนวนจริง (Floating point) 3. เลขฐานสิบ (Decimal point)

  15. ชนิดของตัวถูกดำเนินการชนิดของตัวถูกดำเนินการ ข้อมูลชนิดตัวเลข โดยธรรมชาติแล้วการทำงานภายในเครื่องคอมพิวเตอร์นั้นใช้เลขฐานสองทั้งหมด แต่ส่วนที่ต้องติดต่อกับผู้ใช้ที่เป็นมนุษย์นั้นจะจำเป็นจะต้องใช้เลขฐานสิบ ดังนั้นจึงมีความจำเป็นที่จะต้องแปลงค่าของเลขฐานสิบที่มากับข้อมูลนำเข้าให้เป็นเลขฐานสอง และแปลงเลขฐานสองในข้อมูลผลลัพธ์ให้เป็นเลขฐานสิบ สำหรับงานประยุกต์ที่เกี่ยวข้องกับงานไอโอปริมาณมาก ในขณะที่มีงานเกี่ยวกับการคำนวณแบบง่ายและมีอยู่น้อยนั้น เหมาะกับการทำงานกับตัวเลขระบบฐานสิบ วิธีการแทนเลขฐานสิบในกรณีนี้เรียกว่า packed decimal ซึ่งเป็นวิธีที่ได้รับความนิยมอย่างมาก

  16. ชนิดของตัวถูกดำเนินการชนิดของตัวถูกดำเนินการ ข้อมูลชนิดตัวอักษร รูปแบบข้อมูลที่ใช้งานทั่วไปคือตัวอักษร (text) หรือข้อความ (character string) ข้อมูลที่เป็นข้อความนั้น เป็นรูปแบบที่สะดวกสบายต่อคน แต่ในเวลาเดียวกันก็เป็นรูปแบบที่ไม่สามารถเก็บไว้ในคอมพิวเตอร์ หรือนำไปประมวลผลได้โดยง่าย เนื่องจากระบบดังกล่าวถูกออกแบบมาให้ทำงานกับเลขฐานสองเท่านั้น ดังนั้นจึงได้มีการประดิษฐ์โค้ดรหัสสำหรับการเก็บข้อมูลตัวอักษรไว้ในคอมพิวเตอร์ โค้ดรหัสแบบแรกที่ได้รับการออกแบบนำมาใช้งานคือ รหัสมอส (Morse code) ในปัจจุบันโค้ดรหัสที่ถูกนำมาใช้อย่างแพร่หลายเรียกว่า International Reference Alphabet (IRA) ซึ่งมีชื่อเรียกในประเทศสหรัฐอเมริกาว่า โค้ดแอสกี (American Standard Code for International Interchange)

  17. ชนิดของตัวถูกดำเนินการชนิดของตัวถูกดำเนินการ ข้อมูลประเภทตรรกะ โดยปกติข้อมูลแต่ละ word หรือแต่ละหน่วยที่สามารถอ้างอิงได้ จะถือเสมือนหนึ่งว่าเป็นข้อมูลหน่วยเดียว แต่ในบางครั้งก็มีความจำเป็นจะต้องพิจารณาข้อมูลในแต่ละหน่วยนั้นครั้งละ 1 บิต ซึ่งจะมีค่าเป็น “0” หรือ “1” เมื่อข้อมูลถูกมองในลักษณะนี้เรียกว่าเป็นข้อมูลแบบตรรกะ

  18. ชนิดของการดำเนินการ การคำนวณคณิตศาสตร์ การคำนวณทางคณิตศาสตร์ (arithmetic operations) ขั้นพื้นฐานอันได้แก่ การบวก (addition) การลบ (subtraction) การคูณ (multiplication) และการหาร (division) คำสั่งเหล่านี้จะสามารถทำงานกับข้อมูลประเภทเลขจำนวนเต็ม เลขจำนวนจริง และเลข packed decimal

  19. ชนิดของการดำเนินการ การคำนวณตรรกะ คอมพิวเตอร์ส่วนใหญ่มักจะจัดเตรียมคำสั่งสำหรับการจัดการข้อมูลแต่ละบิต (bit twiddling) ใน word หรือในกลุ่มข้อมูลขนาดต่าง ๆ ซึ่งมักจะใช้ควบคู่กับ Boolean operations รูปแสดงการกระทำทางตรรกะพื้นฐาน

  20. ชนิดของการดำเนินการ การคำนวณตรรกะ การทำงานทางตรรกะเหล่านี้สามารถนำมาประยุกต์ใช้กับการกลับตำแหน่งบิต (bitwise operation) ขนาด n บิตได้ เช่น รีจิสเตอร์สองตัวมีค่าเป็น (R1) = 10100101 (R2) = 00001111 ดังนั้น R1 AND R2 = 00000101

  21. ชนิดของการดำเนินการ การคำนวณตรรกะ (R1) = 10100101 (R2) = 11111111 ดังนั้น (R1) XRO (R2) = 01011010 ด้วยการกำหนดให้ “R2” มีค่าเป็น “1” ทั้งหมด XOR (exclusive OR) จะกลับบิตใน “R1” เป็นบิตตรงกันข้ามทั้งหมด (หรือเรียกว่า วันคอมพลีเมนต์ ones complement)

  22. ชนิดของการดำเนินการ การคำนวณตรรกะ นอกเหนือจาการทำงานกับแล้ว คอมพิวเตอร์ส่วนใหญ่ยังจัดเตรียมฟังก์ชันในการเลื่อน (shift) และหมุน (rotate) บิตไว้ด้วย คำสั่งการเลื่อนบิตแบบตรรกะ (logical shift) บิตทุกบิตใน word จะถูกเลื่อนไปทางซ้ายหรือทางขวา บิตที่อยู่ซ้ายสุดสำหรับการเลื่อนไปทางซ้าย และบิตที่อยู่ขวาสุดของการเลื่อนไปทางขวาจะถูกลบทิ้งไปส่วนทางด้านตรงกันข้ามจะถูกเติมด้วยบิต “0”

  23. ชนิดของการดำเนินการ รูปแสดงการเลื่อนและการหมุนบิต

  24. ชนิดของการดำเนินการ การคำนวณตรรกะ 1. อ่านข้อมูล word นั้นเข้าสู่รีจิสเตอร์ 2. ทำการคำนวณหาค่าตรรกะของ word นั้นโดยใช้คำสั่ง AND ด้วยค่า 1111111100000000 ซึ่งจะเป็นการลบตัวอักษรทางด้านขวาทิ้งไป 3. ทำการเลื่อนบิตไปทางขวา 8 ครั้ง นั่นคือการเลื่อนตัวอักษรทางด้านซ้ายใน word ให้ไปอยู่ทางด้านขวาของ word หรืออยู่ซีกครึ่งขวาของรีจิสเตอร์ 4. ทำงานไอโอ คือจัดการส่งตัวอักษรนั้นไปยังอุปกรณ์ไอโอที่ต้องการ นั่นคืออุปกรณ์ไอโอจะอ่านข้อมูล 8 บิตทางซีกขวาของรีจิสเตอร์ไปใช้

  25. ชนิดของการดำเนินการ การคำนวณตรรกะ การหมุน (rotation) หรือการเลื่อนบิตเป็นวงกลม (cyclic shift) จะรักษาข้อมูลทุกบิตเอาไว้ทั้งหมด การประยุกต์ใช้งานการหมุนบิตได้แก่ การหมุนทุกบิตมาอยู่ด้านซ้ายสุดเพื่อทำการทดสอบเครื่องหมายของข้อมูลตัวนั้น การทำงานทั้งที่เกี่ยวข้องกับคณิตศาสตร์และตรรกะ จะต้องเกี่ยวข้องกับหน่วยเอแอลยู และอาจจะเกี่ยวข้องกับการถ่ายโอนข้อมูล

  26. ชนิดของการดำเนินการ รูปแสดงตัวอย่างการเลื่อนบิต และการหมุนบิต

  27. สแต็ก (Stack) คือกลุ่มของข้อมูลที่มีการเรียงลำดับเอาไว้ และสามารถนำข้อมูลไปใช้ได้ครั้งละหนึ่งตัว จุดที่สามารถติดต่อกับข้อมูลได้เรียกว่า ส่วนหัวของสแต็ก จำนวนข้อมูลที่เก็บไว้ในสแต็กนั้นสามารถเปลี่ยนแปลงได้ ข้อมูลอาจจะถูกเพิ่มเข้าไปหรือนำออกจากส่วนหัวของสแต็กเท่านั้น ด้วยเหตุผลนั้นสแต็กจึงถูกเรียกว่า pushdown list หรือ last-in-first-out list

  28. สแต็ก (Stack) รูปแสดงการทำงานพื้นฐานกับสแต็ก

  29. การสร้างสแต็กขึ้นมาใช้งานการสร้างสแต็กขึ้นมาใช้งาน แสดงการทำงานเกี่ยวกับสแต็ก

  30. การสร้างสแต็กขึ้นมาใช้งานการสร้างสแต็กขึ้นมาใช้งาน สแต็กเป็นโครงสร้างข้อมูลที่มีประโยชน์ต่อการสร้างซีพียูขึ้นมาใช้งาน ถ้ากลไกของสแต็กถูกนำไปใช้โดยซีพียู เช่นการนำไปใช้จัดการการเรียกใช้โพรซีเยอร์ก็ทำให้ไม่มีความจำเป็นจะมีคำสั่งทำงานกับสแต็กไว้ในชุดคำสั่งเครื่อง แต่ในทั้งสองกรณีการสร้างสแต็กนั้นจะต้องมีการอ้างอิงถึงตำแหน่งที่เก็บข้อมูลในสแต็ก หน่วยความจำผืนหนึ่งในหน่วยความจำหลัก หรือในหน่วยความจำเสมือนจะถูกจองไว้สำหรับสแต็กส่วนใหญ่แล้วเนื้อที่ที่เตรียมไว้มักจะมีข้อมูลส่วนหนึ่งเก็บอยู่ และส่วนที่เหลือนั้นเตรียมไว้ใช้เก็บข้อมูลเพิ่มเติม

  31. การสร้างสแต็กขึ้นมาใช้งานการสร้างสแต็กขึ้นมาใช้งาน รูปแสดงโครงสร้างของสแต็กทั่วไป

  32. การสร้างสแต็กขึ้นมาใช้งานการสร้างสแต็กขึ้นมาใช้งาน การบริหารสแต็กให้เหมาะสมนั้น จะต้องใช้การอ้างอิงตำแหน่งสามแห่งด้วยกัน ดังนี้ 1. Stack pointer : หรือตัวชี้ตำแหน่งสแต็ก เป็นตัวเก็บตำแหน่งที่อยู่ของข้อมูลตัวบนสุดในสแต็ก ถ้ามีการเพิ่มข้อมูลเข้ามาหรือดึงข้อมูลออกไป ก็จะต้องเปลี่ยนตำแหน่งที่อยู่ให้ชี้อยู่ที่ข้อมูลตัวบนสุดเสมอ 2. Stack base: หรือตัวชี้ตำแหน่งฐาน เป็นตัวเก็บตำแหน่งที่อยู่ฐานของสแต็กในพื้นที่หน่วยความจำที่สงวนไว้ ถ้ามีการพยายามถึงข้อมูล (POP) ออกจากสแต็กที่ไม่มีข้อมูลอยู่ (stack pointer = stack base) ก็จะทำให้เกิดข้อผิดพลาดขึ้น

  33. การสร้างสแต็กขึ้นมาใช้งานการสร้างสแต็กขึ้นมาใช้งาน 3. Stack limit : หรือขนาดของสแต็ก จะเป็นตัวเก็บตำแหน่งสุดท้ายที่สงวนไว้ใช้สำหรับสแต็ก ถ้ามีการพยายามใส่ข้อมูล (PUSH) เข้ามาในสแต็กที่เต็มแล้ว (stack pointer = stack limit) ก็จะทำให้เกิดข้อผิดพลาดขึ้น

  34. การประเมินค่านิพจน์ ข้อดีของรูปแบบ postfix หรือ reverse Polish อีกประการหนึ่งคือ สามารถนำมาคำนวณหาค่าโดยนำสแต็กมาช่วยได้อย่างง่ายดาย นิพจน์จะถูกอ่านเข้ามาจากซ้ายไปขวา ข้อมูลแต่ละตัวที่อ่านเข้ามานั้นจะถูกกระทำดังนี้ 1. ถ้าตัวที่ถูกอ่านเข้ามาเป็น ตัวแปร หรือค่าคงที่ ให้ใส่ตัวนั้น (PUSH) ลงในสแต็ก 2. ถ้าตัวที่ถูกอ่านเข้ามาเป็น เครื่องหมาย ให้อ่านค่าจากสแต็ก (POP) ขึ้นมาสองตัว ทำการคำนวณค่า และใส่ผลลัพธ์กลับลงไปในสแต็ก

  35. การประเมินค่านิพจน์ รูปแสดงการใช้สแต็กในการคำนวณหานิพจน์ “f = (a - b) / (d  e + c)”

  36. การประเมินค่านิพจน์ กระบวนการแปลงนิพจน์ในรูปแบ infix ให้ไปอยู่ในรูปแบบ postfix นั้นก็สามารถทำได้ง่าย โดยนำสแต็กเข้ามาช่วย นิพจน์ infix จะถูกอ่านเข้ามาจากซ้ายไปขวา รูปแบบ postfix จะถูกสร้างขึ้นมาเป็นผลลัพธ์ในขณะที่อัลกอริทึมกำลังทำงาน 1. ตรวจข้อมูลตัวต่อไปที่ถูกอ่านเข้ามา 2. ถ้าเป็นตัวถูกกระทำ (operand) ให้ส่งออกเป็นผลลัพธ์ 3. ถ้าเป็นเครื่องหมายวงเล็บเปิด ให้ใส่ลงไปในสแต็ก

  37. การประเมินค่านิพจน์ 4. ถ้าเป็นตัวกระทำ (operator) ให้ทำดังนี้ - ถ้าตัวกระทำตัวบนสุดในสแต็กเป็นเครื่องหมายวงเล็บเปิด ให้ใส่ตัวกระทำนั้นลงไปในสแต็ก - ถ้าตัวกระทำมีค่า precedence สูงกว่าตัวบนสุดในสแต็ก ให้ใส่ตัวกระทำนั้นลงไปในสแต็ก - มิฉะนั้น ให้อ่านตัวกระทำออกมาจากสแต็ก และส่งออกไปเป็นผลลัพธ์ตัวต่อไป และทำซ้ำในขั้นตอนที่ 4

  38. การประเมินค่านิพจน์ 5. ถ้าเป็นเครื่องหมายวงเล็บปิด ให้อ่านตัวกระทำออกมาจากสแต็ก และส่งออกไปเป็นผลลัพธ์ตัวต่อไปจนกว่าจะพบเครื่องหมายวงเล็บเปิด ให้ทิ้งเครื่องหมายนั้นทิ้งไปและอ่านตัวต่อไปเข้ามา 6. ถ้ายังมีตัวต่อไปให้กลับไปทำขั้นตอนที่ 1 7. ถ้าไม่มีตัวต่อไปแล้ว ให้อ่านตัวกระทำออกมาจากสแต็ก และส่งออกไปเป็นผลลัพธ์ตัวต่อไปจนหมดสแต็ก

  39. การประเมินค่านิพจน์ รูปแสดงการแปลงนิพจน์จากรูป Infix ไปเป็นรูป Postfix

  40. คำถามท้ายบท • จงแสดงวิธีทำทางตรรกะพื้นฐานดังต่อไปนี้ • NOT P AND R • P OR Q AND R

  41. The End

More Related