Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .MODEL small
- .STACK
- .DATA
- result DD ?
- .CODE
- .STARTUP
- MOV AX, 130
- MOV BX, 5
- PUSH AX ; base
- PUSH BX ; esponente
- SUB SP, 4
- CALL POTENZA
- POP AX
- POP DX
- ADD SP, 4
- MOV result, AX
- MOV result+2, DX
- .EXIT
- POTENZA PROC
- PUSH BP
- MOV BP, SP
- PUSH AX
- PUSH BX
- PUSH CX
- PUSH DX
- PUSH SI
- MOV DX, 0
- MOV AX, 1
- MOV SI, [BP+8]
- MOV BX, [BP+10]
- for:
- CMP SI, 0
- JE return
- DEC SI
- CMP DX, 0
- JNE double
- normal:
- MUL BX
- JMP for
- double:
- MOV CX, DX
- MOV DX, 0
- MUL BX
- PUSH AX
- PUSH DX
- MOV AX, CX
- MOV DX, 0
- MUL BX
- JC overflow
- MOV DX, AX
- POP CX
- POP AX
- ADD DX, CX
- JC overflow
- JMP for
- JMP return
- overflow:
- MOV DX, 0FFFFh
- MOV AX, 0FFFFh
- return:
- MOV [BP+6], DX
- MOV [BP+4], AX
- POP SI
- POP DX
- POP CX
- POP BX
- POP AX
- POP BP
- RET
- POTENZA ENDP
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement