注册机 (2千字)
DATA SEGMENTTABLE DB 52H,65H,69H,61H,2DH,6DH,69H,20H,61H,6CH,20H,6EH,65H,6DH,75H,72H
DB 69H,72H,69H,69H,20H,6EH,69H,6DH,62H,2FH,53H,69H,20H,66H,6FH,63H
DB 75H,6CH,20H,64H,69H,6EH,20H,70H,72H,69H,76H,69H,72H,65H,2FH,53H
DB 69H,20H,70H,65H,6EH,74H,72H,75H,20H,74H,6FH,61H,74H,65H,20H,64H
DB 61H,2DH,6DH,69H,20H,69H,6EH,20H,73H,63H,68H,69H,6DH,62H,2FH,4FH
DB 20H,6FH,72H,61H,20H,64H,65H,20H,69H,75H,62H,69H,72H,65H,2EH ;5EH GE
INNAME DB 'INPUT YOUR NAME: $'
NAMEBUFF DB 40H
DB ?
DB 40H DUP(?)
DATABUFF DB 042H
DB ?
DB 45H DUP(?)
YKEY DB 'YOUR KEY: $'
CLF DB 0DH,0AH,'$'
DISPLAY DB 0A0H DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET INNAME
MOV AH,09H
INT 21H
MOV DX,OFFSET NAMEBUFF
MOV AH,0AH
INT 21H
MOV DX,OFFSET CLF
MOV AH,09H
INT 21H
XOR CX,CX
XOR BX,BX
XOR AX,AX
XOR DX,DX
MOV SI, OFFSET NAMEBUFF+1
MOV CL,[SI]
MOV DL,[SI]
MOV AL,011H
CALCUL:
MOV BYTE PTR [DATABUFF+BX+2],AL
ADD AL,[NAMEBUFF+BX+2]
;CMP AX,0FFH
JNC BELOW
ADD AL,01H
BELOW:
XOR AL,[TABLE+BX]
CMP BX,CX
INC BX
JB CALCUL
MOV CL,04H
XOR BX,BX
XOR SI,SI
;INC DX
ADD DX,DX
CONVER:
MOV AL, [DATABUFF+SI+2]
MOV AH,AL
SHR AH,CL
CMP AH,09H
JA CH1
ADD AH,30H
JMP STRMOV1
CH1:
ADD AH,037H
STRMOV1:
MOV BYTE PTR [DISPLAY+BX],AH
;CMP BX,DX
INC BX
MOV AH,AL
AND AH,0FH
CMP AH,09H
JA CH2
ADD AH,30H
JMP STRMOV2
CH2:
ADD AH,037H
STRMOV2:
MOV BYTE PTR [DISPLAY+BX],AH
CMP BX,DX
INC BX
INC SI
JB CONVER
MOV BYTE PTR [DISPLAY+BX+1],0DH
MOV BYTE PTR [DISPLAY+BX+2],0AH
MOV BYTE PTR [DISPLAY+BX+3],'$'
MOV DX,OFFSET YKEY
MOV AH,09H
INT 21H
MOV DX,OFFSET DISPLAY
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
