我有使用的旧版(DOS时代)代码:
push cs
pop ds
并且与TASM v1.01完美结合
尝试用TASM v5.4组装时,push cs
指令出现'非法索引模式'错误。
我该如何解决?
(搜索[tasm] illegal indexing mode
没有针对此特定问题返回任何结果。)
编辑:这是减少到最少(废话)的代码,仍然会产生我正在谈论的错误。
assume cs:code
code segment
main proc
push cs
main endp
code ends
end
这是汇编输出:
Turbo Assembler Version 5.4 Copyright (c) 1988, 2010 Embarcadero Technologies, Inc.
Assembling file: sample.ASM
**Error** sample.ASM(4) Illegal indexing mode
Error messages: 1
Warning messages: None
Passes: 1
code SEGMENT
指令之后即可。这是您通常想要的位置,因为您通常不希望在其他段中假设CS为code
。 ((您也可以通过让TASM使用至少两次通过来解决此问题。这既需要使用/m
选项,又需要在代码中至少具有一个需要第二次通过的构造,例如前向引用。该错误TASM 5.4中的问题似乎是它无法识别assume cs:code
是前向引用。)