DOSSEG .MODEL SMALL,C DGROUP GROUP _DATA,STACK PRINT MACRO NAME PUSH DX PUSH AX LEA DX,NAME MOV AH,09H INT 21H POP AX POP DX ENDM _DATA SEGMENT WORD PUBLIC 'DATA' ; if the module needs data, then place it here ; always declare the data segment, even if it is empty CR EQU 0DH LF EQU 0AH ENTER_P DB CR,LF,'PLEASE ENTER A CHARACTER: $' OUT_P DB CR,LF,'THIS IS WHAT YOU ENTERED: $' CRLF DB CR,LF,'$' _DATA ENDS STACK SEGMENT PARA STACK 'STACK' STACK ENDS _TEXT SEGMENT WORD PUBLIC 'CODE' ASSUME CS:_TEXT,DS:DGROUP,SS:DGROUP READ_CH PROC NEAR PRINT ENTER_P MOV AH,01H INT 21H RET READ_CH ENDP WRITE_CH PROC NEAR PRINT OUT_P MOV AH,02H MOV DL,AL INT 21H PRINT CRLF RET WRITE_CH ENDP _TEXT ENDS END