Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- PRINT_NUM PROC
- PUSH BP
- MOV BP, SP
- PUSH AX
- PUSH BX
- PUSH CX
- PUSH DX
- PUSH SI
- PUSH DI
- MOV AX, [BP + 4]
- XOR AH, AH
- MOV BL, 10
- XOR CX, CX
- cycle:
- XOR AH, AH
- DIV BL
- MOV DL, AH
- XOR DH, DH
- PUSH DX
- INC CX
- CMP AL, 0
- JNE cycle
- print:
- POP DX
- ADD DX, '0'
- MOV AH, 2
- INT 21H
- LOOP print
- POP DI
- POP SI
- POP DX
- POP CX
- POP BX
- POP AX
- POP BP
- RET
- PRINT_NUM ENDP
- PRINT_DECIMAL PROC
- PUSH BP
- MOV BP, SP
- PUSH AX
- PUSH BX
- PUSH CX
- PUSH DX
- PUSH SI
- PUSH DI
- MOV DECIMAL, 0
- MOV AX, [BP + 4] ;supposing AL storing 123
- TEST AX, 10000000B
- JZ NEXTD1
- ADD DECIMAL, 50
- NEXTD1: TEST AX, 01000000B
- JZ NEXTD2
- ADD DECIMAL, 25
- NEXTD2: TEST AX, 00100000B
- JZ NEXTD3
- ADD DECIMAL, 12
- NEXTD3: TEST AX, 00010000B
- JZ NEXTD4
- ADD DECIMAL, 6
- NEXTD4: TEST AX, 00001000B
- JZ NEXTD5
- ADD DECIMAL, 3
- NEXTD5: TEST AX, 00000100B
- JZ NEXTD6
- ADD DECIMAL, 1
- NEXTD6:
- MOV AL, DECIMAL
- XOR AH, AH
- PUSH AX
- CALL PRINT_NUM
- POP AX
- POP DI
- POP SI
- POP DX
- POP CX
- POP BX
- POP AX
- POP BP
- RET
- PRINT_DECIMAL ENDP
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement