emu8086无法识别LABELS @@指令 无法使用局部标号问题求助
emu8086不支持TASM
LABELS @@ 局部标号的解决方案 emu8086宣称的TASM语法兼容仅覆盖基础汇编语法,未实现TASM专属的高级扩展指令,LABELS @@就属于TASM独有的局部标号开关指令,因此无法被emu8086内置汇编器识别,可通过以下方法解决:
- 方案1:替换为emu8086原生支持的局部标号格式
emu8086原生支持.开头的局部标号,作用域为当前两个相邻全局标号之间的区域,无需额外前置开启指令,替换成本极低。
原有TASM代码示例:
适配emu8086后的代码示例:LABELS @@ MAIN PROC MOV AX, 1 @@CHECK: CMP AX, 10 JZ @@EXIT INC AX JMP @@CHECK @@EXIT: RET MAIN ENDPMAIN PROC MOV AX, 1 .CHECK: CMP AX, 10 JZ .EXIT INC AX JMP .CHECK .EXIT: RET MAIN ENDP - 方案2:批量修改现有代码
直接删除所有代码文件开头的LABELS @@指令,再全局批量将所有@@标号前缀替换为.,90%以上的场景无需额外调整其他逻辑即可正常编译运行。 - 方案3:特殊场景适配
如果原有代码存在跨全局标号引用@@局部标号的不符合规范的写法,需要将涉及到的局部标号改为全局唯一命名的普通标号,去掉前缀即可。
内容的提问来源于stack exchange,提问作者Algo
相关产品推荐
相关产品推荐

