ice cream
دوشنبه 28 آذر 1390, 13:30 عصر
سلام
برنامه فاکتوریل عدد 6 را نوشتم اما موقع اجرا با مشکل زیر برخورد کردم میشه راهنماییم کنید
http://s2.picofile.com/file/7217878709/Capture.png
و کد برنامه ای که نوشتم به صورت زیر است :
PAGE 110,100
TITLE 'Factorial 6.ASM' Program compute factorial 6 = 6*5*4*3*2*1 =720
;--------------------------------------------------------------------------------------------------------
; 1-Define Stack Segment
; --------------------------------
S_SEG SEGMENT PARA STACK 'STACK'
DW 32H DUP(0) ;32H word for stack
S_SEG ENDS ;End of segment
;--------------------------------------------------------------------------------------------------------
; 2-Define Data Segment
; --------------------------------
D_SEG SEGMENT PARA PUBLIC 'DATA'
CONTER DB 1 ;conter loop
FACT DB 0 ;factorial 6 = 720
D_SEG ENDS ;end of segment
;---------------------------------------------------------------------------------------------------------
; 3-Define Code Segment
; --------------------------------
C_SEG SEGMENT PARA PUBLIC 'CODE'
ASSUME SS:S_SEG , DS:D_SEG , CS:C_SEG
MAIN PROC
PUSH DS
MOV AX,0
PUSH AX
MOV AX , D_SEG
MOV DS , AX
; main program
;
; --------------------
MOV SI,0000H ;Initialize SI to 0000H
;compute factorial 6
;--------------------------------------------------------------------------------------
MOV AL,1
MOV BH ,2
MOV CX , 6
L1:
MUL BH
INC BH
LOOP L1
;--------------------------------------------------------------------------------------
MOV BX , 10
MOV SI , 6
NX:
CMP AX , 10
JL EZ
MOV DX , 0
DIV BX
ADD DL , 30H
MOV FACT[SI] , DL
DEC SI
JMP NX
EZ:
ADD AL , 30H
MOV FACT[SI] , AL
MOV AH, 40
MOV BX,1
LEA DX,FACT
MOV CX , 6
INT 21H
MAIN ENDP
RET
C_SEG ENDS
END MAIN
برنامه فاکتوریل عدد 6 را نوشتم اما موقع اجرا با مشکل زیر برخورد کردم میشه راهنماییم کنید
http://s2.picofile.com/file/7217878709/Capture.png
و کد برنامه ای که نوشتم به صورت زیر است :
PAGE 110,100
TITLE 'Factorial 6.ASM' Program compute factorial 6 = 6*5*4*3*2*1 =720
;--------------------------------------------------------------------------------------------------------
; 1-Define Stack Segment
; --------------------------------
S_SEG SEGMENT PARA STACK 'STACK'
DW 32H DUP(0) ;32H word for stack
S_SEG ENDS ;End of segment
;--------------------------------------------------------------------------------------------------------
; 2-Define Data Segment
; --------------------------------
D_SEG SEGMENT PARA PUBLIC 'DATA'
CONTER DB 1 ;conter loop
FACT DB 0 ;factorial 6 = 720
D_SEG ENDS ;end of segment
;---------------------------------------------------------------------------------------------------------
; 3-Define Code Segment
; --------------------------------
C_SEG SEGMENT PARA PUBLIC 'CODE'
ASSUME SS:S_SEG , DS:D_SEG , CS:C_SEG
MAIN PROC
PUSH DS
MOV AX,0
PUSH AX
MOV AX , D_SEG
MOV DS , AX
; main program
;
; --------------------
MOV SI,0000H ;Initialize SI to 0000H
;compute factorial 6
;--------------------------------------------------------------------------------------
MOV AL,1
MOV BH ,2
MOV CX , 6
L1:
MUL BH
INC BH
LOOP L1
;--------------------------------------------------------------------------------------
MOV BX , 10
MOV SI , 6
NX:
CMP AX , 10
JL EZ
MOV DX , 0
DIV BX
ADD DL , 30H
MOV FACT[SI] , DL
DEC SI
JMP NX
EZ:
ADD AL , 30H
MOV FACT[SI] , AL
MOV AH, 40
MOV BX,1
LEA DX,FACT
MOV CX , 6
INT 21H
MAIN ENDP
RET
C_SEG ENDS
END MAIN