【问题标题】:8086 TASM: Illegal Indexing Mode [duplicate]8086 TASM:非法索引模式 [重复]
【发布时间】:2013-04-13 08:59:29
【问题描述】:

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

我的数据段具有以下设置,用于键盘输入:

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) 谷歌没有提供任何有用的答案。 如有必要,我可以发布我的全部代码。

【问题讨论】:

标签: assembly x86 x86-16 tasm


【解决方案1】:

很确定原因是您不能将 DX 寄存器用作指针。

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

 lea bx, data0
 mov al, [bx]

【讨论】:

  • 谢谢,这解决了这个问题,我不知道必须使用 BX。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多