嗨,我是目前用于编码32位汇编的程序集的新手,我正在尝试访问我初始化的数组。
这是数组
lookup: dd 0, 3, 6, 9, 2, 5, 8, 1, 4, 7
这就是我想要完成的事情
add bh, [lookup+al*4]
al
是我要添加到bh
c中的代码是
b += a[i];
(b
为bh
,数组为lookup
,al
为i
)
关于如何实现这一点的任何建议都很棒,谢谢!
答案 0 :(得分:1)
作为评论中的迈克尔indicated,您无法在有效地址中使用al
。相反,我们会将al
零延伸到eax
,并改为使用它:
movzx eax, al ; zero-extend 8-bit al into 32-bit eax
add bh, [lookup + eax*4]