วันจันทร์ที่ 23 พฤศจิกายน พ.ศ. 2558

รูปแบบของคำสั่งและการบ่งตำแหน่งที่อยู่




          ในระบบคอมพิวเตอร์ จะทำงานกับข้อมูลหรือคำสั่งที่เป็นรหัสไบนารี ข้อมูลหรือคำสั่งแต่ละชุดจะประกอบด้วยรหัสไบนารีหลาย ๆ บิต อาจเป็น 8, 16 หรือ 32 บิต เรียงเข้าด้วยกันเราเรียกว่า 1 เวิร์ด ในโปรเซสเซอร์เวิร์ดหนึ่งเวิร์ดจะใช้เป็นรหัสแทนสิ่งต่อไปนี้ได้คือ เลขหนึ่งจำนวนซึ่งอาจมีค่าเป็นบวกหรือลบ ตำแหน่งในหน่วยความจำ อักษรหนึ่งตัวหรือสัญลักษณ์หนึ่งตัวและแทนคำสั่งการทำงาน ในบทนี้จะได้ศึกษารหัสที่ใช้แทนตัวอักษร ตัวเลขและสัญลักษณ์ รูปแบบของคำสั่งภาษาเครื่องที่เป็นรหัสไบนารี และรหัสที่ใช้บ่งตำแหน่งหน่วยความจำ

รหัสที่ใช้แทนอักขระ
          ตัวอักษร ตัวเลขและสัญลักษณ์ หรือที่เรียกว่าอักขระในไมโครคอมพิวเตอร์จะแทนด้วยรหัสไบนารี ทุกครั้งที่เรากดแป้นพิมพ์ เช่น ปุ่มอักษร A ระบบก็จะรับอักษร A เข้าไปและแปลงเป็นรหัสไบนารี (เข้ารหัส) 1 ไบต์ เป็นต้น ในตารางที่ 8.1 แสดงมาตรฐานการใช้รหัสไบนารีแทนอักขระที่นิยมแพร่หลายในระบบไมโครคอมพิวเตอร์เรียกว่ารหัส ASCII (อ่านว่า แอสกี้) ย่อมาจาก American Standard Code for Interchange จะใช้แทนทั้งสระ พยัญชนะ ตัวเลข สัญลักษณ์ ทั่วไป และอักษรที่ใช้ควบคุม เช่น LF คือ Line Feed หมายถึงให้เลื่อนไปบรรทัดถัดไป เป็นต้น

รูปแบบคำสั่ง
          ไมโครโปรเซสเซอร์ไม่ว่าจะผลิตจากบริษัทไหนก็แล้วแต่ จะมีชุดคำสั่งประจำไมโคร-โปรเซสเซอร์เบอร์นั้น เช่น 8080 ของบริษัทอินเทลก็จะมีชุดคำสั่งเฉพาะของ 8080 ขณะที่ 6800 ของ โมโตโรลาก็จะมีชุดคำสั่งเฉพาะของ 6800 เป็นต้น คำสั่ง 8080 จะมาใช้กับ 6800 ไม่ได้และในทางกลับกัน คำสั่งของ 6800 จะใช้กับ 8080 ก็ไม่ได้ อย่างไรก็ดี ไม่ว่าจะเป็นคำสั่งของไมโครโปรเซสเซอร์เบอร์ใด พื้นฐานก็คือคำสั่งจะอยู่ในลักษณะไบนารี คำสั่งหนึ่งคำสั่งอาจประกอบด้วยไบต์เดียว สองไบต์ สามไบต์ หรือสี่ไบต์แล้วแต่กรณี ไบต์แรกของคำสั่งเรียกว่า โอเปอเรชันโค้ด (operation code) หรือที่เรียกสั้น ๆ ว่า ออปโค้ด (op code) เพราะไบต์นี้จะเป็นไบต์ที่บอกไมโครโปรเซสเซอร์ว่าเป็นคำสั่งอะไร ส่วนไบต์ที่เหลืออาจเป็นข้อมูลหรือบ่งตำแหน่งข้อมูลว่าอยู่ที่ไหน (อาจจะอยู่ในรีจิสเตอร์ภายในไมโครโปรเซสเซอร์ ในหน่วยความจำหรือในหน่วยรับส่งข้อมูลเข้า/ออก) ไบต์ส่วนที่เหลือกนี้เรียกว่า โอเปอแรนด์ (operand)

ชนิดของตัวถูกดำเนินการ
          คำสั่งเครื่องทำงานกับข้อมูลซึ่งสามารถแบ่งออกตามชนิดหรือประเภทได้ดังนี้
