第二次實驗,名稱「使用者登陸驗證程式的設計」,實驗要求:1)執行程式後,介面首先出現自己的學號,例如「b18060701」
2)在學號下方輸入登入密碼,密碼長度不超過30個字元。密碼內容不能顯示在螢幕上,要求用字元*替代。
3)驗證輸入密碼與事先設定的密碼是否相同,如果密碼正確,給出提示「ok」,程式結束;如果密碼不正確,重新輸出學號,繼續輸入密碼。
4)選作內容:如果連續5次密碼輸入都不正確,介面提示「locked」,退出程式。
;.486
data segment
mesg1 db 'b18060522$'
mesg2 db 'input password:$'
pwd db 30 dup(?)
pwdlength db 0
u db 'b18******'
ulength equ $-u
p db '******'
mlength equ $-p
welcome db 'ok$'
error db 'lockd$'
data ends
code segment
assume cs:code,ds:data
beg: mov ax,data
mov ds,ax
mov di,5
next0:
cmp di,0
jz err
mov pwdlength,0
mov ah,09h
mov dx,offset mesg1 ;顯示學號
int 21h
mov ah,02h
mov dl,0ah ;換行
int 21h
mov ah,09h
mov dx,offset mesg2 ;顯示input pwd
int 21h
mov cx,mlength
mov si,offset pwd
next1:
mov ah,07h ;無回顯從鍵盤讀入乙個字元
int 21h
cmp al,0dh
je next2 ;等於回車符號則跳轉ind
mov [si],al
mov ah,02h ;顯示字元
mov dx,'*'
int 21h
inc pwdlength ;輸入的密碼長度+1
inc si ;密碼源變址暫存器的位址+1
jmp next1
next2:
mov ah,02h
mov dl,0ah ;換行
int 21h
dec di
mov bx,offset p
mov si,offset pwd
mov cl,pwdlength
mov ch,0
cmp cx,mlength ;比較密碼長度
jnz next0
mov cx,mlength
next3:
mov al,[bx]
cmp [si],al
jnz next0
inc si
inc bx
loop next3
jmp wel
wel: mov ah,09h
mov dx,offset welcome
int 21h
jmp exit
err: mov ah,09h
mov dx,offset error
int 21h
jmp exit
exit: mov ah,4ch
int 21h
code ends
end beg
南郵微機實驗(設計定時器)
利用系統定時源設計計時器,具體內容 利用日時鐘附加1ch中斷設計定時中斷程式,每隔一秒重新整理螢幕上顯示的時 分 秒。486 data segment use16 mesg db 00 00 00 0dh,hour1 db 0 hour2 db 3 min1 db 5 min2 db 9 secon...
南郵微機實驗 序列口的測試
內容一 完成硬體測試環境,編寫程式對微機系統的串列埠進行查詢方式自發自收外環測試。本實驗已經將串列埠通訊線插接到微機的串列埠上,並且已經將2,3引腳短路,形成乙個自收的迴路。586 data segment use16 buf db hello lens equ buf data ends code...
南郵微機實驗(基於中斷的動態顯示)
利用1ch中斷,每隔一定時間間隔,在螢幕上列印一行自定義的字串 例如自己的學號b14040411 按下鍵盤任意鍵後程式自動退出。486 data segment use16 mesg db b14040411 0dh,0ah,old0a dd icount db 18 data ends code ...