More Related Content Similar to 3 instruction design Similar to 3 instruction design (11) 3 instruction design2. ชุ ดคําสั่ ง คือ กลุ่มของคําสังที่ใช้ในการบอกขั้นตอนการ
่
ทํางานอย่างเป็ นลําดับให้กบ CPU ั
ชุ ดคําสั่ ง เช่ น ADD (บวก), SUBTRACT (ลบ),
MULTIPLY (คูณ), DIVIDE (หาร), COMPARE
(เปรี ยบเทียบ), MOVE (ย้าย), INPUT (นําเข้า) และ
OUTPUT (แสดงผล)
3. หน้ าทีของ Instruction Set จะช่วย Complier ทําการ
่
แปลง Source Code ของโปรแกรมภาษาระดับสูง ให้เป็ น
Object Code ของภาษาระดับตํ่า
เมื่อแปลงเสร็ จแล้ว จะนํา Object Code ไปเก็บใน
หน่วยความจําหลัก เพื่อรอส่ งไปประมวลผลที่ CPU
6. เป็ นสถาปั ตยกรรมที่มีขนาดใหญ่ และซับซ้อน
มี Instruction Set จํานวนมากและซับซ้อน
Object Code มีขนาดเล็ก เพื่อประหยัดเนื้อที่ของ
หน่วยความจํา
หน่วยความจําทํางานได้ชา ้
CPU มีความซับซ้อน
8. การสื่ อสารระหว่ าง CPU กับหน่ วยความจํา สามารถทําได้
ทั้งอ่ านและเขียนข้ อมูล
Address
Memory Read
CPU หน่ วยความจํา
Data
12. ระยะ Fetch เป็ นระยะที่ CPU ดึงชุดคําสัง (Instruction)
่
ขึ้นมาจากหน่วยความจําหลัก
ระยะ Execute เป็ นระยะที่ CPU แปลความหมายชุดคําสัง ่
(Instruction) เพื่อประมวลผล
15. Fetch Instruction
Decode Instruction
Next Fetch Operands
Instruction
Do Addition
Store Result
16. Fetch the first word of Instruction
Fetch Instruction
ยังไม่ครบ
Analyze
IL >1 Word Fetch One More
Word
IL <= 1 Word Fetch Instruction
Instruction Fetch จนครบ
Analyze
Completion
Go to Execute
Phase
17. คําสั่ งในการเคลือนย้ ายข้ อมูล
่
ตัวดําเนินการ คําอธิบาย
MOVE ย้ายข้อมูลจากหน่วยความจําหรื อ Register ไปยังแหล่งปลายทาง
LOAD ดึงข้อมูลจากหน่วยความจําไปยัง Register
STORE ย้ายข้อมูลจาก Register ไปเก็บลงในหน่วยความจํา
PUSH ย้ายข้อมูลจากแหล่งข้อมูล เข้าไปยัง Stack
POP ย้ายข้อมูลจาก Stack ไปยังแหล่งปลายทาง
XCHG แลกเปลี่ยนข้อมูลระหว่างแหล่งต้นทางกับปลายทาง
18. คําสั่ งการคํานวณ
ตัวดําเนินการ คําอธิบาย
ADD การบวก สําหรับหาผลรวมระหว่างตัวถูกดําเนินการ 2 ตัว
SUB การลบ สําหรับหาผลต่างระหว่างตัวถูกดําเนินการ 2 ตัว
MUL การคูณ สําหรับหาผลต่างระหว่างตัวถูกดําเนินการ 2 ตัว
DIV การหาร สําหรับหาผลต่างระหว่างตัวถูกดําเนินการ 2 ตัว
INC เพิมค่า ทีละหนึ่งลงใน Register
่
DEC ลดค่า ทีละหนึ่งลงใน Register
NEG นิเสธ สําหรับเปลี่ยนเครื่ องหมายของตัวถูกดําเนินการ
19. คําสั่ งทางตรรกะ
ตัวดําเนินการ คําอธิบาย
NOT คล้ายกับนิเสธ เปลี่ยนจากค่าจริ งเป็ นเท็จ / เท็จเป็ นจริ ง
OR การเปรี ยบเทียบด้วย “หรือ”
AND การเปรี ยบเทียบด้วย “และ”
20. คําสั่ งการเคลือนย้ าย
่
ตัวดําเนินการ คําอธิบาย
JUMP เป็ นการกระโดดไปทํางานอีกคําสังที่ถกระบุ
่ ู
โดย Program Counter
JUMPIF เป็ นการย้ายไปทํางานแบบมีเงื่อนไข
INT เป็ นการกระโดดไปทํางานกับอุปกรณ์อื่นที่เข้ามาขัดจังหวะ
LOOP การทํางานซํ้าแบบวนรอบ
21. คําสั่ ง Input / Output
ตัวดําเนินการ คําอธิบาย
IN อ่านข้อมูลจาก Input เข้าสู่ ระบบคอมพิวเตอร์
OUT เขียนข้อมูลจากระบบคอมพิวเตอร์ แล้วส่ งออกสู่ Output
TEST I/O อ่านสถานะจากอุปกรณ์ I/O
START I/O เป็ นสัญญาณจาก I/O เพื่อเริ่ มคําสังการทํางานของโปรแกรม I/O
่
HALT I/O เป็ นสัญญาณจาก I/O เพื่อยกเลิกคําสังการทํางานของโปรแกรม
่
I/O
22. คําสั่ งจัดการกับข้ อมูลทีเ่ ป็ นตัวอักษร
ตัวดําเนินการ คําอธิบาย
MOVS เคลื่อนย้ายข้อความ
LODS โหลดข้อความ
CMPS เปรี ยบเทียบข้อความ
STOS เก็บบันทึกข้อความ
SCAS ตรวจสอบข้อความ
23. คําสั่ งการแปลง
ตัวดําเนินการ คําอธิบาย
PACK การแปลงเลขฐานสิ บ แบบ Unpacked ให้เป็ นแบบ Packed
UNPACK การแปลงเลขฐานสิ บ แบบ Packed ให้เป็ นแบบ Unpacked
24. คําสั่ งควบคุมการประมวลผล
ตัวดําเนินการ คําอธิบาย
HLT หยุดกระบวนการ Instruction Cycle (Halt)
WAIT หยุดกระบวนการ Instruction Cycle และคอยจนกว่าจะมี
สัญญาณให้ทางานต่อไปได้
ํ
NOOP ไม่มีการทําคําสังใด ๆ
่
25. Instruction จะมีขนาดทีค่อนข้ างจํากัด จึงทําให้ ไม่
่
สามารถเก็บข้ อมูลจริงลง Operand ได้ ท้งหมด
ั
จึงมีการเก็บ Address ของ Operand แทน
Operand ของจริงจะอยู่บนหน่ วยความจําหรือ Register
26. เป็ นวิธีการอ้ างอิงข้ อมูลแบบง่ าย โดยเก็บข้ อมูลลงในพืนที่
้
ของ Operand ภายใน Instruction โดยตรง
OpCode Operand (#101011)
โหลดข้ อมูล 101011 ลงไปใน Register
27. เป็ นวิธีการอ้ างอิงข้ อมูล โดยเก็บ Address ไว้ ใน
Instruction ซึ่งเป็ นตัวระบุไปยัง Operand ทีถูกจัดเก็บ
่
อยู่ในหน่ วยความจําได้ โดยตรง
OpCode Operand Address (100100)
หน่ วยความจํา
Operand (101011)
100100
28. เป็ นวิธีการอ้ างอิงข้ อมูล โดยเก็บ Address ไว้ ใน
Instruction ซึ่งเป็ นตัวระบุไปยัง Operand Address ที่
ถูกจัดเก็บอยู่ในหน่ วยความจํา และอ้ างอิงไปยัง Operand
ทีอยู่ในหน่ วยความจําอีกที
่
OpCode Address (100100)
หน่ วยความจํา
Operand
Address(101101)
100100 100101
Operand (101011)
29. เป็ นวิธีการอ้ างอิงทีคล้ ายกับ Direct Addressing แต่ จะ
่
อ้ างอิงข้ อมูลผ่ าน Register โดยตรง
OpCode Register Number (R)
Register
Operand (101011)
R
30. เป็ นวิธีการอ้ างอิงทีคล้ ายกับ Indirect Addressing แต่ จะ
่
อ้ างอิง Operand Address ผ่ าน Register ทีจะอ้ างอิงไป
่
ยังข้ อมูลทีอยู่ในหน่ วยความจํา
่
OpCode Register Number (R)
Register
Operand 100101
Address(101101)
หน่ วยความจํา
Operand (101011)