南郵微機介面彙編實驗2

2021-10-24 20:38:28 字數 1968 閱讀 9064

第二次實驗,名稱「使用者登陸驗證程式的設計」,實驗要求:

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 ...