[A83] Re: The Working Of Floating Point Numbers
[Prev][Next][Index][Thread]
[A83] Re: The Working Of Floating Point Numbers
Hey, where can I get that guide, it looks cool!
> > What is the DAA instruction and what is 8.8 format?
> >
> 1. DAA is the "Decimal Adjust after Addition" instruction,
> which does a BCD correction of the A register. I rather
> copy it from my guide, because I'm just lazy to write it
> down again. :) So:
>
> "Decimal Adjust after Addition; no operands are needed.
> When this instruction is executed, the A register is BCD
> corrected. The exact process is the following: if the least
> significant four bits of A contain a non-BCD digit (i. e.
> it is greater than 9), then $06 is added to the register.
> Then the four most significant bits are checked. If this
> more significant digit also happens to be greater than 9,
> then $60 is added. If this second addition was needed, the
> C flag is set, otherwise it is reset. The N flag is
> preserved, P/V is <i>parity</i> and the others are altered
> by definition."
>
> 2. 8.8 means that 8 bits are used for the integer part, and
> another 8 for the fractional part. I.e. a 8.8 fixed point
> number can be loaded into a 16-bit register, so you can add
> and subtract them easily with single ADD/ADC/SBC
> instructions. When multiplying two 8.8 numbers, you have to
> divide the result by 256, naturally. Fixed points basically
> means that you have an integer that you do not interpret as
> an integer but as a N-digit number whose decimal point is
> fixed to the same place.
>
> Example: 5.25 as a 8.8 fixed point number:
>
> %00000101 01000000 = 256*5+256*0.25 = 1280+64 = 1344d
>
> PG
>
Follow-Ups:
References: