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
* The Best Reasons to Target Windows 8
Learn some of the best reasons why you should seriously consider bringing your Android mobile development expertise to bear on the Windows 8 platform.