1. 程式人生 > >南郵匯編實驗——組合語言實現使用者的登入,不回顯密碼

南郵匯編實驗——組合語言實現使用者的登入,不回顯密碼

用匯編語言實現使用者的登入,不回顯密碼

程式碼:

.586
DATA SEGMENT USE16
STRWELCOME DB 'WELCOME,INPUT YOUR ID$'
STRINPUTPASS DB 'Please input your password$'
STRWID DB 'Your id is wrong$'
STRWPASS DB 'Your password is wrong$'
STRRIGHT DB 'Login successfully$'
HC DB 0DH,0AH,'$'
XXX DB '*$'
IDIN DB 100
 DB ?
 DB 100 DUP(?)


PASSIN DB 100 DUP(?)
 

DATA ENDS
EXTRA SEGMENT USE16
IDC DB 'GOOD'
IDLENG EQU $-IDC
PASSC DB 'GOOD123'
PASSLENG EQU $-PASSC
EXTRA ENDS

CODE SEGMENT USE16
  ASSUME CS:CODE,DS:DATA,ES:EXTRA
BEG:MOV AX,DATA
 MOV DS,AX
 MOV AX,EXTRA
 MOV ES,AX
 MOV AH,9
 MOV DX,OFFSET STRWELCOME
 INT 21H
 CALL HUICHE
 MOV AH,0AH
 MOV DX,OFFSET IDIN
 INT 21H
 MOV CL,IDIN+1    ;TRY IDIN[1]
 MOV CH,0
 CMP CX,IDLENG
 JNZ WID
 MOV SI,OFFSET IDIN+2
 MOV DI,OFFSET IDC
 CLD     ;?
 REPE CMPSB
 JNZ WID
 CALL HUICHE
 MOV AH,9
 MOV DX,OFFSET STRINPUTPASS
 INT 21H
 CALL HUICHE
 MOV SI,0
 MOV BX,OFFSET PASSIN
NOC:MOV AH,8
 INT 21H
 CMP AL,13
 JZ STA
 MOV  [BX+SI],AL
 INC SI
 CALL XIN
 JMP NOC
 
STA:MOV CX,SI
 CMP CX,PASSLENG
 JNZ WPA
 MOV SI,OFFSET PASSIN
 MOV DI,OFFSET PASSC
 CLD     ;?
 REPE CMPSB
 JNZ WPA
 CALL HUICHE
 MOV AH,9
 MOV DX,OFFSET STRRIGHT
 INT 21H
 JMP EXIT
 
WID:CALL HUICHE
 MOV AH,9
 MOV DX,OFFSET STRWID
 INT 21H
 JMP EXIT
WPA:CALL HUICHE
 MOV AH,9
 MOV DX,OFFSET STRWPASS
 INT 21H
 JMP EXIT
 
EXIT:MOV AH,4CH
 INT 21H

 
HUICHE PROC
 MOV AH,9
 MOV DX,OFFSET HC
 INT 21H
 RET
HUICHE ENDP

XIN PROC 
 MOV AH,9
 MOV DX,OFFSET XXX
 INT 21H
 RET
XIN ENDP

CODE ENDS
 END BEG