因此,我们开始在x86中做小事,但我根本无法掌握它。我们有这样的:在x86中遍历一个向量?
.Data
frequency DW 0, 260, 300, 330, 350, 390, 440, 500, 520, 590, 660, 700
我来遍历它,似乎很简单,对我来说:
mov EAX, frequency
mov ECX, 0 // as a counter
是不正确的,是吗?我正在考虑转移到EAX
频率的地址,但对我来说似乎并不合适。
任何人都可以帮助我知道如何做一个简单的[if != 700
]循环?
不要关心循环,只想知道如何将“频率”上的元素放入寄存器,然后继续获取下一个。
由于您将指针增加2以到达下一个元素,因此实际读取* word *而不是* dword *可能是个好主意。 –
这是一个好主意还是只是一个有效主意取决于你的具体目标体系结构。在许多情况下,在现代处理器上,这实际上会更快。但是你是对的,如果我读了一个字大小的值,它肯定会更清晰。 –