我正在编写一个需要通过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) 谷歌没有提出任何有用的答案。 如有必要,我可以发布我的全部代码。
答案 0 :(得分:8)
非常确定原因是你不能将DX寄存器用作指针。
尝试使用[si],[di]或[bx]:
lea bx, data0
mov al, [bx]