Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .MODEL SMALL
- .STACK 100H
- .DATA
- a1 DW ?
- a2 DW ?
- b2 DW ?
- c2 DW ?
- tempRet DW ?
- t DW ?
- t1 DW ?
- t2 DW ?
- t3 DW ?
- t4 DW ?
- t5 DW ?
- t6 DW ?
- t7 DW ?
- t8 DW ?
- t9 DW ?
- t01 DW ?
- .CODE
- FACT PROC
- PUSH ax
- PUSH bx
- PUSH cx
- PUSH dx
- MOV ax, a1
- CMP ax, 1
- JE L
- MOV t, 0
- JMP L1
- L:
- MOV t, 1
- L1:
- MOV ax, t
- CMP ax, 0
- JE L2
- MOV ax, 1
- MOV tempRet, ax
- POP dx
- POP cx
- POP bx
- POP ax
- POP t1
- PUSH tempRet
- PUSH t1
- RET
- L2:
- MOV ax, a1
- SUB ax, 1
- MOV t2, ax
- MOV ax, t2
- MOV a1, ax
- CALL FACT
- POP t3
- MOV ax, a1
- MOV bx, t3
- MUL bx
- MOV t4, ax
- MOV ax, t4
- MOV tempRet, ax
- POP dx
- POP cx
- POP bx
- POP ax
- POP t5
- PUSH tempRet
- PUSH t5
- RET
- FACT ENDP
- MAIN PROC
- MOV ax, @DATA
- MOV ds, ax
- MOV ax, 0
- MOV c2, ax
- MOV t6, ax
- MOV ax, 10
- MOV a2, ax
- MOV t7, ax
- MOV ax, 15
- MOV b2, ax
- MOV t8, ax
- MOV ax, 5
- MOV a1, ax
- CALL FACT
- POP t9
- MOV ax, t9
- MOV c2, ax
- MOV t01, ax
- MOV ax, c2
- CALL OUTDEC
- MOV ah,2
- MOV dl,0Ah
- INT 21h
- MOV dl,0Dh
- INT 21H
- MOV ah,4Ch
- INT 21h
- MAIN ENDP
- OUTDEC PROC
- PUSH AX
- PUSH BX
- PUSH CX
- PUSH DX
- OR AX,AX
- JGE @END_IF1
- PUSH AX
- MOV DL, '-'
- MOV AH, 2
- INT 21H
- POP AX
- NEG AX
- @END_IF1:
- XOR CX,CX
- MOV BX, 10D
- @REPEAT1:
- XOR DX, DX
- DIV BX
- PUSH DX
- INC CX
- OR AX, AX
- JNE @REPEAT1
- MOV AH, 2
- @PRINT_LOOP:
- POP DX
- OR DL, 30H
- INT 21H
- LOOP @PRINT_LOOP
- POP DX
- POP CX
- POP BX
- POP AX
- RET
- OUTDEC ENDP
- END MAIN
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement