EASy68Khttp://www.easy68k.com/EASy68Kforum/ Easy68k - Division Case (decimal point)http://www.easy68k.com/EASy68Kforum/viewtopic.php?f=6&t=1053 Page 1 of 1

 Author: ulyses [ Thu Nov 17, 2011 5:25 am ] Post subject: Easy68k - Division Case (decimal point) Dear friends,I've just received my task for microprocessor class. The question given is, R = (A-B) / (A+B). The problem is, I don't know how to display the results in decimal point. (Such, 2 divide by 4 equal to 0.5). I need your help to solve the problem.Thank you.Here's the source code I did:Code:CR    EQU    \$0DLF    EQU    \$0ASTART    ORG    \$1000               *-----------------------------------------------------------   A    LEA     AVALUE,A1    MOVE.B    #14,D0    TRAP    #15           MOVE.B    #4,D0    TRAP    #15    MOVE.L    D1,D2    BEQ    ZRB    LEA     BVALUE,A1    MOVE.B    #14,D0    TRAP    #15       MOVE.B    #4,D0    TRAP    #15    MOVE.L    D1,D3    MOVE.L    D3,D4       SUB.L    D3,D2    MOVE.L    D2,D5    ADD.L    D2,D4    MOVE.L    D4,D6    DIVS.W    D6,D5      MOVE.L    D5,d1       MOVE.L    #3,D0    TRAP    #15   AVALUE    DC.B    'ENTER THE A VALUE =',0           BVALUE    DC.B    'ENTER THE B VALUE =',0    END    START

 Author: profkelly [ Thu Nov 17, 2011 1:30 pm ] Post subject: Have you verified with the instructor that your solution must display decimal numbers?If so, the simplest solution would be to use fixed point math.http://en.wikipedia.org/wiki/Fixed-point_arithmeticThere are also several posts on this forum about doing fixed point math. Try searching the forum for more examples.If you need a floating point solution check out the Fast-Floating-Point code provided by Paul R. Santa-Maria on the Examples pagehttp://www.easy68k.com/codeLibrary.htm

 Author: clive [ Thu Nov 17, 2011 4:45 pm ] Post subject: Your could also look at the remainder, and pull the information from thereR = (A-B) / (A+B) ; integer digitsS = (A-B) % (A+B)Then repeating for each decimal placeS = S * 10T = S / (A+B) ; fractional digitS = S % (A+B)