Assembly 向缓冲区提供偏移量时出现无效的有效地址错误
我从下面得到一个无效的有效地址,但我不明白为什么。为了清晰起见,我加入了变量/常量定义Assembly 向缓冲区提供偏移量时出现无效的有效地址错误,assembly,x86,nasm,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
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
TurnTreeBuff:resb455;TurnNum(1字节)+MT(16字节)+PM(16字节)
; + BoardState(2字节)=35字节*13圈=455字节
TURNTREEREC equ 35;翻树记录长度
mov字节[TurnTreeBuff+ebx*TURNTREEREC],bl;将turn#复制到TurnTreeBuff地址中的比例因子只能是2、4或8(或1,如果不指定比例因子,则会得到1)。您试图使用不受支持的比例因子35,因此会出现错误
您可以在中阅读有关寻址的更多信息。例如,名为“指定偏移量”的部分(我的手册副本中的第3.7.5节)