汇编语言:从某个位置添加奇数

时间:2017-04-25 18:00:14

标签: assembly

我对汇编语言有疑问。我知道如何添加和减去数字。但是我坚持要添加奇怪的数字并将它们设置到一个位置。

问题: 从位置0050-0059获取数字,添加所有奇数数字的总和并将它们存储在005A中。 我该怎么做呢?

1 个答案:

答案 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