k4info
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Bài tập 3 - NNHT FULL

3 posters

Go down

Cool Bài tập 3 - NNHT FULL

Bài gửi by Admin Thu Jan 12, 2012 10:08 am

Viết chương trình đăng nhập mật khẩu, yêu cầu:

- Nhập mật khẩu, kết thúc sớm nếu bỏ qua
- Nếu đăng nhập lần đầu (chưa có file password.dat)
+ Xác nhận mật khẩu lần 2
+ Đối chiếu mật khẩu
* Nếu khớp lưu vào file password.dat
* Nếu không khớp báo lỗi.
+ Nếu đăng nhập lần 2 có file password.dat:
* Mở file password.dat đọc mật khẩu trong file
* Đối chiếu 2 mật khẩu
= Nếu khớp thông báo đăng nhập thành công
= Nếu không khớp thông báo đăng nhập thất bại


Code:



Tab        EQU  9
Backspace  EQU  8
Enterz    EQU  13
ESCz      EQU  27
Space      EQU  32
;-------------------------------
MyCOM  GROUP  CodeSeg, DataSeg
    ASSUME  CS:MyCOM, DS:MyCOM
CodeSeg  SEGMENT  PUBLIC  ;
    ORG  100h
Main  PROC
    call NhapPass
   lea  dx,TB1
    call  WriteStr
    call XulyPass
   jnc  Tieptuc
   int  20h
 Tieptuc:
    call OpenPWFile
   jnc  ReadPWFile
   call SavePW1
   call NhapPass
   lea  dx,TB8
    call  WriteStr
    call XulyPass
   jc  Exitmain
   call ComparePW
   jne  InvalidPW
   lea  dx,TB6
    call WriteStr
   call SavePW2File
   int 20h
 Exitmain:
    int 20h
 InvalidPW:
    lea  dx,TB5
    call  WriteStr
    int 20h
 ReadPWFile:
    CALL  ReadPW2Mem
   CALL  ComparePW
   Jne    InvalidPW
   lea    Dx,TB6
   CALL  WriteStr
    int    20h   
Main  ENDP
;-------------------------------
ReadPW2Mem Proc
    MOV  AH,3Fh
   LEA  DX,PW1
   mov  ch,0
   mov  cl,127
   int  21h   
   mov  Len1,al
   mov  ah,3Eh  ;dong file
   int  21h
   ret
ReadPW2Mem Endp
;-------------------------------
SavePW2File  Proc
    Mov AH,3Ch
   MOV Cx,20h
   lea dx,PWFile
    int 21h    ;tao 1 file
   mov bx,ax  ;cap the file
   lea dx,buffer  ;ghi file
   mov ch,0
   mov cl,len  ; so file can ghi
   mov ah,40h
   int 21h      ;ghi file
   mov ah,3Eh
   int 21h    ;Dong file
   ret
SavePW2File  Endp
;-------------------------------
ComparePW    Proc
    Mov  CH,0
   Mov  Cl,Len
   cmp  CL,Len1
   JNZ  Exit2
   LEA  SI,Buffer
   LEA  DI,PW1
   REP  CMPSB
Exit2:
    ret
ComparePW    Endp
;-------------------------------
Readkey  PROC
    mov  ah,8
    int 21h
    ret
ReadKey  ENDP
;-------------------------------
SavePW1  Proc
    MOV  CH,0
   MOV  CL,Len
   MOv  Len1,cl
   LEA  SI,Buffer
   LEA  DI,PW1
   REP  MOVSB ;copy tu Buffer -> PW1
   RET
SavePW1  Endp
;-------------------------------
OpenPWFile Proc
    LEA dx,PWFile
   mov ah,3Dh
   mov al,0
    int 21h
   mov bx,ax ;cap the file tu ax vao bx
   ret
OpenPWFile Endp
;-------------------------------
NhapPass  PROC
    mov  Len,0
    ret
NhapPass  ENDP
;-------------------------------
XuatPass  PROC
    jnc  WritePass
   ret
 Exit1:
    ret
 WritePass:
    lea  dx,TB1
    call  WriteStr
    lea  si,Buffer
    mov  ch,0
    mov  cl,Len
 LoadAL:
    lodsb
    mov  dl,al
    call  WriteChar
    Loop  LoadAL
XuatPass  ENDP
;-------------------------------
XulyPass  PROC
    lea    di,Buffer
 ReadPass:
    call  Readkey
    cmp  al,Tab
    jz    Tabkey
   cmp  al,Space
    jz    Spacekey
   cmp  al,Enterz
    jz    Exit
   cmp  al,ESCz
    jz    ESCkey
   cmp  al,Backspace
    jz    Backspacekey
   stosb
   inc  Len
   mov  dl,'*'
   call  WriteChar
   jmp  Short  ReadPass
   clc
   ret
 Tabkey:
    lea    dx,TB3
    call  WriteStr
    stc   
    ret
 Spacekey:
    lea    dx,TB4
    call  WriteStr
 Errorz:
    stc   
    ret
 Exit:
    cmp  Len,0
   jz    Errorz
    clc
    ret
  ESCkey:
    lea    dx,TB1
    call  WriteStr
   mov    Len,0
   call  NhapPass
    jmp    Short  ReadPass
   ret
 Backspacekey:
    cmp  Len,0
   jz    ReadPass
   mov  dl,Backspace
    call  WriteChar
   mov  dl,' '
   call  WriteChar
   mov  dl,Backspace
    call  WriteChar
   dec  Len
   dec  di
   jmp  Short  ReadPass
XulyPass  ENDP
;-------------------------------
WriteStr  PROC
  mov  ah,9
  int  21h
  ret
WriteStr  ENDP
;-------------------------------
WriteChar  PROC
  mov  ah,2
  int  21h
  ret
WriteChar  ENDP
;-------------------------------
CodeSeg  ENDS
DataSeg  SEGMENT  PUBLIC
  TB1    DB  0Ah,0Dh,'Password:$'
  TB3    DB  0Ah,0Dh,'Huy bo nhap password!$'
  TB4    DB  0Ah,0Dh,'Password khong hop le!$'
  TB5    DB  0Dh,0Ah,'Mat khau khong khop!$'
  TB6    DB  0Dh,0Ah,'Dang nhap thanh cong!$'
  TB7    DB  0Dh,0Ah,'Dang nhap that bai!$'
  TB8    DB  0Dh,0Ah,'Confrim:$'
  PWFile  DB  'Password.dat',0
   ;---------------------
   Len        DB    0
   Buffer      DB    128 DUP(0)
   Len1        DB    0
   PW1        DB    128 DUP(0)
   ;--------------------
DataSeg      ENDS
  END  Main



Admin
Admin

Posts : 1013
Thanked : 47
Gia Nhập 25/08/2010

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

https://k4info.forumvi.com

Về Đầu Trang Go down

Cool Re: Bài tập 3 - NNHT FULL

Bài gửi by davidthinh Sun May 13, 2012 12:40 pm

thanks nhieu nha!nhug cho e hoi cach chay chuong trinh nay voi.do ban nhieu qua nen em khong di thuc hanh nhieu nen wen ca cach debug ln,chi em voi nha
davidthinh
davidthinh

Posts : 17
Thanked : 1
Gia Nhập 26/04/2012

Về Đầu Trang Go down

Cool Re: Bài tập 3 - NNHT FULL

Bài gửi by Admin Mon May 14, 2012 3:19 pm

Giả sử tôi có 1 file code tên là baitap.asm. Để chạy chương trình này có 2 cách.
==> C1:
masm baitap;
link baitap;
exe2bin baitap baitap.com;

--> Xong phần biên dich từ file .asm ra file .com nếu thông báo thành công và có file baitap.com xuất hiện thì đã thành công và để chạy ta gõ tiếp lệnh baitap.com

==> C2:
Soạn 1 file xxx.bat ví dụ file đó là biendich.bat nội dung file đó có nội dung như sau, ta dùng Notepad để soạn thảo và lưu lại với đuôi .bat
masm baitap;
link baitap;
exe2bin baitap baitap.com;

-->Mỗi lần biên dịch file baitap.asm sang baitap.com chỉ cần chạy file .bat này. Để áp dụng cho file khác ta sửa tên baitap thành tên tương ứng bỏ chung file .bat này với file cần biên dịch .asm. Xong rồi chạy file bằng lệnh baitap.com
Admin
Admin

Posts : 1013
Thanked : 47
Gia Nhập 25/08/2010

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

https://k4info.forumvi.com

