Advertisement
madmaxhasan

Factorial 1 - 9

Apr 14th, 2018
322
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .MODEL LARGE
  2. .STACK 100
  3.  
  4. .DATA
  5.  
  6. .CODE
  7.  
  8. MAIN PROC
  9.    
  10.     MOV AX, @DATA
  11.     MOV DS, AX
  12.      
  13.     CALL FACT           ; FACTORIAL PROCEDURE
  14.    
  15.     CALL PRINT          ; PRINT PROCEDURE
  16.    
  17.     MOV AH, 4CH
  18.     INT 21H
  19.    
  20. MAIN ENDP
  21.  
  22. FACT PROC               ; PROCEDURE START
  23.    
  24.     MOV CX, 3           ; INPUT
  25.     MOV AX, 1           ; INITIAL WITH 1 FOR MUL
  26.    
  27. REPEAT:
  28.     MUL CX              ; < AX * CX > 1 * 3
  29.     LOOP REPEAT         ; THAN 3 * 2 THAN 6 * 1
  30.    
  31.     RET
  32.    
  33. FACT ENDP               ; PROCEDURE END
  34.  
  35. PRINT PROC              ; PROCEDURE START
  36.    
  37.     MOV CX, 0          
  38.     MOV DX, 0            
  39.     MOV BX, 10          ; INITIAL BX = 10 FOR DIV AND GET DIGIT
  40.    
  41. SEC1:
  42.     MOV DX, 0
  43.     DIV BX              ; AX / BX = 6 / 10
  44.     PUSH DX             ; REMAINDER IN DX AND PUSH ON STACK
  45.     INC CX
  46.    
  47.     CMP AX, 0
  48.     JNE SEC1
  49.    
  50.     MOV AH, 2
  51.    
  52. PRINTLOOP:
  53.     POP DX              ; POP ELEMENT AND PUTING IN DX
  54.     ADD DL, 30H
  55.     INT 21H
  56.     LOOP PRINTLOOP
  57.    
  58.     RET
  59.    
  60. PRINT ENDP              ; PROCEDURE END
  61.  
  62. END MAIN
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement