You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于SIC/XE中JLT *-19等指令含义及实践环境的技术问询

关于SIC/XE宏程序中跳转指令及练习工具的解答

1. JEQ *-3 和 JLT *-19 的指令含义

在SIC/XE汇编语言中:

  • JEQ 是相等条件跳转指令:当累加器A中的值为0时触发跳转;JLT 是小于条件跳转指令:当累加器A中的值小于0时触发跳转。
  • * 代表当前汇编地址计数器的当前值(即这条跳转指令本身的起始地址)。*-3 表示当前指令地址减去3字节,*-19 表示当前指令地址减去19字节。
    • 由于SIC/XE的J系列跳转指令本身占3字节,JEQ *-3 实际是跳转到这条指令的前一个指令位置(多用于循环回退或条件重检);JLT *-19 则是向后跳19字节的位置,用于分支回退到更早的代码段。

2. 确定JLT *-19的跳转目标位置

要找到跳转后的具体位置,需结合汇编代码的地址和各指令/数据的字节长度计算:

  • 首先明确当前JLT *-19指令的汇编地址(假设为ADDR),目标地址即为ADDR - 19。
  • 然后将宏展开后的完整代码逐行标注地址:
    • SIC/XE不同格式的指令字节长度不同:RR型指令占1字节,RX/RS/SS型占4字节,SI型占2字节;数据段的BYTE按定义字符数占字节(如BYTE C'ABC'占3字节),WORD固定占3字节。
    • 从起始地址开始累加每一行的字节数,找到ADDR - 19对应的代码行,就是跳转后的具体位置。
  • 举例:若JLT *-19在地址0x120,目标地址为0x120 - 0x13 = 0x10D,对照地址表即可找到对应代码块。

3. 练习SIC/XE程序的虚拟机/工具推荐

  • SIC/XE教学模拟器:多数高校计算机系开发的开源工具,支持汇编代码编写、宏展开查看、单步执行、寄存器/内存实时监控,适合入门练习指令执行和宏的工作流程。
  • SIC/XE汇编器:可将手写的SIC/XE汇编代码转换为目标代码,搭配模拟器运行,部分工具还会显示宏展开的中间代码,帮助理解宏的替换逻辑。
  • Python实现的SIC/XE工具:有开源Python脚本实现了SIC/XE的汇编和模拟功能,可直接运行或修改,适合深入理解底层执行逻辑。

内容的提问来源于stack exchange,提问作者Midhun Raj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 05:22:35