Advertisement
Guest User

Untitled

a guest
May 31st, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .MODEL small
  2. .STACK
  3. .DATA
  4.     result  DD ?
  5. .CODE
  6. .STARTUP
  7.  
  8.     MOV AX, 130
  9.     MOV BX, 5
  10.     PUSH AX ; base
  11.     PUSH BX ; esponente
  12.     SUB SP, 4
  13.     CALL POTENZA
  14.     POP AX
  15.     POP DX
  16.     ADD SP, 4
  17.     MOV result, AX
  18.     MOV result+2, DX
  19.    
  20. .EXIT
  21.    
  22.     POTENZA PROC
  23.             PUSH BP
  24.             MOV BP, SP
  25.             PUSH AX
  26.             PUSH BX
  27.             PUSH CX
  28.             PUSH DX
  29.             PUSH SI
  30.  
  31.             MOV DX, 0
  32.             MOV AX, 1
  33.  
  34.             MOV SI, [BP+8]
  35.             MOV BX, [BP+10]
  36.  
  37.             for:
  38.                     CMP SI, 0
  39.                     JE return
  40.                     DEC SI
  41.  
  42.                     CMP DX, 0
  43.                     JNE double
  44.  
  45.                 normal:
  46.                     MUL BX
  47.                     JMP for
  48.  
  49.                 double:
  50.                     MOV CX, DX
  51.                     MOV DX, 0
  52.                    
  53.                     MUL BX
  54.                     PUSH AX
  55.                     PUSH DX
  56.                     MOV AX, CX
  57.                     MOV DX, 0
  58.  
  59.                     MUL BX
  60.                     JC overflow
  61.                     MOV DX, AX
  62.                     POP CX
  63.                     POP AX
  64.                     ADD DX, CX
  65.                     JC overflow
  66.  
  67.                 JMP for
  68.  
  69.         JMP return
  70.  
  71.         overflow:
  72.             MOV DX, 0FFFFh
  73.             MOV AX, 0FFFFh
  74.  
  75.         return:
  76.  
  77.             MOV [BP+6], DX
  78.             MOV [BP+4], AX
  79.  
  80.             POP SI
  81.             POP DX
  82.             POP CX
  83.             POP BX
  84.             POP AX
  85.             POP BP
  86.             RET
  87.     POTENZA ENDP
  88.    
  89. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement