Assembly Languages: PDP8
A simple computer system design Bus ?
Assembly Language ภาษาแอสแซมบลีขึ้นอยู่สถาปัตยกรรมของ CPU และหน่วยความจำอย่างมาก ความหลากหลายของคอมพิวเตอร์มีจำนวนมาก แต่ก็มีความไม่เหมือนที่สามารถแยกเยอะคอมพิวเตอร์เหล่านั้นออกจากกันได้ อย่างไรก็ตาม ความหลากหลายของคอมพิวเตอร์นั้น ต่างก็มี operation พื้นฐานทั่วๆไปที่เหมือนกัน นั่นก็คือ โปรแกรมที่จะถูกปฏิบัติงานถูกจัดเก็บในหน่วยความจำ
Learning an assembly language for the PDP-8 อธิบายการเขียนโปรแกรมภาษาระดับต่ำบนเครื่อง PDP8 และ simulator สำหรับ PDP8 PDP8 ถูกสร้างโดย Digital Equipment Corporation ในปี 1965 และยังคงถูกผลิตขายต่อไปจนถึงปี 1984 เป็น mini computer ที่ได้รับความนิยมเป็นอย่างยิ่ง Words ที่ขนาด 12-bit และมีหน่วยความจำ 4096 words มี interface ที่ค่อนข้างยืดหยุ่น จึงถูกนำไปใช้ทำงานใน lab Words ?
Why study such an old machine? เพื่อเรียนรู้ส่วนหนึ่งของวิวัฒนาการที่ยาวนาน มีความง่ายและความงดงาม (elegant) ชุดคำสั่งมีน้อย (Small instruction set) มี simulator นำเสนอหลายๆแนวคิดของการเขียนโปรแกรมภาษาเครื่อง
The simulator is based upon the following computer configuration:
Using a simulator to execute โปรแกรมถูกเขียนในภาษาโดยเฉพาะ Assembler แปลโปรแกรมไปสู่ภาษาเครื่อง(ฐานสอง โปรแกรมที่ฐานสองถูกนำเข้าสู่หน่วยความจำของ simulator
Using a simulator to execute
CPU of simulated machine PDP8 มีรีจีสเตอร์ดังนี้ - Accumulator (ACC) ขนาด 12 บิต 1 ตัว - รีจีสเตอร์ขนาด 1 บิต 2 ตัวสำหรับ link (carry flag) & accumulator extension interrupts enabled - peripheral control - Program Counter (PC) ขนาด 12 บิต 1 ตัวสำหรับชี้คำสั่งถัดไป - Instruction Register (IR) ขนาด 12 บิต 1 ตัวสำหรับเก็บคำสั่ง(instruction)
CPU of simulated machine
Basic Instruction format of PDP8 จำนวนของ opcode มีเท่าไร ? ขนาดของ information เท่าไร
Instruction format of PDP8
Memory reference instructions เป็นการปฏิบัติงานระหว่าง accumulator และหน่วยความจำ AND – ปฏิบัติ logical AND ระหว่าง accumulator และตำแหน่งหน่วยความจำ TAD – ปฏิบัติการบวกแบบ two’s complement ระหว่าง accumulator และตำแหน่งหน่วยความจำ ISZ – เพิ่ม addressed location ขึ้น 1 ค่าและข้ามถ้าผลลัพธ์คือศูนย์ DCA - ฝาก accumulator ในหน่วยความจำและ clear accumulator ทั้งหมดนี้ใช้ตำแหน่งของหน่วยความจำเป็น operand
Control instructions นี้เป็นคำสั่งที่อ้างถึงหน่วยความจำ แต่มีพฤติกรรมเหมือนคำสั่งควบคุม JMS – กระโดดไป subroutine JMP - กระโดดไปตำแหน่งตามที่กำหนด
I/O and Operate instructions กลุ่มของคำสั่งที่ควบคุมระบบ Input output IOT - ปฏิบัติ I/O operation OPR - เป็นการใช้ accumulator link และ MQ registers