1) ตำแหน่งที่อยู่ (address)
            2) ตัวเลข (Number)
            3) ตัวอักษร (Character)
            4) ข้อมูลตรรกะ (Logical data)
          อันที่จริงตำแหน่งที่อยู่ก็เป็นข้อมูลชนิดหนึ่ง ในหลายกรณีมีการคำนวณเกิดขึ้นกับตัวถูกกระทำที่ถูกอ้างอิงในคำสั่งเครื่อง เพื่อกำหนดตำแหน่งที่อยู่ในหน่วยความจำหลัก หรือในหน่วยความจำเสมือน ในกรณีเช่นนี้ ตำแหน่งที่อยู่จะถูกคำนวณในลักษณะเดียวกันกับเลขแบบไม่มีเครื่องหมาย
ข้อมูลชนิดอื่นได้แก่ ตัวเลข ตัวอักษร และข้อมูลตรรกะ ซึ่งจะอธิบายถึงรายละเอียดในลำดับต่อไป นอกจากนี้แล้ว คอมพิวเตอร์บางเครื่องยังได้กำหนดข้อมูลหรือโครงสร้างข้อมูลชนิดพิเศษขึ้นใช้งาน เช่น ข้อมูลชนิดที่สามารถทำงานกับตัวถูกกระทำที่เป็นกลุ่มตัวอักษร (string) ได้โดยตรง

การบ่งตำแหน่งที่อยู่
          เมื่อ ซีพียู จะทำงานตามคำสั่ง ที่เขียนไว้ในหน่วยความจำ จะต้องนำคำสั่งจากหน่วยความจำถ่ายลงสู่ ซีพียูแล้วจึงจะประมวลผลตามวัฏจักรดังได้กล่าวมาแล้ว แต่ละคำสั่งจะมี ออปโค้ด เป็นไบต์แรก แล้วตามด้วยข้อมูลหรือตำแหน่งข้อมูลในไบต์ที่สองและสาม เมื่อซีพียู แปลรหัสออปโค้ดแล้วจะทราบว่า จะต้องไปนำข้อมูลจากที่ใดมาปฏิบัติต่อ เพื่อให้คำสั่งนั้นแล้วเสร็จ ในหัวข้อนี้จะกล่าวถึงวิธีต่าง ๆ ที่ซีพียูไปนำข้อมูลมาจากหน่วยความจำวิธีดังกล่าวนี้เรียกว่า การแบ่งตำแหน่งที่อยู่หรือ แอดเดรสซิงโหมด (Addressing mode)

          สรุปคือ ข้อมูลหรือคำสั่งที่จะนำเข้าประมวลผลในระบบคอมพิวเตอร์จะถูกเปลี่ยนให้เป็นรหัส ไบนารีก่อน ระบบคอมพิวเตอร์จึงจะสามารถรับรู้ได้ สำหรับข้อมูลที่เป็นตัวอักษร ตัวเลข และสัญลักษณ์ต่าง ๆ จะถูกแทนด้วย รหัส IRA หรือที่เรารู้จักในชื่อรหัส ASCII รหัส ASCII มีขนาด 7 บิต เมื่อเพิ่มพารีตี้บิตเข้าไปอีกหนึ่งบิตจะเป็นรหัส 8 บิต (1 ไบต์)
คำสั่งหนึ่งคำสั่ง อาจเป็นคำสั่ง 1 ไบต์ 2 ไบต์ หรือ 3 ไบต์ โดยจะมีไบต์แรกเป็นคำสั่งงาน เรียกว่า ออปโค้ด ส่วนไบต์ที่เหลือจะเป็นข้อมูลหรือบ่งบอกตำแหน่งว่าข้อมูลอยู่ที่ไหน เรียกไบต์ส่วนที่เหลือว่าโอเปอร์แรนด์ ในการเขียนคำสั่งที่เป็นออปโค้ด จะนิยมเขียนด้วยภาษาสัญลักษณ์แทนการใช้เลขไบนารี ซึ่งเราจะเรียกคำสั่งย่อยเหล่านี้ว่านีโมนิก (mnemonic) ส่วนค่าของข้อมูลและตำแหน่งที่อยู่จะถูกเขียนด้วยรหัสเลขฐานสิบหก คำสั่งสามารถที่จะแบ่งออกได้ 4 กลุ่ม คือ คำสั่งประมวลผลข้อมูล คำสั่งเกี่ยวกับหน่วยความจำ คำสั่งเกี่ยวกับไอโอและคำสั่งควบคุมการทำงาน
การบ่งตำแหน่งที่อยู่ หรือ Addressing mode คือการอ้างถึงตำแหน่งที่อยู่ของข้อมูลในหน่วยความจำซึ่งมีวิธีอ้างถึงหลายวิธี แต่ละวิธีจะมีข้อดีข้อด้อยแตกต่างกัน ซึ่งมีดังนี้ การบ่งตำแหน่งทันที การบ่งตำแหน่งโดยตรง การบ่งตำแหน่งทางอ้อม การบ่งตำแหน่งผ่านรีจีสเตอร์ การบ่งตำแหน่งผ่านรีจีสเตอร์ทางอ้อม การบ่งตำแหน่งแบบดีสเพลซเมนต์ และการบ่งตำแหน่งแบบใช้สแต็ก


ไม่มีความคิดเห็น:

แสดงความคิดเห็น