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

MARIE汇编程序第一、第二遍扫描填写方法及代码报错问题求解

MARIE汇编两遍扫描及报错修复方案

常见报错修复

1. Repeat标识符无效问题

  • MARIE汇编标签命名规则:仅允许以字母开头,仅可包含字母、数字、下划线,不可与指令助记符、汇编保留字重名,标签定义末尾必须加冒号:
  • 修复方案:
    • 若Repeat为自定义循环标签,检查是否漏写末尾冒号,确认没有拼写错误
    • 若出现保留字冲突,将Repeat改为其他自定义标签名,例如LoopStart:

2. 变量未声明数据类型问题

  • MARIE要求所有变量必须在程序终止指令Halt之后,使用DEC(十进制)或HEX(十六进制)伪指令声明初始值,格式为变量名, 伪指令 初始值
  • 示例声明代码:
    var1, DEC 10  / 声明十进制变量var1,初始值为10
    var2, HEX F   / 声明十六进制变量var2,初始值为0xF(十进制15)
    res,  DEC 0   / 声明十进制结果变量res,初始值为0
    

两遍扫描操作注意事项

  • 第一遍扫描:仅做地址统计、符号表生成,遇到自定义标签、变量声明时,直接将对应名称和当前地址存入符号表即可
  • 第二遍扫描:基于已经生成的符号表,将代码中所有符号替换为对应地址,翻译为机器码,只要第一遍符号表填写正确,即可避免符号未定义类报错

完整示例代码参考

ORG 100       / 指定程序起始地址为0x100
LoopStart, Load var1  / 循环起始标签,第一遍扫描会将LoopStart对应地址存入符号表
Add var2
Store res
Subt ONE
Store var1
Skipcond 400  / 结果为正则跳转
Jump LoopStart
Halt
/ 变量声明区
var1, DEC 5
var2, DEC 2
res,  DEC 0
ONE,  DEC 1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:15:06