2017-04-25 64 views
-1

我對彙編語言有疑問。我知道如何加減數字。但我堅持添加奇數並將其設置到某個位置的數字。彙編語言:從某個位置添加奇數

問題: 從位置0050-0059取數字,加上所有奇數的數字之和並將它們存儲在005A中。 我該如何去做這件事?

+2

你怎麼測試如果數爲奇數?計算機如何在內存中存儲整數?你能否容易地知道數字是否奇怪?嘗試一些數字,CPU如何看待它們,看看你能不能找出一些東西。 – Ped7g

+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