please dont rip this site

SX Microcontroller Bit Math Method

Converting a 3-bit number to a 8-bit mask

From: Mike Keitz. There is a trick method that works for 4 bits. It replaces a 2-bit number in a variable with a 4-bit mask:

        mov     W, ++BitP       ;W =    0001  0010  0011 0100
        snb     BitP.1          ;If 0 or 1, result is almost correct now.
        or      BitP, W         ;BitP =[0000][0001] 0011 0111
        inc     BitP            ;BitP = 0001  0010  0100 1000

It could be the core of an 8-bit routine thus:

; Convert 3-bit number (0-7) in INDEX to a 8-bit mask (00000001 ...
; 10000000) in BitP.
	mov	W, INDEX
	and	W, #%00000011	;Start with half of the mask.
	mov	BitP, W
	mov	W, ++BitP	;The 4-bit converter
	snb	BitP.1
	or	BitP, W
	inc	BitP
	snb	INDEX.2	;Is it high 4 bits?
	swap	BitP

via lookup table

7 cycles including the call. 10 words.
two_to_n:
	and	W, #$7
	add	PC, W
	retw	$1
	retw	$2
	retw	$4
	retw	$8
	retw	$10
	retw	$20
	retw	$40
	retw	$80

Tricky

UNTESTED! 8 cycles, 8 words. Iso.
	;build MASK from INDEX.1-3

	mov	w,#1
	sb	INDEX.2
	mov	w,#4
	mov	MASK,w
	sb	INDEX.3
	swap	MASK
	sb	INDEX.1
	rl	MASK
	

Interested:


file: /Techref/scenix/lib/math/bit/mask_sx.htm, 1KB, , updated: 2004/6/10 13:40, local time: 2024/11/8 15:44,
TOP NEW HELP FIND: 
18.226.88.141:LOG IN
©2024 PLEASE DON'T RIP! THIS SITE CLOSES OCT 28, 2024 SO LONG AND THANKS FOR ALL THE FISH!

 ©2024 These pages are served without commercial sponsorship. (No popup ads, etc...).Bandwidth abuse increases hosting cost forcing sponsorship or shutdown. This server aggressively defends against automated copying for any reason including offline viewing, duplication, etc... Please respect this requirement and DO NOT RIP THIS SITE. Questions?
Please DO link to this page! Digg it! / MAKE!

<A HREF="http://www.massmind.org/Techref/scenix/lib/math/bit/mask_sx.htm"> SX Microcontroller Bit Math Method Converting a 3-bit number to a 8-bit mask</A>

After you find an appropriate page, you are invited to your to this massmind site! (posts will be visible only to you before review) Just type a nice message (short messages are blocked as spam) in the box and press the Post button. (HTML welcomed, but not the <A tag: Instead, use the link box to link to another page. A tutorial is available Members can login to post directly, become page editors, and be credited for their posts.


Link? Put it here: 
if you want a response, please enter your email address: 
Attn spammers: All posts are reviewed before being made visible to anyone other than the poster.
Did you find what you needed?

 

Welcome to massmind.org!

 

Welcome to www.massmind.org!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  .