這是我們學彙編時,要求做的乙個小實驗,感覺挺有趣的,就想發到部落格上來的。初學組合語言的同學,也可以借鑑參考一下。
實驗要求:
程式執行後,給出操作提示,請使用者鍵入使用者名稱和密碼;使用者在鍵入密碼時,程式不回顯鍵入字元,只有當使用者鍵入的使用者名稱、密碼字串和程式內定的字串相同時,顯示歡迎介面,並返回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...