If everything else were equal (which it probably isn't), code like that sounds like a good reason to use structured Assembler macros. Bill Fairchild Franklin, TN
----- Original Message ----- From: "Tony Thigpen" <[email protected]> To: [email protected] Sent: Wednesday, December 4, 2013 2:16:41 PM Subject: Re: Base-less programming I try to balance the use of B *+2+4 style branches against the cluttering up by using a bunch of labels. It's never for more than 2 instructions. Nothing worse than looking at long series of tests followed by bit setting instructions where every other instruction has a label. Tony Thigpen -----Original Message ----- From: Chris Craddock Sent: 12/04/2013 02:58 PM >> Date: Wed, 4 Dec 2013 13:37:31 -0600 >> From: [email protected] >> Subject: Re: Base-less programming >> To: [email protected] >> > <snip>> > >>> Am I reading the book right? >>> >> >> No. Although the assembled instructions have the displacement in half >> words, your source code should still use the original "offset". HLASM >> itself will halve the value. And it will complain bitterly if the offset is >> not even. So you just replace the B??? with J??? and leave the operand >> itself alone. > > Well.. yes, but being pedantic; how about just using a label?!? I cringe > whenever I see carefully crafted branch statements with instruction lengths. > That's trivially broken by any down-stream change, whereas a label as a jump > or branch target will never be wrong - no matter how much the code changes in > between. Make your own and the next poor fool's job easier. > Just saying.... > CC >
