Advertisement
erfanul007

PRIME FACTORIZATION ASM

Dec 24th, 2019
381
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. INCLUDE "EMU8086.INC"
  2. .MODEL SMALL
  3. .STACK 100H
  4. .DATA
  5.    SUM DW 0
  6.    TEMP DB ?
  7.    INPUT DW ?
  8.    OUTPUT DW ?
  9.    COUNT DB 0
  10.    DIVISOR DW 2
  11.    CNT DW ?
  12.    
  13. .CODE
  14.  
  15.   INDEC PROC              ;FOR DECIMAL INPUT (STRING DIGITS TO DECIMAL)
  16.     MOV AH,1
  17.     INT 21H
  18.      
  19.     L1:
  20.       SUB AL,48
  21.       XOR AH,AH
  22.       MOV INPUT, AX
  23.      
  24.       MOV AX,SUM
  25.       MOV BX,10
  26.       MUL BX
  27.       ADD AX,INPUT
  28.       MOV SUM, AX
  29.      
  30.       MOV AH,1
  31.       INT 21H
  32.      
  33.       CMP AL, 13
  34.       JNE L1
  35.      
  36.     RET
  37.   INDEC ENDP
  38.  
  39.   OUTDEC PROC               ;FOR DECIMAL OUTPUT (FORM INTEGER TO STRING)
  40.     MOV AX,OUTPUT
  41.     MOV BP,SP
  42.      
  43.     L2:
  44.     XOR AX,AX
  45.     XOR DX,DX
  46.      
  47.     MOV AX,OUTPUT
  48.     MOV BX,10
  49.     DIV BX
  50.     MOV OUTPUT,AX
  51.      
  52.     ADD DX,48
  53.     PUSH DX
  54.      
  55.     CMP OUTPUT,0
  56.     JNE L2
  57.      
  58.     RE:
  59.     POP DX
  60.     MOV AH,2
  61.     INT 21H
  62.      
  63.     CMP SP,BP
  64.     JNE RE
  65.      
  66.     RET
  67.   OUTDEC ENDP
  68.  
  69.   MAIN PROC
  70.      MOV AX, @DATA
  71.      MOV DS, AX
  72.      
  73.      CALL INDEC
  74.      PRINTN
  75.      
  76.      MOV AX,SUM
  77.      
  78.      LOOP1:
  79.        MOV BX,DIVISOR
  80.        XOR DX,DX
  81.        DIV BX
  82.  
  83.        CMP DX,0
  84.        JE NEXT
  85.        
  86.        INC DIVISOR
  87.        MOV AX,SUM
  88.        JMP LOOP1
  89.        
  90.        NEXT:
  91.        MOV CX,0
  92.        MOV CNT,CX
  93.        LOOP2:
  94.          MOV SUM,AX
  95.          INC CNT
  96.          XOR DX,DX
  97.          DIV BX
  98.          CMP DX,0
  99.          JE LOOP2
  100.          
  101.          MOV OUTPUT,BX
  102.          CALL OUTDEC
  103.          PRINT " "
  104.          MOV CX,CNT
  105.          MOV OUTPUT,CX
  106.          CALL OUTDEC
  107.          PRINTN
  108.          INC DIVISOR
  109.          MOV AX,SUM
  110.          CMP DIVISOR,AX
  111.          JG EXIT
  112.          JMP LOOP1
  113.            
  114.      EXIT:
  115.      MOV AH, 4CH
  116.      INT 21H
  117.   ENDP MAIN
  118.    
  119. END MAIN
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement