รายละเอียดสถาปัตยกรรมชุดคำสั่งสำหรับ Term Project
กำหนดให้ CPU มี Databus ขนาด 8 บิต (P28:P35) มี Address Bus ขนาด 16 บิต (P39:P60) แบ่งเป็น Program Memory Space (EEPROM) และ Data Memory Space (ใช้ RAM) มี Accumulator (Acc) ขนาด 8 บิต Program Counter (PC) และ Stack Pointer (SP) ขนาด 16 บิต และ Z Flag ซึ่งจะมีค่าเป็น 0 เมื่อข้อมูลใน Acc เป็น 0 หมดทุกบิต ทั้งนี้ให้ SP เป็นแบบ Counter-down นอกจากนี้ยังมี Address และสัญญาณควบคุมของ I/O แยกเป็นอิสระจาก Address และสัญญาณควบคุมของ Memory โดยกำหนดให้ใช้ Port DC3 เป็น Address และ สัญญาณควบคุมที่ต่อพ่วงกับ I/O Board และ Port DC2 เป็น Bidirectional Port* เพื่อสื่อสารข้อมูลกับ I/O Board คำสั่งแต่ละคำสั่งอาจมีขนาด 1,2 หรือ 3 byte(s) ทั้งนี้กำหนดให้ Byte แรกเป็น Opcode และ Byte ถัดมาเป็น Operand (ุถ้ามี)
ลักษณะของ Opcode Byte
7 6 5 4 3 2 1 0 0 Addr . Mode Opcode กำหนดให้ CPU มี Addressing Mode ทั้งสิ้น 3 แบบ คือ Inherit(IH), Immediate(IM) และ Direct(DI) ดังแสดงในตาราง
Code Mode จำนวน Byte การทำงาน 00 IH 1 ไม่มี Operand ทำงานเฉพาะ 01 IM 2 Operand เป็น Data ขนาด 1 Byte 10 DI 3 Operand เป็น Address ขนาด 2 Byte 11 ไม่มีการใช้งาน กำหนดให้ CPU มีคำสั่งทั้งสิ้น 9 คำสั่งดังต่อไปนี้
Code คำสั่ง IH IM DI Flag การทำงาน หมายเหตุ 00000 NOP X ไม่มีการทำงาน 00001 LDA X X Z Load ค่าจาก Data Memory มาเก็บใน Acc. 00010 STA X Store ค่าของ Acc. เก็บใน Data Memory 00011 ADD X X Z,C Add ค่าจาก Data Mem เข้ากับค่าใน Acc. 00100 COM X Z 1'Compliment ค่าใน Acc. 00101 AND X X Z And ค่าจาก Data Mem เข้ากับค่าใน Acc. 00110 ORA X X Z Or ค่าจาก Data Mem เข้ากับค่าใน Acc. 00111 LDS X นำค่า Address ที่ระบุมาเก็บใน SP 01000 JMP X Unconditional Jump Address ที่ระบุเป็น Program Memory เสมอ
กรณี JSP ให้ Push ค่า PC Low Byte ก่อน High Byte01001 JPZ X Jump if Zero is set 01010 JPC X Jump if Carry is set 01011 JSR X Jump to Sub Routine 01100 LDP X Z Load ค่าจาก Program Mem มาเก็บใน Acc 01101 RTS X Return from Sub Routine 01110 PSH X Push ค่าใน Acc. ลง Stack 01111 POP X Pop ค่าใน Stack มาเก็บใน Acc. 10000 OUT X Output ค่าใน Acc ออกมาที่ I/O ตาม Address ที่ระบุ 10001 INP X Z Input ค่าจาก I/O ตาม Address ที่ระบุมายัง Acc.
2. จงเขียนโปรแกรมภาษา Assembly ของ CPU ที่ออกแบบพร้อมแสดงการทดสอบ เพื่อแสดงข้อความ เลขประจำตัวนิสิตออกมายัง 7 Segment ของ I/O Board
3. จงเขียนโปรแกรมภาษา Assembly ของ CPU ที่ออกแบบพร้อมแสดงการทดสอบ เพื่อแสดงข้อความ Hello, Word ออกมายังจอ LCD
4. จงเขียนโปรแกรมภาษา Assembly ของ CPU ที่ออกแบบพร้อมแสดงการทดสอบ เพื่อทำงานร่วมกับ LCD และ KeyPad ใน I/O Board โดยรับข้อมูลจาก KeyPad และแสดงออกมาเป็นตัวเลข / สัญลักษณ์ # , * บนจอ LCD และเมื่อมีการกดปุ่ม Reset ให้ลบค่าของข้อมูลในจอออกทั้งหมด ทั้งนี้หากข้อมูลที่แสดงเต็มจอแล้วให้ทำการ Clear หน้าจอก่อนเริ่มรับข้อมูลต่อไป
หมายเหตุ