;This is the structure of a main module using complete segment directives
DATA SEGMENT
;......Place data declarations here
BUF DB 10H, 20H, 30H, 40H, 50H, 60H, 70H, 80H
N DB ?
TARGET DB ?
;......
DATA ENDS
STACK SEGMENT STACK
DB 100 DUP(0)
STACK ENDS
COPY MACRO SRC, DIR, CNT
PUSH DI
PUSH SI
PUSH AX
MOV DI, 0
MOV SI, 0
MOV AL, SRC[DI]
.WHILE CNT != 0
MOV DIR[SI], AL
INC DI
INC SI
MOV AL, SRC[DI]
DEC CNT
.ENDW
POP AX
POP SI
POP DI
ENDM
CODE SEGMENT 'CODE'
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
MOV AX,DATA
MOV DS,AX
;......Place instructions here
MOV AH, 01H
INT 21H
SUB AL, '0'
MOV N, AL
COPY BUF, TARGET, N
;......
MOV AH,4CH ;exit
INT 21H
CODE ENDS
END START