Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 向缓冲区提供偏移量时出现无效的有效地址错误_Assembly_X86_Nasm - Fatal编程技术网

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节)