8086 TASM:非法索引模式

时间:2013-04-19 21:12:03

标签: assembly x86 x86-16 tasm

我正在编写一个需要通过TASM v3.1编译的8086汇编程序。我遇到了一个我似乎无法解决的错误。

我的数据段为键盘输入设置了以下设置:

paraO Label Byte
  maxO DB 5
  actO DB ?
  dataO DB 5 dup('$')

我要做的是输入第一个字符,所以dataO的第一个字节:

lea dx, dataO
mov bl, [dx]

但是,当我尝试编译时,我收到此错误:

**Error** h5.asm(152) Illegal indexing mode

第152行是“mov bl,[dx]”

非常感谢任何帮助。 如果重要,我通过DOSBox运行TASM(我的笔记本电脑运行64位Win7) 谷歌没有提出任何有用的答案。 如有必要,我可以发布我的全部代码。

1 个答案:

答案 0 :(得分:8)

非常确定原因是你不能将DX寄存器用作指针。

尝试使用[si],[di]或[bx]:

 lea bx, data0
 mov al, [bx]