在来和大家讲一讲注册机的写作
刚才已经知道如何写了吧
以下是我写的程式码
共有两个档案,一个是巨集档
copy 回去後 请和 程式本身放在同一个目录
而且一定要令为 handle1.mac
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

不然就要去改程式本身,大家都知道如何改吧

放心,不是 word 的巨集
不用担心有巨集病毒
另一个当然就是程式的本身了

好了,大家有了 source code 了
不用担心有毒了
文字档不会有毒的
回去自己做一个执行档
除非自己的电脑有毒,
否则是不可能中毒的

;;;;;;;;;;;;     handle1.mac  开始  ;;;;;;;;;;;;;;;;;
CREATE MACRO PATH,ATTR  ; 建立档案代号
        LEA DX,PATH
        MOV CL,ATTR
        MOV CH,0
        MOV AH,3CH
        INT 21H
        ENDM       ;;;     OVER      CREATE
OPEN    MACRO PATH,MODE  ;  开启档案
        LEA DX,PATH
        MOV AL,MODE
        MOV AH,3DH
        INT 21H
        ENDM       ;;;    OVER   OPEN
READ    MACRO HANDLE,BUFF,BYTE     ;  读取档案
        LEA DX,BUFF
        MOV CX,BYTE
        MOV BX,HANDLE
        MOV AH,3FH
        INT 21H
        ENDM
WRITE   MACRO HANDLE,BUFF,BYTE     ;  写入档案
        LEA DX,BUFF
        MOV CX,BYTE
        MOV BX,HANDLE
        MOV AH,40H
        INT 21H
        ENDM     ;;;   OVER  WRITE
CLOSE   MACRO HANDLE     ;  关闭档岸
        MOV BX,HANDLE
        MOV AH,3EH
        INT 21H
        ENDM        ;;;    OVER  CLOSE
MOVPTR  MACRO  HANDLE,HIGH,LOW,METHOD  ; 移动档案读写指标
        MOV BX,HANDLE
        MOV CX,HIGH
        MOV DX,LOW
        MOV AL,METHOD
        MOV AH,42H
        INT 21H
        ENDM       ;;;    OVER   MOVPTR
ASCIIZ  MACRO BUF,NUM  ;  字串末端加零
        PUSH BX
        MOV BX,0
        MOV BL,NUM
        ADD BX,OFFSET BUF
        MOV BYTE PTR [BX],0
        POP BX
        ENDM      ;;;     OVER  ASCIIZ
;;;;;;;;;;;;     handle1.mac  结束  ;;;;;;;;;;;;;;;;;

再来就是程式本身了



;;;;;;;;;;;;     cftp2-k.asm  开始  ;;;;;;;;;;;;;;;;;
.model small
.stack
.data
NEWLINE DB 0DH,0AH,'$'
CHANGE  DB 0F6H,85H,97H,15H,0ADH,1DH,0D2H,94H,0DDH,0C4H
MSG1 DB 'This is a registred mechanic about CUTEFTP V2.0 . ' ,0ah,0dh
MSG2 DB 'Please enter your name .But do not over 10 character.',0ah,0dh,'$'
MSG3 DB 'I have already created the file CUTEFTP.KEY .'
MSG4 DB 'Please copy CUTEFTP.KEY to your cuteftp directory .',0AH,0DH
MSG5 DB 'If you feel the program is good'
MSG6 DB ',please copy to your friends in Taiwan .' ,0ah,0dh
MSG7 DB 'If you know windows programming,please re-write the program to a '
MSG8 DB 'program which   for win95 and support BIG-5,thank you.',0ah,0dh,'$'

LEN DB ?
NUM DW ?
NAME1 DB '$$$$$$$$$$$$$$$'
FILE1 DB 'cuteftp.key',0
FH1   DW ?
BUFF DB 12 DUP (?),'$'
ZERO DB 0,0
TEMP DB ?
IF1
        INCLUDE HANDLE1.MAC
ENDIF
.code

main proc
        MOV AX ,@DATA
        MOV DS,AX
        MOV ES,AX
;;;;;;;;;;;;;;   START              ;;;;;;;;;;;;;;;;;;
MOV AH,9
LEA DX,MSG1
INT 21H          ;  PRINT  MSG

;LEA DX,MSG2
;INT 21H          ;  PRINT  MSG
MOV AH,0AH
LEA DX,NAME1
INT 21H          ;  INPUT NAME
XOR BX,BX
MOV BL,[NAME1+1]
MOV LEN,BL    ;  LENGTH OF THE NAME STRING
MOV BYTE PTR [NAME1+2+BX],0
MOV BX,1
MOV AH,9
LEA DX,NEWLINE
INT 21H
ADD BYTE PTR [NAME1+BX],30H
INC BX
MOV SI,0
CREATEFILE:
MOV AL, [CHANGE+SI]
MOV DL,[NAME1+BX]
XOR AL,DL
MOV [CHANGE+SI],AL
INC SI
INC BX
CMP [NAME1+BX],0
JNZ CREATEFILE

LEA DX,NEWLINE
MOV AH,9
INT 21H

LEA DX,BUFF
MOV AH,9
INT 21H

MOV AX,8FH
MOV SI,2
MOV BX,0
COMPUTE:   ;    COMPUTE THE ASCII NUM
MOV BL,[NAME1+SI]
ADD  AX,BX
INC SI
CMP  [NAME1+SI],0
JNZ COMPUTE
MOV NUM,AX

XOR NUM,2627H
;MOV CL,8
;ROL NUM,CL

CREATE FILE1,0   ;  CREATE cuteftp.key
MOV FH1,AX       ;   MOVE THE FILE HANDLE
OPEN FILE1,2     ;   OPEN cuteftp.key ,while can read  and write
MOVPTR FH1,0,0,0 ; move the read/write point 
WRITE FH1,ZERO,2 ; write to the file
WRITE FH1,NUM,2
WRITE FH1,CHANGE,10
WRITE FH1,ZERO,2
CLOSE FH1
lea dx,msg4
mov ah,9
int 21h

;;;;;;;;;;;;;    OVER               ;;;;;;;;;;;;;;;;;;;;;;;;;
OVER:
mov ah,4ch
int 21h
main endp
end main
;;;;;;;;;;;;     cftp2-k.asm  结束  ;;;;;;;;;;;;;;;;;