組合語言 使用者名稱密碼登入驗證程式 (dos呼叫)
阿新 • • 發佈:2018-12-30
使用者輸入使用者名稱密碼,驗證成功則顯示welcome!
主要是dos功能的呼叫。
2號呼叫 輸入引數dl 顯示在螢幕上
9號呼叫 輸出ds:dx指向的字串 必須以‘$'結尾
a號呼叫 把使用者的輸出儲存起來 注意定義的時候 db 長度 ,?,長度 dup (?)
程式碼:
;登陸驗證程式 data segment first db 'usename:',0dh,0ah,'$' second db 'password:',0dh,0ah,'$' databasename db 'think' databasepassword db '123456' tempname db 15,?, 15 dup (?) countname db $-tempname-02h,'$' temppassword db 15,?,15 dup (?) countpassword db $-temppassword-02h welcome db 'welcome!','$' data ends code segment assume cs:code,ds:data,es:data start: mov ax,data mov ds,ax ;dos 呼叫顯示歡迎介面 mov ah,09h mov dx,offset first int 21h ;dos 0ah 呼叫使用者輸入 mov ah,0ah mov dx,offset tempname int 21h cmp byte ptr tempname+1,05h ;驗證長度 jnz exit mov cx,5 ;字串比較 mov si,offset databasename mov di,offset tempname+2 mov ax,data mov es,ax cld repe cmpsb jnz exit mov dx,offset tempname+2 ;顯示輸入的字串 mov byte ptr tempname[7],'$' call dosshow ;提示輸入password mov ah,09h mov dx,offset second int 21h ;dos 0ah 呼叫使用者輸入 mov ah,0ah mov dx,offset temppassword int 21h cmp byte ptr temppassword+1,06h jnz exit mov cx,6 mov si,offset databasepassword mov di,offset temppassword+2 mov ax,data mov es,ax cld repe cmpsb jnz exit mov dx,offset temppassword+2 mov byte ptr temppassword[8],'$' call dosshow mov ah,09h mov dx,offset welcome int 21h exit: mov ax,4c00h int 21h dosshow proc mov ah,09h int 21h mov dl,0dh mov ah,02h int 21h mov dl,0ah mov ah,02h int 21h ret dosshow endp code ends end start
結果: