Programming Forums
User Name Password Register
 

RSS Feed
FORUM INDEX | TODAY'S POSTS | UNANSWERED THREADS | ADVANCED SEARCH

 
 
Thread Tools Display Modes
Prev Previous Post in Thread   Next Post in Thread Next
Old Feb 14th, 2006, 4:11 AM   #1
MacNilly
Newbie
 
Join Date: Feb 2006
Location: Sacramento, CA
Posts: 4
Rep Power: 0 MacNilly is on a distinguished road
Problem with Ulong's Conjecture Program

Hello all,

I am having a problem with my program that does Ulong's Conjecture. If you don't know what that is, it's pretty simple and the code explains what I'm doing. I got it to display the right numbers, but when I get to the end I am supposed to tell how many numbers were in the series. I ran through it with CodeView and I'm still lost because I can't get codeview to watch variables (they always stay at 0). Basically I'm just getting a junk value always around ~400. Please help me understand why my program is not counting right. And also if anyone knows why CodeView won't let me watch variables.

;=============================================================================
;       Ulong's Conjecture Program
;       Starting with any number,
;	 if the number is even divide it by 2
;	 if the number is odd multiply it by 3 and add 1
;	Stop when you get to number 1
;=============================================================================
                EXTRN   GETDEC$:FAR
                EXTRN   NEWLINE:FAR
                EXTRN   PUTDEC$:FAR
                EXTRN   PUTSTRNG:FAR
;=============================================================================
                DOSSEG
                .MODEL  SMALL
;=============================================================================
                .STACK  256
;=============================================================================
                .DATA
NUM             DW      ?
CNT             DW      0
PROMPT          DB      'Enter a positive integer: '
OUTPUT          DB      'Numbers in this series: '
;=============================================================================
                .CODE
ULONGS          PROC
                MOV     AX, SEG DGROUP
                MOV     ES, AX
                LEA     DI, PROMPT
                MOV     CX, 26
                CALL    PUTSTRNG
                CALL    GETDEC$
                MOV     NUM, AX

DO_NEXT:        MOV     AX, NUM
                INC     CNT
                MOV     BH, 0
                CALL    PUTDEC$
                CALL    NEWLINE
                CMP     AX, 1
                JE      DONE
                SUB     DX, DX
                MOV     BX, 2
                DIV     BX
                CMP     DX, 0
                JNE     IS_ODD

IS_EVEN:        MOV     NUM, AX
                JMP     DO_NEXT

IS_ODD:         MOV     AX, NUM
                MOV     BX, 3
                MUL     BX
                MOV     NUM, AX
                INC     NUM
                JMP     DO_NEXT
DONE:
                LEA     DI, OUTPUT
                MOV     CX, 24
                CALL    PUTSTRNG
                MOV     AX, CNT
                CALL    PUTDEC$
                .EXIT
ULONGS          ENDP
                END     ULONGS
MacNilly is offline   Reply With Quote
 

Bookmarks

« Previous Thread in Forum | Next Thread in Forum »

Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump




DaniWeb IT Discussion Community
All times are GMT -5. The time now is 7:55 AM.

Powered by vBulletin® Version 3.7.0, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Copyright ©2007 DaniWeb® LLC