Com sys lab/instruction set
- จาก com sys lab
หน้านี้จะระบุคำสั่งและสถาปัตยกรรมพื้นฐานของ cpu ที่จะสร้าง
รายละเอียดทั่วไป
- มี 4 บิต register จำนวน 8 ตัว ตัวที่ $0 และ $7 เป็นตัวที่มีหน้าที่พิเศษ
- คำสั่งทุกคำสั่งมีขนาดเท่ากันหมด มีขนาด 8 บิต
- การติดต่อกับหน่วยความจำแบ่งเป็นสองส่วน คือ
- Instruction Memory - อ่านอย่างเดียว เป็นหน่วยความจำ 8 บิต มี address 8 เส้น (รวมเนื้อที่ 256 ไบต์)
- Data Memory - อ่านและเขียน เป็นหน่วยความจำ 4 บิต มี address 8 เส้น (รวมเนื้อที่ 256 x 4bit)
- การคำนวณเชิงเลขต่างๆ จะทำกับ register $0 ซึ่งบางครั้งจะเรียกว่า accumulator หรือบางทีอาจจะเขียนเป็น $a
ชุดคำสั่ง
คำนวณคณิตศาสตร์
ทุกคำสั่งจะทำงานกับ $0 (บวกเข้ากับ $0, ลบจาก $0)
- 0000 0rrr --- ADD r
- 0000 1rrr --- SUB r
กระโดด
การกระโดดทั่วไปจะเป็น short jump (relative jump) โดยค่า PC จะโดนปรับตามค่า immediate (คิดเป็น signed 4 bit integer) ที่ระบุใน instruction ค่า PC ตั้งต้นจะเป็น PC ของคำสั่งนั้นเอง เช่น ถ้าสั่ง JMP 0 จะกระโดดค้างอยู่ที่เดิม
- 1100 iiii --- JMP i (unconditional jump)
- 1101 iiii --- JZ i (jump if zero flag is set)
อ่านและเขียนค่า
- 1111 iiii --- LDAI i (load immediate to $0)