程序计数器模拟器
使用 loop: 这样的标签、LOAD 或 ADD 等顺序指令、BR label 或 BR +8 等分支,以及 JMP、CALL、RET 和 HALT。
这款教学模拟器为每个非空指令行分配地址,并跟踪简化的程序计数器(PC)变化。它不是代码行数、语句或 token 计数器,也不会编译或执行任何编程语言。
如何跟踪指令清单
-
1
输入简短清单
每行使用一条定长指令,并可添加 loop: 这样的 ASCII 标签。
-
2
选择地址模型
设置起始地址、1、2、4 或 8 字节指令大小、16/24/32 位宽度与显示格式。
-
3
设置跟踪方式
统一将所有已识别分支视为跳转或不跳转,选择 1–80 步并查看每次 PC 变化。
支持的模型
| 清单项目 | 模拟行为 |
|---|---|
LOAD、ADD 等其他 opcode |
按所选定长指令大小前进 |
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 步;所有条件分支共用同一个全局选项。
- 不模拟寄存器、内存、标志位、流水线、延迟槽、指令编码或变长指令。
- 标准模式通过 Livewire 将清单发送到本站;分步模式还会把清单写入网址。请勿粘贴机密代码。
常见问题
不会。它为指令行分配地址并跟踪 PC,不统计源代码行、语句或 token。
不支持。它只识别一小组通用控制流 opcode。其他 opcode 只让 PC 前进,操作数不会执行。
偏移量加到下一个顺序 PC 上。当前 PC 为 0x1000、指令大小为 4 字节时,目标是 0x100C。
清单会发送到本站供 Livewire 渲染,分步模式还会将其放入网址。本站不调用外部代码分析 API,但仍请避免机密代码。
相关工具
BBCode 转 HTML 转换器
将 BBCode(论坛标记)转换为干净的 HTML。支持格式标签、列表、引用、代码、图片、链接和表格。
二进制转 ASCII 转换器
粘贴二进制(用空格分隔的字节或一长串比特),即可得到它所表示的 ASCII 文本。支持 7 位和 8 位编码。
二进制转十六进制转换器
将二进制输入转换为纯大写十六进制值。非 0 和 1 字符会被忽略,前导零不会保留。
二进制转八进制转换器
通过每三位分组将二进制转为八进制。适合 Unix 权限、旧系统和紧凑的数字显示。
二进制转十进制
即时将二进制数转换为十进制。显示按位展开,让你看清每一位的贡献。
Base64 转 Hex 转换器
将 Base64 字符串转换为其底层字节的十六进制表示。适合检查令牌、密钥、证书和 JWT。