Bài Tập 3 NNHT

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down

default Bài Tập 3 NNHT

Bài gửi by NeverGiveUp on Sun Jan 08, 2012 4:30 pm

Cùng Phát triển Bài Tập 3 của Thầy nhé.
Mình đã làm được phần nhập id và pass.giải quyết được tình trạng nhập quá dài
chỉ được phép 32 ký tự như của các website
Đây là code nhập ID va Password.Còn phần xuất nhập File cùng làm nhé các bạn
Code:

p    group    code,data   
assume    cs:p    ,ds:p
code    segment    public
org    100h
;======================
Main    proc
    call    NhapID
    call    put
    call    Pass
    call    User1
    call    InPass
    int    20h
Main    endp
;======================
NhapID    proc
    lea    dx,tbNhapID
    call    WriteStr
    lea    dx,Max
    mov    ah,0ah
    int    21h
    cmp    al,'8'
    jz    xoaid
xoaid:
    mov    dl,8
    call    Write
    ret
NhapID    endp
;======================
User1    proc
    lea    dx,tbNhapID
    call    WriteStr
    lea    si,luuid
inTK:
    lodsb
    cmp    al,0dh
    jz    next
    mov    dl,al
    call    Write
    jmp    inTk
next:
    ret
User1    endp
;--------------------------------------
read    proc
    mov    ah,8
    int    21h
    ret
read    endp
;--------------------------------------
put    proc
    mov    len,0
    lea    dx,tb
    call    WriteStr
    ret
put    endp
;--------------------------------------
Pass    proc
    lea    di,buffer
LoadChar:   
    call    read
    cmp    al,27
    jz    escap
    cmp    al,0dh
    jz    dung
    cmp    al,9
    jz    tab
    cmp    al,32
    jz    space
    cmp    al,8
    jz    xoa   
    cmp    len,32
    jz    ero
    stosb
    inc    len
    mov    dl,'*'
    call    Write
    jmp    LoadChar
    clc
    ret
ero:
    lea    dx,eror
    call    WriteStr
    stc
    mov    ax,4c00h
    int    21h
xoa:
    cmp    len,0
    jz    LoadChar
    mov    dl,8
    call    Write
    mov    dl,32   
    call    Write
    mov    dl,8
    call    Write
    dec    len
    dec    di
    jmp    LoadChar
space:
    lea    dx,tb1
    call    WriteStr
    stc
    mov    ax,4c00h
    int    21h
tab:
    lea    dx,tb2
    call    WriteStr
    stc
    mov    ax,4c00h
    int    21h
escap:
    call    put
    jmp    LoadChar
dung:
    clc
    ret
Pass    endp
;--------------------------------------
InPass    proc
    lea    dx,tb
    call    WriteStr
    mov    ch,0
    mov    cl,len
    lea    si,buffer
    jnc    In1
In1:
    lodsb
    mov    dl,al
    call    Write
    loop    In1
    ret
InPass    endp
;--------------------------------------
WriteStr    proc
    mov    ah,9
    int    21h
    ret
WriteStr    endp
;======================
Write    proc
    mov    ah,2
    int    21h
    ret
Write    endp
;======================
code    ends
data    segment    public
    Max    db    127
    lenid    db    0
    luuid    db    128 dup(0)
    buffer    db    128 dup(0)
    len    db    0
    tb    db    0dh,0ah,'Mat Khau: $'
    tbNhapID    db    0dh,0ah,'Tai Khoan: $'
    tb1    db    0dh,0ah,'Mat khau khong hop le !!!$'
    tb4    db    0dh,0ah,'Tai Khoang khong hop le !!!$'
    tb2    db    0dh,0ah,'Bo Qua Mat khau !!!$'
    eror    db    0dh,0ah,'Mat khau Vuot qua 32 ky tu!!!$'
data    ends
end    Main

NeverGiveUp

Posts : 83
Thanked : 3
Gia Nhập 12/09/2011

Tài Sản
Thú nuôi:

Về Đầu Trang Go down

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết