我对汇编语言有疑问。我知道如何添加和减去数字。但是我坚持要添加奇怪的数字并将它们设置到一个位置。
问题: 从位置0050-0059获取数字,添加所有奇数数字的总和并将它们存储在005A中。 我该怎么做呢?
答案 0 :(得分:0)
通过测试最低有效位,您可以轻松测试数字是否为奇数。
//edx holds a pointer to 0x0050....
//set total to zero
@loopstart:
mov eax,[edx]
test eax,1 //non-destructive `and reg,1`
jz @even //if LSB = 0 then even, skip adding code
@odd: //LSB=1, thus odd, do the adding.
//add the numbers
@even:
//increase the pointer
//decrease the counter
//loop
@done:
//store the sum