我正试图在nasm汇编中制作一个小乒乓球游戏(这就是我学习语言的方式:)) 但我遇到了问题,我无法访问列表中的任何项目
我的代码:
mov eax,counter ;counter=2 double checked
mov esi,bitmap_data+eax*4 ;copy the 2nd item of the array in to esi
位图数据是in.bss部分
bitmap_data: resd 100
试图:
mov eax,2
mov esi,[bitmap_data+eax*4] ;copy the 2nd item of the array in to esi
这不是在esi中保存列表的正确(第2个)元素,而以下是正确的
mov esi,[bitmap_data+2*4]
但我需要能够通过使用变量
来更改我得到的项目答案 0 :(得分:0)
将内存访问括在方括号中,如下所示:
mov esi,[bitmap_data+eax*4]
这应该让汇编程序感到高兴。
根据您的更新进行更新: 尝试分解你的指示。尝试:
mov eax, counter
shl eax, 2
add eax, bitmap_data
mov esi, [eax]
有任何改变吗?
答案 1 :(得分:0)
什么是counter
?你很可能想要:
mov eax, [counter]
mov esi, [bitmap_data + eax * 4]
mov eax, [counter]
mov esi, [bitmap_data + eax * 4]
当 = 0时,数组中的“第一个”(第0个)项将显示。当
eax
= 2时,您将获得数组中的“第三个”项。你在找哪一个?