DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   Assembly (http://www.daniweb.com/forums/forum125.html)
-   -   wrong output?? (http://www.daniweb.com/forums/thread186847.html)

jrw0267 Apr 15th, 2009 11:06 pm
wrong output??
 
I am fairly new to assembly language and I am having a problem with my project. The project is fairly simple, but i am having trouble with input. I am tryint to enter in a number of unknown length 1 digit at a time (eg 16) would be 1 then 6. I am reading the first number and multiplying a register with value 0 inside my loop then adding the newly read number to the total. So enter 1 multiply 0 by 10 then add one gives 1 then enter 6...1x10=10 +6 = 16. I need to exit the loop when enter is pressed and then print the 16 back out by dividing by 10 printing al then ah to print 16...I have looked over my code several times and still am getting incorrect output. Whenever 16 is entered 32 is output. Whenever 8 is intered 56 is output?? can someone please help me with this problem.
        .MODEL                small
        .STACK                100h
        .DATA       

        .CODE                        ;the next few lines must be present
Main:        mov                ax,@data
        mov                ds,ax


        mov                ch,10

LIN:        mov                ah,1
        int                21h
        cmp                al,13
        je                lloop
        mov                cl,al
        mov                al,ch
        mov                ah,0
        mul                bl
        mov                bl,al
        add                bl,cl
        jmp                lin

lloop:        mov                ah,0
        mov                al,bl
        div                ch
        mov                dl,al
        add                dl,30H
        mov                bh,ah
        mov                ah,2
        int                21h
        mov                dl,bh
        add                dl,30H
        mov                ah,2
        int                21h

        mov                ah,4ch        ;must be present to run program
        int                21h        ;this one too
        END                Main        ;this one too

also i know that the code is sloppy and uncommented but its fairly simple and this is just a quick job for the first part of the project.


All times are GMT -4. The time now is 5:45 am.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC