Marie汇编代码在MarieSim中汇编提示指令不识别如何解决?
Marie汇编指令不识别问题修复方案
你遇到的3个汇编错误全部为语法规则不匹配导致,具体问题和修复方法如下:
- 标签格式错误:
Done标签前存在多余前导空格,Marie汇编要求所有标签必须顶格书写,无前置空白字符,否则汇编器会将标签识别为未知指令。 skipcond操作数非法:2009版MarieSim的汇编器对skipcond的操作数格式有明确要求,要么使用十进制的0/1/2(分别对应AC<0、AC=0、AC>0时跳过下一条指令),要么使用带H后缀的十六进制值000H/400H/800H,你代码中直接写的800、000属于非法操作数,触发指令不识别报错。
修正后可正常汇编的代码
org 100 input store N input store D load N store K Outer, load K skipcond 2 jump Done load Incr store Pow load D store J Inner, load J add J subt K skipcond 0 jump AftIn load J add J store J load Pow add Pow store Pow jump Inner AftIn, load K subt J store K load Answer add Pow store Answer jump Outer Done, load K skipcond 0 jump Disp load Answer subt Incr Disp, load Answer output halt N, dec 0 D, dec 0 K, dec 0 J, dec 0 Pow, dec 0 Answer, dec 0 Incr, dec 1
如果你更习惯使用十六进制写法,把所有skipcond后的操作数改为800H、000H也可以正常汇编。
内容的提问来源于stack exchange,提问作者TK708
相关产品推荐
相关产品推荐

