當前位置:編程學習大全網 - 編程語言 - [高分急等]匯編語言,請大神修改代碼....

[高分急等]匯編語言,請大神修改代碼....

DATA SEGMENT

FILE DB 'E:\PW.BAT',00

NPW DB 'Please enter your password and press the return key:',13,10,36

INFO1 DB 0DH,0AH,'--------------------------',0DH,0AH,'You can make two choice:',0DH,0AH,0DH,0AH,'$'

INFO2 DB '1.Reset passport',0DH,0AH,'$'

INFO3 DB '2.Exit',0DH,0AH,'$'

INFO4 DB 0DH,0AH,'-------------------',0DH,0AH,'|INVALID SELECTION|',0DH,0AH,'-------------------',0DH,0AH,'$'

OPW DB 'Please input your old password and press the return key:',13,10,36

ERR DB 13,10,'YOUR PASSWORD ERROR!',36

MSG DB 13,10,'INPUT NEW PASSWORD:',36

PW DB 19,18 DUP(?)

PWS DB 19 DUP(?)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:DATA

START:

MAIN PROC NEAR

MOV AX,DATA

MOV DS,AX

MOV ES,AX

LEA DX,FILE

MOV AX,3D02H

INT 21H

JC L1

mov bx,ax ;保存文件句柄

JMP HK

L1:

LEA DX,NPW

MOV AH,09H

INT 21H

CALL SET

LEA DX,FILE

MOV CX,00H

MOV AH,3CH

INT 21H

MOV BX,AX

CALL SET1

JMP HK

HK:

LEA DX,INFO1

MOV AH,09H

INT 21H

LEA DX,INFO2

INT 21H

LEA DX,INFO3

INT 21H

MOV AH,01H

INT 21H

CMP AL,'1'

JE LA

CMP AL,'2'

JE EXIT

LEA DX,INFO4

MOV AH,09H

INT 21H

JMP HK

LA:

;PUSH AX 用bx保存句柄,直接用就可以,沒必要用堆棧了

LEA DX,OPW

MOV AH,09H

INT 21H

CALL SET

LEA DX,FILE

MOV AX,3D01H

INT 21H

MOV BX,AX

LEA DX,PWS

MOV CX,1

MOV AH,3FH

INT 21H

MOV CX,WORD PTR PWS

DEC CX

LEA DX,PWS+1

MOV AH,3FH

INT 21H

LEA SI,PW

LEA DI,PWS

CLD

MOV CL,PW

XOR CH,CH

REPE CMPSB

CMP CX,0

JZ LD

LC:

LEA DX,ERR

MOV AH,09H

INT 21H

JMP HK

LD:

LEA DX,MSG

MOV AH,09H

INT 21H

mov ah,3eh

int 21h ;關閉文件再打開,也可以用移動文件指針到文件開頭

LEA DX,FILE

MOV AX,3D01H

INT 21H

MOV BX,AX

CALL SET

CALL SET1

EXIT:

MOV AH,4CH

INT 21H

MAIN ENDP

SET PROC NEAR

MOV CL,12H

CLD

LEA SI,PW

;MOV SI,13H 這句什麽意思?錯誤?

INC SI

MOV DL,'*'

I1:

MOV AH,08H

INT 21H

CMP AL,0DH

JZ R1

MOV AH,02H

CMP CL,0

JNZ I2

MOV DL,07H

INT 21H

JMP I1

I2:

MOV [SI],AL

INT 21H

INC SI

DEC CL

JMP I1

R1:

SUB PW,CL

RET

SET ENDP

SET1 PROC NEAR

LEA DX,PW

MOV CL,PW

AND CX,0FFH

MOV AH,40H

INT 21H

mov ah,3eh

int 21h ;關閉文件

RET

SET1 ENDP

CODE ENDS

還有錯誤

  • 上一篇:在c語言中如何實現函數模板
  • 下一篇:北京銀行秋季校園招聘考試題型
  • copyright 2024編程學習大全網