注册 登录
编程论坛 汇编论坛

【求助】关于密码输入。。。结果是乱码。。。

fy3211895 发布于 2010-11-13 22:15, 655 次点击
刚学汇编几节课。。
DATA SEGMENT
PASSW DB 'PASSWORD','$'
stri2 DB 100 DUP(?)
stri3 DB '12345','$'
stri4 DB 'Hello!'
stri5 DB 'Sorry!'
DATA ENDS
code SEGMENT
     ASSUME CS:code,DS:data
start: MOV AX,data
MOV DS,AX  
MOV SI,0
       LEA DX,PASSW
       MOV AH,09H
       INT 21H
input: MOV AH,08H
       INT 21H
       CMP AL,0DH
       JE finish
       MOV input[SI],AL
       INC SI
       MOV AH,02H
       MOV DL,'*'
       INT 21H
       JMP input
finish:MOV input[SI],24H;
 MOV SI,0
       MOV DI,0
       MOV CX,5
      check: CMP CX,0
       JE right
       MOV BL,input[SI]
       MOV DL,stri3[DI]
       CMP DL,BL
       JNE error
       INC SI
       INC DI
       DEC CX
       JMP check
right: LEA DX,stri4
       MOV AH,09H
       INT 21H
       MOV AH,4CH
       INT 21H
       JMP exit
error: LEA DX,stri5
       MOV AH,09H
       INT 21H
       MOV AH,4CH
       INT 21H
       JMP exit
       exit:MOV AH,4CH  
 INT 21H  
code   ENDS
       END start
新手 不要笑话我啊。。。
只有本站会员才能查看附件,请 登录
2 回复
#2
czsbc2010-11-14 17:15
input[SI] 是啥意思?
stri2这个缓冲区好像没有用到呀,是不是这里弄错了
#3
xiaomarn2010-11-15 16:32
程序代码:
DATA SEGMENT
    PASSW DB 'PASSWORD',0dh,0ah,'$'
    stri2 DB 100 DUP(?)
    stri3 DB '12345','$'
    stri4 DB 0dh,0ah,'Hello!','$'
    stri5 DB 0dh,0ah,'Sorry!','$'
DATA ENDS

code SEGMENT
     ASSUME CS:code,DS:data
start:

        MOV AX,data
        MOV DS,AX

        MOV SI,0
       LEA DX,PASSW
       MOV AH,09H
       INT 21H
input:

        MOV AH,08H
       INT 21H
       CMP AL,0DH
       JE finish
       MOV stri2[SI],AL
       INC SI
       MOV AH,02H
       MOV DL,'*'
       INT 21H
       JMP input
finish:
        MOV stri2[SI],24H;
        MOV SI,0
       MOV DI,0
       MOV CX,5
check:

        CMP CX,0
       JE right
       MOV BL,stri2[SI]
       MOV DL,stri3[DI]
       CMP DL,BL
       JNE err
       INC SI
       INC DI
       DEC CX
       JMP check
right:
        cmp stri2[si],'$'
        jne err
        LEA DX,stri4
       MOV AH,09H
       INT 21H
       MOV AH,4CH
       INT 21H
err:

        LEA DX,stri5
       MOV AH,09H
       INT 21H
       MOV AH,4CH
       INT 21H

code   ENDS
       END start

1