CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 6 of 6

Threaded View

  1. #1
    Join Date
    Jul 2007
    Location
    somwhere nearby
    Posts
    150

    what am i missing ?

    hello all ,
    there was a code which would solve hanoi probelm , one of my friends asked me to split the code so that it uses two code segments !
    and this is where i am stuck ! and i ask for your help .
    here is the code .
    thanks in advance
    Code:
    INCLUDE IO.H
    ;**************************CLS MACRO*******************
    CLS   MACRO
                
                MOV        AX, 6H
                MOV        BH, 7
                MOV        CX, 0
                MOV        DX, 184FH
                INT        10H
     ENDM
    ;******************GETCH MACRO*******************
    GETCH MACRO
        MOV AH,07H
        INT 21H
    ENDM
    ;********************PRINT***********************
    PRINT MACRO
        MOV     AH,09H
            MOV     DX,OFFSET MOVEMSG
            INT     21H
    ENDM
    ;*********************************Data segment*******************
    SSEG     SEGMENT     STACK 
             DW   512    DUP(?)
    SSEG     ENDS
    
    DATASG   SEGMENT  
    
         STARTMSG  DB      'ENTER DISK NUMBER :    ',"$"
         NUM       DB       2 DUP(0)
         MOVEMSG   DB     0DH,0AH, '  '
         SOURCE    DB       ? 
        MSG       DB       ' ==> '
        DEST      DB       ?
        ENDMSG    DB       "$"
        
    DATASG     ENDS
    
    
    ;========================================================
    Proc_Code      Segment 
        Assume  CS:Proc_Code , DS:datasg , ss:SSEG
        
        _Hanoi_    Proc  far
                Push    AX
                Push    DS
                
                MOV        AX , Seg datasg
                MOV        DS , AX
                    
                CALL     MOVE
                
                ADD      SP, 8
                
                
    MOVE     PROC           
             
             PUSH   BP    
             MOV    BP,SP                       
             CMP    WORD PTR [BP+10],1  
             JNE    MOVE_STACK
             
             MOV     BX, [BP+8]
             MOV     SOURCE, BL         
             MOV     BX, [BP+6]
             MOV     DEST, BL          
             
             PRINT
             GETCH
    
             JMP      RETURN
      MOVE_STACK:
             MOV      AX, [BP+10]
             DEC      AX
             PUSH     AX
             PUSH     [BP+08]
             PUSH     [BP+04]
             PUSH     [BP+06]
             CALL     MOVE
             ADD      SP, 8
             
             MOV       AX, 1
             PUSH      AX
             PUSH      [BP+08]
             PUSH      [BP+06]
             PUSH      [BP+04]
             CALL      MOVE
             ADD       SP, 8
             
             MOV       AX, [BP+10]
             DEC       AX
             PUSH      AX
             PUSH      [BP+04]
             PUSH      [BP+06]
             PUSH      [BP+08]
             CALL      MOVE
             ADD       SP, 8
    
         RETURN:
            POP    BP 
            RET
    
    MOVE    ENDP
                
                
                POP  DS
                 POP  AX
                RET
                
        _Hanoi_       ENDP
    
    Proc_Code      ENDS 
    
    ;=========================================================
    
    
    
    
    ;********** CODE SEGMENT *************
    CODESG   SEGMENT  
        
        ASSUME   CS:CODESG ,DS:DATASG 
        
    START:
        MOV      AX, SEG DATASG
        MOV      DS, AX
                  
        CLS
            
        LOOP1:   
                   
            MOV AH,09H             
            MOV DX,OFFSET STARTMSG
            INT 21H
                
            MOV AH ,01H
            INT 21H
            
            MOV NUM,AL
            ATOI NUM
            MOV NUM,AX
            CMP NUM,0
            JZ LOOP1    
    
            PUSH     NUM
            MOV      AX, ' A'
            PUSH     AX
            MOV      AX, ' B'
            PUSH     AX
            MOV      AX, ' C'
            PUSH     AX
            CALL     _Hanoi_ 
            ADD      SP, 8
     
    CODESG  ENDS
    END     START
    Attached Files Attached Files

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured