CSEG SEGMENT
ASSUME CS:CSEG
; MASM
OPTION SCOPED
; TASM
; LOCALS
MAIN PROC
@@C = 10
MOV CX,@@C
@@L: CALL UP
IFDEF DEBUG
CALL SHOWCX
ENDIF
LOOP @@L
MOV AX,4C00h
INT 21h
MAIN ENDP
UP PROC
@@C = 5
PUSH CX
MOV CX,@@C
@@L: IFDEF DEBUG
CALL SHOWCX
ENDIF
LOOP @@L
POP CX
RET
UP ENDP
SHOWCX PROC
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV AX,CX
MOV BX,10
MOV CX,0
@@DIV_LOOP:
MOV DX,0
DIV BX
PUSH DX
INC CX
CMP AX,0
JNE @@DIV_LOOP
MOV AH,02h
@@WRITE_LOOP:
POP DX
ADD DL,30h
INT 21h
LOOP @@WRITE_LOOP
MOV DL,10
INT 21h
MOV DL,13
INT 21h
POP DX
POP CX
POP BX
POP AX
RET
SHOWCX ENDP
CSEG ENDS
DSEG SEGMENT
DSEG ENDS
SSEG SEGMENT STACK
DW 128 DUP (?)
SSEG ENDS
END MAIN