ข่าวกรอง

ข้อสอบปีที่แล้ว + สิ่งที่รุ่นพี่บอก

หน้านี้รวมทุกอย่างที่รู้เกี่ยวกับข้อสอบจริง — ของปีที่แล้วที่มีกระดาษข้อสอบให้ดู และคำบอกเล่าจากรุ่นพี่ 2 คน พร้อมบอกตรง ๆ ว่าอันไหนเชื่อได้แค่ไหน

1. กระดาษข้อสอบปีที่แล้ว

โครงข้อสอบ · 3 ข้อ · 80 คะแนน · 10 หน้า

ข้อเรื่องคะแนน
1โปรแกรมภาษา Assembly30
2โปรแกรมหน่วงเวลา (Delay)20
3Timing Diagram ของ Instruction Cycle30
รวม80

คำสั่งบนหน้าปก — อ่านให้ดี

  1. ข้อสอบ 10 หน้า 3 ข้อ รวม 80 คะแนน
  2. เขียนคำตอบในช่องว่างที่กำหนดให้ ถ้าไม่พอให้ทำต่อด้านหลังกระดาษแผ่นนั้น พร้อมลงเครื่องหมายกำกับ
  3. ห้ามฉีก ห้ามแยกข้อสอบออกจากกัน ห้ามนำข้อสอบออกจากห้อง
  4. ต้องเขียนชื่อ-นามสกุลและรหัสนักศึกษาทุกหน้า — หน้าที่ไม่เขียนจะไม่ได้รับการตรวจ
  5. ไม่อนุญาตให้นำเอกสารใด ๆ เข้าห้องสอบ
  6. ไม่อนุญาตให้นำเครื่องคิดเลขเข้าห้องสอบ
สองข้อที่กระทบการเตรียมตัวโดยตรง
ต้องเขียนชื่อทุกหน้า — ข้อ 4 ของคำสั่ง

“หน้าที่ไม่เขียนชื่อและรหัสจะไม่ได้รับการตรวจให้คะแนน” ปีนี้ข้อสอบมี 6 ข้อ น่าจะหนากว่า 10 หน้า — เผื่อเวลา 2 นาทีตอนต้นเขียนชื่อให้ครบทุกหน้าก่อนเริ่มทำ จะปลอดภัยที่สุด

2. โจทย์ข้อ 2 ปีที่แล้ว (มีตัวจริง)

คัดจากกระดาษข้อสอบปีที่แล้ว

“จงเขียนโปรแกรมภาษา Assembly ในการหน่วงเวลา (Delay) ขนาด 1ms (10 คะแนน) โดยสมมติที่ความถี่ 2MHz พร้อมแสดงวิธีการคำนวณมาอย่างละเอียด (10 คะแนน) (รวม 20 คะแนน)”

อาจารย์เคยยกคำตอบของนักศึกษาคนหนึ่งมาโพสต์ไว้เป็นตัวอย่างเตือน — เขาลอกโปรแกรมลบเลขจาก Lab 2 มาแล้วเขียนต่อท้ายว่า “delay 1 ms” ทั้งที่ไม่มีลูป ไม่มีตัวนับ และไม่มีการคำนวณ T-state เลย

→ ดูเฉลยเต็มของข้อนี้ พร้อมเครื่องมือคำนวณ

3. คำบอกเล่าจากรุ่นพี่

รุ่นพี่คนที่ 1 เชื่อได้ปานกลาง — พี่เขาบอกเองว่าจำไม่ค่อยได้
“มันจะมี datasheet, มีตาราง register นู่นนี่นั่นให้ ไม่ต้องเดาวิธีตอบ ส่วนมากกรอกลงช่องให้ถูกพอ มีแค่อธิบาย fold back memory ที่ให้เขียนเองมั้ง”

แปลว่าอะไร

รุ่นพี่คนที่ 2 เชื่อได้ — แต่พี่เขาก็บอกว่าจำได้ไม่หมด
“1, 3, 4, 5 มั้ง พี่ก็จำไม่ได้ ที่เหลือเหมือนจะเป็นปลายภาคมั้ง memory foldback อ่ะ

จำได้แค่ข้อ 3 ปีพี่ให้เขียนโปรแกรมหา delay อันนี้เอามาจากแลป z80 อันที่สามมั้ง

ที่เหลือเหมือนจะเป็นให้เขียนคำสั่งดูจาก opcode แล้วเอามาทำ cycle อันนี้ดูจาก instruction set ที่ให้ในห้องสอบได้ยุ”

แปลว่าอะไร

4. เทียบปีที่แล้วกับปีนี้

ปีที่แล้วปีนี้ต้องทำอะไรเพิ่ม
จำนวนข้อ3 ข้อ6 ข้อเนื้อหากว้างขึ้นเท่าตัว บริหารเวลาให้ดี
คะแนน80120—
รู้โจทย์ล่วงหน้าไม่รู้อาจารย์ประกาศทั้ง 6 ข้อไม่มีข้ออ้าง — เตรียมตรงจุดได้เลย
ต่อประสาน memory + I/O (วาดวงจร)ไม่มีข้อ 1 · 25 คะแนนของใหม่ — ดู ข้อ 1
Memory foldbackมี (รุ่นพี่ยืนยัน)ข้อ 2 + 6 · 30 คะแนนน้ำหนักเพิ่ม — ดู ข้อ 2
เขียน Assemblyข้อ 1 · 30 คะแนนข้อ 3 · 20 คะแนนดู ข้อ 3
โปรแกรมหน่วงเวลา (Delay)ข้อ 2 · 20 คะแนนอาจซ่อนอยู่ใน “……….” ของข้อ 3ต้องเตรียม — ดู หน้า Delay
Opcode / Addressอยู่ในข้อ 3ข้อ 4 · 25 คะแนนแยกออกมาเป็นข้อเดี่ยว — ดู ข้อ 4
Timing Diagramข้อ 3 · 30 คะแนนข้อ 5 · 20 คะแนนดู ข้อ 5
ข้อสรุปที่สำคัญที่สุดของหน้านี้

อาจารย์เขียนข้อ 3 ว่า “จงเขียนโค้ด Z80 Assembly ……….” จุดไข่ปลาคือส่วนที่ยังไม่บอก และปีที่แล้วข้อ Assembly กับข้อ Delay เป็นคนละข้อกัน รวมกัน 50 จาก 80 คะแนน
⇒ ต้องเตรียมทั้งสองแบบ: โปรแกรมที่คุยกับ memory/I/O (สำหรับข้อ 4 กับ 5 ต่อยอด) และโปรแกรมหน่วงเวลาพร้อมการคำนวณ T-state

5. ปีนี้เรียน Lab ถึงแค่ไหน

ปีนี้เรียนถึง Lab 2 เท่านั้น (ปีที่แล้วเรียนถึง Lab 11) ซึ่งจำกัดขอบเขตของโจทย์ Assembly ได้พอสมควร

เรียนแล้ว

Lab 1 — คำสั่งพื้นฐาน

แก้ค่าใน memory, ASCII, LD r,n, ADD A,r, HALT
ใช้ C16 คอมไพล์และ Z80Sim รัน/trace

เรียนแล้ว

Lab 2 — ET-Board + LED

บวก/ลบเลขจาก memory (LD HL,nn, LD A,(HL), ADD, SUB)
และไฟวิ่ง LED ด้วย OUT (40H),A + JR

ยังไม่ได้เรียน

Lab 3 — Delay

โปรแกรมหน่วงเวลาและการคำนวณ T-state
แต่โจทย์ปีที่แล้วออกจากแลปนี้ ⇒ ยังต้องเตรียม

คาดการณ์ขอบเขตของข้อ 3

ถ้ายึดตามที่เรียนจริง คำสั่งที่ควรใช้ให้คล่องมีแค่ชุดนี้

อย่าลืมขึ้นต้นด้วย cpu "z80.tbl" และ hof "INT8" ตามที่ใบงานทุกใบใช้ (มันคืออะไร)

LD   r, n        LD   r, r'       LD   dd, nn
LD   A, (HL)     LD   (HL), A     LD   A, (DE)
LD   A, (nn)     LD   (nn), A
ADD  A, r        SUB  r           INC/DEC r, dd
XOR  A           CPL
IN   A, (n)      OUT  (n), A
JR   e / cc,e    DJNZ e           JP   nn
HALT

ไม่น่าออก: LDIR, BIT/SET/RES, IX/IY, interrupt, 8255 — เพราะยังไม่ได้เรียน แต่ถ้ารู้ไว้ก็ไม่เสียหาย

6. แผนบริหารเวลาในห้องสอบ

120 คะแนน 6 ข้อ — เรียงลำดับทำจากข้อที่คะแนนต่อนาทีสูงสุด

เหตุผลของลำดับนี้
← ข้อ 6 · RAM ก่อน สไลด์ผิด →