views:

42

answers:

1

Hi all,

Trying to help a friend out with a friend out with some assembly code, but I've run into a small problem.

I'm trying to work out how I would loop through a 8 bit binary word and check the value of specific bits. I need to check bits 1, 3, 5 & 7 to see if they are 1.

i.e.

int count = 1; 
int bitAdd = 0;
foreach (var bit in word) {
    if ((count = 1 && bit = 1) || (count = 3 && bit = 1) || (count = 5 && bit = 1) || (count = 7 && bit = 1)) {
      bitAdd += 1;
    }
    count += 1;
}

Help is much appreciated.

//Edit Sorry, pusdo code was a bit ambiguous. Tried to make it a little more succinct.

A: 

I think the BTST instruction will be of use to you here.

http://68k.hax.com/BTST

For example:

btst #5, d0

Will check if bit 5 in the value in d0 is set.

(This will work for the 68000, I'm not too sure about the 6800, googling tells me that BITA or BITB instructions might be of use: http://www.textfiles.com/programming/CARDS/6800 )

Jimmeh
Thanks, I'll look into that.
Jeremy