ชุดคำสั่งคืออะไร?

click fraud protection

CPU ใดๆ ได้รับการออกแบบมาตั้งแต่ต้นเพื่อรองรับชุดคำสั่งเฉพาะ ชุดคำสั่งคือชุดของการดำเนินการแบบฮาร์ดโค้ดที่ CPU สามารถทำได้ การดำเนินการเหล่านี้อาจเป็นได้ ตัวอย่างเช่น การบวกตัวเลขสองตัวเข้าด้วยกัน การข้ามไปยังส่วนอื่นของโปรแกรม หรือการเปรียบเทียบสองค่า การดำเนินการแต่ละครั้งที่คอมพิวเตอร์สามารถทำได้นั้นแสดงด้วย opcode อย่างเฉพาะเจาะจง

Opcodes

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

เมื่อดึงคำแนะนำที่สมบูรณ์แล้ว จะต้องถอดรหัส นี่คือกระบวนการที่ CPU แยก opcode และตัวถูกดำเนินการ opcode ที่ถอดรหัสถูกใช้เพื่อเปิดใช้งานหรือปิดใช้งานเส้นทางไฟฟ้าเฉพาะใน CPU ซึ่งจะส่งผลให้การทำงานถูกต้อง

เมื่อถอดรหัสคำสั่งแล้ว คำสั่งจะถูกดำเนินการ ลักษณะการทำงานที่แน่นอนของ CPU จะขึ้นอยู่กับการทำงาน การดำเนินการเพิ่มเติมจะรวมค่าสองค่าเข้าด้วยกัน การดำเนินการข้ามจะคำนวณตำแหน่งที่จะข้ามไปในโปรแกรม การดำเนินการเปรียบเทียบจะเปรียบเทียบค่าสองค่า การดำเนินการ NOP จะไม่ทำงาน เนื่องจาก NOP ย่อมาจาก No Operation

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

Opcodes ที่ผิดกฎหมาย

สถาปัตยกรรม CPU แต่ละอันมีรายการเฉพาะของ opcodes ที่เผยแพร่โดยผู้ผลิต ค่าของ opcodes เหล่านี้ไม่จำเป็นต้องเหมือนกันข้ามแพลตฟอร์ม ซึ่งเป็นเหตุผลว่าทำไมจึงต้องคอมไพล์ซอฟต์แวร์สำหรับสถาปัตยกรรมที่แตกต่างกัน ในบางกรณี ผู้ผลิตยังรวม opcodes ที่ไม่มีเอกสารไว้ด้วย สิ่งเหล่านี้เรียกว่า "opcodes ที่ผิดกฎหมาย" opcodes ที่ผิดกฎหมายในขณะที่ไม่มีเอกสารจะทำหน้าที่เดียวกันทุกครั้งที่ถูกเรียก เนื่องจากเป็นคุณสมบัติที่ไม่มีเอกสารและไม่ได้มาตรฐาน การอัปเดตสถาปัตยกรรม CPU สามารถลบออกได้อย่างง่ายดาย

เกมคอมพิวเตอร์ช่วงแรกๆ ของ Apple II นั้นอาศัย opcodes ที่ผิดกฎหมายบางเกม จากนั้นพวกเขาประสบปัญหาด้านประสิทธิภาพและความเสถียรในการแก้ไข CPU ของ Apple IIc ในภายหลังเนื่องจาก IIc ได้ลบ opcodes ที่ผิดกฎหมายซึ่งจำเป็นสำหรับเกม opcodes ที่ผิดกฎหมายยังถูกใช้ในแวดวงการคุ้มครองลิขสิทธิ์เพื่อเป็นวิธีการรักษาความปลอดภัยผ่านความสับสนในการต่อสู้กับโจรสลัดที่ถอดรหัสเนื้อหาของพวกเขา opcodes ที่ผิดกฎหมายบางตัวมีไว้เป็นเครื่องมือในการดีบักและตัวจัดการข้อผิดพลาด

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

คอมไพเลอร์และแอสเซมบลี

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

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

บทสรุป

ชุดคำสั่งคือรายการของฟังก์ชันอย่างเป็นทางการที่สถาปัตยกรรม CPU สามารถทำงานได้ เป็นรายการการดำเนินงานที่สามารถทำได้ การดำเนินการเหล่านี้ถูกฮาร์ดโค้ดลงใน CPU และเรียกใช้โดยใช้ opcodes ที่เกี่ยวข้อง

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