เครื่องจำลองตัวนับโปรแกรม

ร่องรอย PC

ใช้ป้ายกำกับเช่น loop:, คำสั่งลำดับอย่าง LOAD หรือ ADD, branch เช่น BR label หรือ BR +8 รวมถึง JMP, CALL, RET และ HALT

ถัดไป

เครื่องจำลองเพื่อการเรียนรู้นี้กำหนดที่อยู่ให้บรรทัดคำสั่งที่ไม่ว่างแต่ละบรรทัด และติดตามตัวนับโปรแกรม (PC) แบบย่อ ไม่ใช่เครื่องนับบรรทัดโค้ด คำสั่งต้นฉบับ หรือโทเคน และไม่คอมไพล์หรือรันภาษาโปรแกรม

วิธีติดตามรายการคำสั่ง

  1. 1

    กรอกรายการสั้น ๆ

    ใช้คำสั่งความยาวคงที่หนึ่งคำสั่งต่อบรรทัด และป้าย ASCII เช่น loop: หากต้องการ

  2. 2

    เลือกรูปแบบที่อยู่

    ตั้งที่อยู่เริ่มต้น ขนาดคำสั่ง 1, 2, 4 หรือ 8 ไบต์ ความกว้าง 16/24/32 บิต และรูปแบบแสดงผล

  3. 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

เครื่องมือนี้มีให้บริการในภาษาอื่น