Stupid question that's been annoying me
 
On Sun, Sep 30, 2001 at 01:38:13PM +0000, Pete Turnbull wrote:
> On Sep 29, 23:32, Jeffrey S. Sharp wrote:
> > Yes, I'm actually going to ask a question about two's complement
> > arithmetic!  I feel quite stupid for mailing this, but I just can't
> figure
> > it out.  And believe it or not, it really does have something to do with
> > classic computing.  All right, here goes...
> >
> > While I was in class Thursday [...] I created the following table:
> 
> [ snip ]
> 
> > Note that the C and V flags behave differently in each half.  This is
> very
> > disturbing, since I'm fairly certain that subtraction is implemented in
> > many processors as adding a negated subtrahend (ergo, I should see no
> > difference in the flags).  What have I done wrong in my table?
> 
> Firstly, you're assuming (on the left) that "carry" is the same as
> "borrow". Wrong!  If you are subtracting, working the columns
> right-to-left, a borrow from one column to the previous (on the right) is
> balanced by adding the borrowed digit back to the subtrahend, so it gets
> subtracted from the result, not added.  This is the opposite of a carry.
>  That's why most of the "carry" flags you show in the left side of the
> table are incorrect; they're actually "borrow" flags.  If you think this is
> confusing, try comparing the carry flags implemented in a Z80 and a 6502
> (they do different things for subtractions!).
And (on the 6502) if you want to get a given result using addition vs.
subraction, the carry flag must be set differently.  i.e., if you have
        LDA #$FF					LDA #$FF
        ADC #$01		    vs.			SBC #$FF
and you want A to end up with $00, then you must put before the LDA:
        CLC			    vs.			SEC
I might never have known this except that I wanted to check my post
before posting it.
> The other problem you have is with the overflow.  It's not a problem with
> signed vs unsigned numbers as some people have implied, it's with the order
Well, as one of those people I may as well ask you how much of my post is
corect and how much is junk.
-- Derek
Received on Sun Sep 30 2001 - 16:41:35 BST
This archive was generated by hypermail 2.3.0
: Fri Oct 10 2014 - 23:34:26 BST