เครื่องจำลองตัวนับโปรแกรม
ใช้ป้ายกำกับเช่น loop:, คำสั่งลำดับอย่าง LOAD หรือ ADD, branch เช่น BR label หรือ BR +8 รวมถึง JMP, CALL, RET และ HALT
เครื่องจำลองเพื่อการเรียนรู้นี้กำหนดที่อยู่ให้บรรทัดคำสั่งที่ไม่ว่างแต่ละบรรทัด และติดตามตัวนับโปรแกรม (PC) แบบย่อ ไม่ใช่เครื่องนับบรรทัดโค้ด คำสั่งต้นฉบับ หรือโทเคน และไม่คอมไพล์หรือรันภาษาโปรแกรม
วิธีติดตามรายการคำสั่ง
-
1
กรอกรายการสั้น ๆ
ใช้คำสั่งความยาวคงที่หนึ่งคำสั่งต่อบรรทัด และป้าย ASCII เช่น loop: หากต้องการ
-
2
เลือกรูปแบบที่อยู่
ตั้งที่อยู่เริ่มต้น ขนาดคำสั่ง 1, 2, 4 หรือ 8 ไบต์ ความกว้าง 16/24/32 บิต และรูปแบบแสดงผล
-
3
ตั้งค่าการติดตาม
กำหนดให้ทุก branch ที่รู้จักใช้ตัวเลือกเดียวกันว่าแยกสาขาหรือไม่ เลือก 1–80 ขั้น แล้วตรวจดูการเปลี่ยน PC
แบบจำลองที่รองรับ
| รายการ | การทำงาน |
|---|---|
opcode อื่น เช่น LOAD หรือ ADD |
เดินหน้าตามขนาดคำสั่งคงที่ที่เลือก |
BR, BRA, BRANCH, BEQ, BNE, BGT, BGE, BLT, BLE, BZ, BNZ, JZ, JNZ |
ใช้ตัวเลือกกลางว่าแยกสาขาหรือไม่ |
JMP, JUMP, GOTO |
กระโดดไปยังป้ายหรือที่อยู่ตัวเลข |
CALL, JSR, BL / RET, RETURN |
เก็บ / นำที่อยู่คืนกลับแบบจำลองออก |
HALT, HLT, STOP |
หยุดที่ PC ปัจจุบัน |
เป้าหมายอาจเป็นป้าย ASCII ที่อยู่ฐานสิบ หรือที่อยู่ฐานสิบหกที่ขึ้นต้นด้วย 0x ค่าแบบมีเครื่องหมาย เช่น +8 จะอ้างอิงจาก PC ลำดับถัดไป ส่วนตัวเลขไม่มีเครื่องหมายเป็นที่อยู่สัมบูรณ์ ที่อยู่จะวนตามความกว้างบิตที่เลือก // และ ; เริ่มหมายเหตุ โอเปอแรนด์มีไว้แสดงเท่านั้น
ขีดจำกัดและความเป็นส่วนตัว
- อินพุตถูกตัดที่ 1,800 อักขระ และหยุดแยกวิเคราะห์หลัง 200 คำสั่ง
- การติดตามจำกัด 1–80 ขั้น และ branch แบบมีเงื่อนไขทั้งหมดใช้ตัวเลือกกลางเดียวกัน
- ไม่จำลองรีจิสเตอร์ หน่วยความจำ แฟล็ก pipeline, delay slot, การเข้ารหัส หรือคำสั่งความยาวแปรผัน
- โหมดปกติส่งรายการมายังเซิร์ฟเวอร์ของเว็บไซต์นี้ ส่วนโหมดทีละขั้นใส่รายการใน URL ด้วย อย่าวางโค้ดลับ
คำถามที่พบบ่อย
ไม่ เครื่องมือกำหนดที่อยู่ให้บรรทัดคำสั่งและติดตาม PC โดยไม่นับบรรทัดต้นฉบับ คำสั่ง หรือโทเคน
ไม่ รองรับเพียง opcode ควบคุมทั่วไปกลุ่มเล็ก ๆ ส่วน opcode อื่นแค่เลื่อน PC และไม่ประมวลผลโอเปอแรนด์
นำ offset บวกกับ PC ลำดับถัดไป จาก 0x1000 และคำสั่ง 4 ไบต์ เป้าหมายคือ 0x100C
รายการถูกส่งมายังเว็บไซต์นี้เพื่อแสดงผลด้วย เซิร์ฟเวอร์ของเรา และอยู่ใน URL เมื่อใช้โหมดทีละขั้น ไม่มี API ภายนอกวิเคราะห์โค้ด แต่ควรหลีกเลี่ยงโค้ดลับ
เครื่องมือที่เกี่ยวข้อง
ตัวสร้างการตั้งค่า Webpack
สร้าง webpack.config.js สำหรับ webpack 5 ทั้งแบบ JavaScript ล้วน React หรือ Vue พร้อม TypeScript, Babel, CSS หรือ Sass, รูปภาพ, HtmlWebpackPlugin, เซิร์ฟเวอร์สำหรับพัฒนา และคำสั่ง npm install
เครื่องแปลงฐานตัวเลข
แปลงตัวเลขระหว่างฐานสอง ฐานแปด ฐานสิบ ฐานสิบหก และฐานกำหนดเองตั้งแต่ 2 ถึง 36 พร้อมการแยกค่าประจำหลัก
อ้างอิงตัวอักษร HTML
รายการที่สามารถค้นหาได้ขององค์ประกอบ HTML พร้อมรหัสชื่อและรหัสตัวเลข รวมถึงฟังก์ชันสำเนาด้วยคลิกเดียวสำหรับตัวอักษรพิเศษและสัญลักษณ์ต่างๆ
เครื่องสุ่มที่อยู่
สร้างระเบียนคล้ายที่อยู่ 1–20 รายการสำหรับแบบจำลองและการทดสอบ ด้วยรูปแบบประเทศแบบย่อ
ตัวตรวจสอบ OpenAPI
วางเอกสาร OpenAPI หรือ Swagger แบบ JSON หรือ YAML แล้วตรวจโครงสร้างหลัก: ฟิลด์เวอร์ชัน ออบเจกต์ info และ paths พร้อมข้อผิดพลาดและคำเตือนที่ชัดเจน
ตัวแปลง Timestamp
แปลง timestamp ของ Unix ในหน่วยวินาทีหรือมิลลิวินาทีเป็นวันที่ที่อ่านง่ายในเขตเวลา UTC และเขตเวลาหลัก และแปลงวันที่กลับเป็นค่า epoch
เครื่องมือนี้มีให้บริการในภาษาอื่น
- Simulator program counter [ID]
- Programmzähler-Simulator [DE]
- Trình mô phỏng bộ đếm chương trình [VI]
- محاكي عدّاد البرنامج [AR]
- 프로그램 카운터 시뮬레이터 [KO]
- Symulator licznika rozkazów [PL]
- Simulador de contador de programa [PT]
- Simulator för programräknare [SV]
- プログラムカウンターシミュレーター [JA]
- Simulador del contador de programa [ES]
- Simulateur de compteur de programme [FR]
- Programmatellersimulator [NL]
- Simulatore del program counter [IT]
- Симулятор счётчика команд [RU]
- Program sayacı simülatörü [TR]
- 程序计数器模拟器 [ZH]
- Program Counter Simulator [EN]