MyMacro.inc
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
clrscr  macro
        pusha

        mov     ax, 0600h       ;ah=06h: clear the text in screen      
        mov     cx, 0000h       ;top left corner: (row, line)=(ch, cl)=(0,0)
        mov     dx, 184fh       ;bottom right corner:(row,line)=(dh,ch)=(18h,4fh)=(24,79)
        mov     bh, 07h         ;bh=70h, white words in black background
        int     10h

        mov     ah, 02h         ;set the location of cursor        
        mov     bh, 00h         ;the page number       
        mov     dx, 0000h       ;location of cursor (row,line)=(dh,dl)=(0,0)          
        int     10h

        popa
        endm

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
putstr  macro   string
        push    ax
        push    dx

        lea     ax, string
        mov     dx, ax
        mov     ah, 09h
        int     21h

        pop     dx
        pop     ax

        endm

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; this macro will change the ax register
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
getchar macro   arg
        mov     ah, 01h
        int     21h
        mov     arg, al   
        endm

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
putchar macro   arg
        push    ax
        push    dx

        mov     ah, 02h
        mov     dl, arg
        int     21h

        pop     dx
        pop     ax
        endm

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
newline macro
        push    ax
        push    dx

        mov     ah, 02h
        mov     dl, 0dh
        int     21h

        mov     dl, 0ah
        int     21h

        pop     dx
        pop     ax

        endm

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
quit    macro
        mov     ah, 4ch
        int     21h
        endm


Hello.asm
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
include MyMacro.inc

data    segment
        message1 db 'Hello. Welcome to the world of assemble language.$'
        message2 db 'Please input a char: $'
        message3 db 'The char you input is: $'
        message4 db 'Press any key to quit...$'
data    ends

stack   segment stack
        db      128 dup(?)
stack   ends

code    segment
        assume  ds:data, cs:code, ss:stack
start:
        mov     ax, data
        mov     ds, ax
        
        clrscr

        putstr  message1
        newline

        putstr  message2
        getchar al

        newline
        putstr  message3        
        putchar al

        newline
        putstr message4
        getchar al

        quit
code    ends

        end     start