向缓冲区提供偏移时无效的有效地址错误

时间:2014-10-27 20:39:37

标签: assembly x86 nasm

我从下面得到了无效的有效地址,但我不明白为什么。为清晰起见,我已经包含了变量/常量定义。

TurnTreeBuff:   resb 455    ; TurnNum (1 byte) + MT (16 bytes) + PM (16 bytes)
                            ; + BoardState (2 bytes) = 35 bytes * 13 turns = 455 bytes

TURNTREEREC equ 35          ; Turn tree record length

mov byte [TurnTreeBuff+ebx*TURNTREEREC],bl  ; copy turn # to TurnTreeBuff <-error here

1 个答案:

答案 0 :(得分:1)

地址中的比例因子只能是2,4或8(或1,如果不指定比例因子,则为1)。您尝试使用比例因子35,这是不受支持的,因此您会收到错误。

您可以在Intel's manuals中详细了解地址。例如,名为“指定偏移量”的部分(本手册副本中的第3.7.5节)。