乙個彙編小程式 使用者登入驗證程式

2021-06-26 18:08:24 字數 2430 閱讀 4926

這是我們學彙編時,要求做的乙個小實驗,感覺挺有趣的,就想發到部落格上來的。初學組合語言的同學,也可以借鑑參考一下。

實驗要求:

程式執行後,給出操作提示,請使用者鍵入使用者名稱和密碼;使用者在鍵入密碼時,程式不回顯鍵入字元,只有當使用者鍵入的使用者名稱、密碼字串和程式內定的字串相同時,顯示歡迎介面,並返回dos。

**裡面有比較詳細的注釋,感興趣的同學可以看看。

**:

;filename: exercise2.asm

.486

data segment use16

mesg1 db 0dh,0ah,'please input username:$'

mesg2 db 0dh,0ah,'please input password:$'

mesg3 db 0dh,0ah,'login incorrect!$'

username db 'b12040331$'

password db '123456789$'

flag db ?

buf db 30

db ?

db 30 dup(?)

data ends

code segment use16

assume cs:code,ds:data

beg: mov ax,data

mov ds,ax

mov es,ax

aga: mov flag,0

mov ah,9 ;顯示提示資訊(使用者名稱)

mov dx,offset mesg1

int 21h

mov ah,0ah ;輸入使用者名稱

mov dx,offset buf

int 21h

mov bl,buf+1

mov bh,0

mov si,offset buf+2

mov byte ptr [bx+si],'$'

mov si,offset buf+2 ;驗證使用者名稱是否正確

mov di,offset username

mov cx,9

cldrepe cmpsb

mov flag,cl

mov ah,9 ;顯示提示資訊(密碼)

mov dx,offset mesg2

int 21h

mov si,offset buf+2 ;處理輸入密碼

input: mov ah,0ch ;清除鍵盤緩衝區

int 21h

mov ah,8

int 21h

cmp al,13

jz next

mov [si],al

inc si

mov ah,2

mov dl,2ah

int 21h

jmp input

next: cmp flag,0

jnz lerror

mov si,offset buf+2 ;驗證密碼是否正確

mov di,offset password

mov cx,9

cldrepe cmpsb

jnz lerror

mov ah,4ch

int 21h

lerror: mov ah,9

mov dx,offset mesg3

int 21h

jmp aga

code ends

end beg

執行效果如下:

乙個彙編小程式

assume cs code,ds data,es table,ss stack stack segment stack db 16 dup 0 stack ends data segment db 1975 1976 1977 1978 1979 1980 1995 dd 16,22,382,13...

python編寫乙個使用者登入程式

print 新建使用者 n n print 登入賬號 e e print 退出程式 q q contact dict while 1 a input 請輸入指令 if a n or a n name input 請輸入使用者名稱 if name in contact name input 此使用者已...

乙個java小程式

能讓阿拉伯數字讀成符合漢語語法和漢語習慣的中文.就這我 還做了一天呢 鬱悶.public class itcs string unit1 new string string unit2 new string string str args 0 string str 2 null system.out...