我有一个结构数组,里面保存了一些信息,其中就包括下一个数组元素的编号,而编号是只占了一字节。
也就是说我的结构看起来像这样(为了清晰一些就写了一个数组):
nextindex struct
next byte[4] dup (?)
nextindex ends
其中next字段就是我要读的下一个结构的编号。所以资源里面看起来就像这样:
01 02 03 04 05 06 07 08 ……
第 一 组 | 第 二 组
于是问题就出现了:mov esi,dword prt 恐怕不行,因为我是直接从结构里面取,不想用临时变量。
若lpstructarray:WORD为资源基地址,structindex:BYTE为当前要取得结构编号
若要eax保存要取的结构地址,代码应该是
mov ecx,0
mov cl,structindex
imul ecx,4
mov eax,lpstructarray
add eax,ecx
还是怎么写?速度越快越好!
就是说我不太清楚应该怎么读写一个字节或字这样的非四字节的并且紧密排列的数组,并使用直接使用其中的元素。还请指教一二啊!
?
------解决方案--------------------------------------------------------
movzx ecx,bytr ptr structindex
lea eax,[lpstructarray+ecx*4]
------解决方案--------------------------------------------------------
lpstructarray:WORD为资源基地址
mov eax,lpstructarray
你先得确定这样能编译过去