Assembly 6800 Looping? Testing specific bits in a word
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 开发者_JAVA百科= 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.
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 )
精彩评论