Về Đầu Trang Go down

Cool Re: Bài tập 3 - NNHT FULL

Bài gửi by tieulongnu_ct Fri Mar 15, 2013 9:40 pm

admin ơi cho mình hỏi cái:nếu đề bài như trên mà thêm nội dung như này thì làm sao hả,chỉ mình với:

-Nếu đăng nhập lần đầu(chưa có file password.dat)
.Nhập mật khẩu
.Lưu mật khẩu vào file password.dat(yêu cầu mật hóa mật khẩu chống chép trộm)
.Nhập mật khẩu
.Mở file password.dat,đọc mật khẩu trong file
.Đối chiếu 2 mật khẩu
-Nếu khớp,thông bảo đăng nhập thành công
-Nếu kg khớp báo lỗi
-Thoát

-Giúp mình với mình đang cần gấp.thks
tieulongnu_ct
tieulongnu_ct

Posts : 5
Thanked : 0
Gia Nhập 15/03/2013

Về Đầu Trang Go down

Cool Re: Bài tập 3 - NNHT FULL

Bài gửi by Admin Sat Mar 16, 2013 8:35 am

tieulongnu_ct đã viết:admin ơi cho mình hỏi cái:nếu đề bài như trên mà thêm nội dung như này thì làm sao hả,chỉ mình với:

-Nếu đăng nhập lần đầu(chưa có file password.dat)
.Nhập mật khẩu
.Lưu mật khẩu vào file password.dat(yêu cầu mật hóa mật khẩu chống chép trộm)
.Nhập mật khẩu
.Mở file password.dat,đọc mật khẩu trong file
.Đối chiếu 2 mật khẩu
-Nếu khớp,thông bảo đăng nhập thành công
-Nếu kg khớp báo lỗi
-Thoát

-Giúp mình với mình đang cần gấp.thks
Bạn cứ lấy bài code trên và bồ sung thêm phần mã hóa bằng phương pháp XOR, sau đó lưu vào file password.bat, làm ngược lại với khi giải đọc file password.bat thì giải mã ngược lại.
Điểm cần lưu ý ở đây là mình mã hóa password bằng phương pháp XOR trước khi lưu ra file .bat
Admin
Admin

Posts : 1013
Thanked : 47
Gia Nhập 25/08/2010

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

https://k4info.forumvi.com

Về Đầu Trang Go down

Cool Re: Bài tập 3 - NNHT FULL

Bài gửi by tieulongnu_ct Sat Mar 16, 2013 9:20 pm

mình k biết làm cho mấy,bạn có thể viết cụ thể cho mình luôn dc kg za?mình đang cần để làm báo cáo,nếu dc bạn giúp mình luôn nhak,mình thks bạn rất nhiều.
tieulongnu_ct
tieulongnu_ct

Posts : 5
Thanked : 0
Gia Nhập 15/03/2013

Về Đầu Trang Go down

Cool Re: Bài tập 3 - NNHT FULL

Bài gửi by tieulongnu_ct Mon Mar 18, 2013 7:55 pm

admin ơi giúp mình với,mình đang rất cần bài này đó,hi vọng hồi âm sớm cho mình.thks
tieulongnu_ct
tieulongnu_ct

Posts : 5
Thanked : 0
Gia Nhập 15/03/2013

Về Đầu Trang Go down

Cool Re: Bài tập 3 - NNHT FULL

Bài gửi by tieulongnu_ct Wed Mar 20, 2013 4:21 pm

admin đâu rồi sao kg tl gì hết zậy?hjx hjx,giúp mình với
tieulongnu_ct
tieulongnu_ct

Posts : 5
Thanked : 0
Gia Nhập 15/03/2013

Về Đầu Trang Go down

Cool Re: Bài tập 3 - NNHT FULL

Bài gửi by tieulongnu_ct Thu Mar 28, 2013 11:07 pm

admin giúp mình với đi mai la ngày chót nộp rồi đó.mình sẽ kg quên hậu tạ...
tieulongnu_ct
tieulongnu_ct

Posts : 5
Thanked : 0
Gia Nhập 15/03/2013

Về Đầu Trang Go down

Cool Re: Bài tập 3 - NNHT FULL

Bài gửi by Sponsored content


Sponsored content


Về Đầu Trang Go down

Về Đầu Trang

- Similar topics

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