密码程序cx.asm

来自「该程序将键盘输入的字符串与机内设定的字符串比较」· 汇编 代码 · 共 56 行

ASM
56
字号
;******************************************;
;   copyright@vivian_chan                  ;
;   chen_xi 2006                           ;
;                                          ;
;******************************************;

data segment
    string db 'stephanie'
    buff db 20 dup(?)
    msg1 db 'ok$'
    msg2 db 'illigal user$'
data ends

stack segment para stack
    db 100 dup(?)
stack ends

code segment
    assume cs:code,ds:data,es:data,ss:stack
start:
    mov ax,data         ;数据段初始化
    mov ds,ax
    mov es,ax
    lea di,buff         ;取缓冲区首地址
input:                  ;input程序段将用户输入的密码存入缓冲区
    mov ah,01h
    int 21h
    cmp al,0dh          ;输入以回车结束
    jz check
    mov [di],al
    inc di
    jmp input
check:                   ;check段检查与预设密码是否匹配
    push dx
    mov dl,0ah
    mov ah,02h
    int 21h
    pop dx
    lea si,string         ;分别载入密码和用户输入字符串的地址
    lea di,buff
    mov cx,9
    cld                   ;标志位清零
    repe cmpsb            ;按字节比较字符串
    jnz output2           ;若不相等,转至output2
    mov dx,offset msg1    ;取msg1地址
    jmp return            ;密码匹配,转至return
output2:                  ;输出提示语illigal user
    mov dx,offset msg2    ;取msg2地址
return:
    mov ah,09h            ;输出提示语ok
    int 21h
    mov ah,4ch            ;返回DOS
    int 21h
code ends
     end start

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?