亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 1.asm

?? 匯編語言實現的簡易登陸系統
?? ASM
字號:
stack	segment	stack
		db	256 dup(0)
stack	ends
;-------------------------------------------------
DATA	SEGMENT		
	maxpl		equ		10								;密碼最大長度
	maxnl		equ		20								;名字最大長度

	namepar		label byte								;name parameter list
				db		maxnl
	namelen		db		?
	namerec		db		maxnl dup(' ')					;entered name
	
	pwdpar		label byte								;password parameter list
				db		maxpl
	pwdlen		db		?
	pwdrec		db		maxpl dup(' ')					;entered password

	buf			db		maxnl+maxpl dup(' '),0ah,0dh	;讀取一個記錄的緩沖

	newone		db		0								;是否創建新賬號
	handle		dw		?								;文件句柄
	pathnam		db		'd:/users.dat',0				;文件存取目錄
	row			db		01								;光標所在的行
	id			db		0								;當前用戶名的序號,修改密碼時用
	
	msgname		db		'please enter login name:(enter <new> to create a new account)','$'
	msgpwd		db		'please enter password:','$'
	newname		db		'login name? ','$'
	newpwd		db		'passeord? ','$'
	
	menumsg		db		'* * * 1:modify password * * *',0ah,0dh
				db		'* * * 2:list all users  * * *',0ah,0dh
				db		'* * * 3:quit            * * *','$'
	
	crtmsg		db		'* * * fail to create file * * *','$'
	newmsg		db		'* * * fail to create new account * * *','$'
	opnmsg		db		'* * * open file error * * *','$'
	wrtmsg		db		'* * * write file error * * *','$'
	redmsg		db		'* * * read file error * * *','$'
	clsmsg		db		'* * * close file error * * *','$'
	logmsg		db		'* * * name or password is wrong * * *','$'
	renmsg		db		'* * * this name is used,please enter again * * *','$'
	gdbmsg		db		0ah,0dh,'Goodbye!!!','$'
	tilmsg		db		'username            password','$'
	modmsg		db		'* * * success! * * *','$'
	mermsg		db		'* * * fail,retry! * * *','$'
	
	errcde		db		0			;0:正常,	1:出錯,	2:測試打開
									;3:用戶名重復	4:已讀到文件末尾
data	ends
;-------------------------------------------------
code	segment
main	proc far
	assume	cs:code,ds:data,ss:stack,es:data
start:
		push	ds
		sub		ax,ax
		push	ax
		mov		ax,data
		mov		ds,ax
		mov		es,ax
goback:	mov		row,01
		mov		ax,0600h
		call	scren				;clear screen
		call	curs				;set cursor
	
gb1:	mov		errcde,0
		call	inname				;input name
		cmp		errcde,01
		jz		done3
		call	isinnew				;檢查輸入密碼時輸入的是否是new,是則創建新賬號
		cmp		newone,1
		je		co
		lea		dx,msgpwd
		mov		ah,09
		int		21h
		call	inpwd				;input password
		call	login				;檢查用戶名和密碼是否正確
		cmp		errcde,0
		jz		conti1
		lea		dx,logmsg
		mov		ah,09
		int		21h
		call	scrl
		jmp		gb1
conti1:	call	showmenu			;顯示選擇菜單
		jmp		done3
co:		call	createone			;添加新賬號
		cmp		errcde,0
		jz		goback
done3:	ret
main	endp	
;-------------------------------------------------
inname	proc near					;輸入的用戶名存在namerec里
		lea		dx,msgname			;顯示輸入用戶名提示
		mov		ah,09
		int		21h
		call	scrl
		lea		dx,namepar
		mov		ah,10
		int		21h
		call	scrl
		cmp		namelen,0
		jne		don
		mov		errcde,01
don:	ret
inname	endp
;-------------------------------------------------
inpwd	proc near					;輸入的密碼存在pwdrec里
		lea		bx,pwdrec
		mov		cl,maxpl
lp0:	mov		ah,07
		int		21h
		cmp		al,0dh				;回車結束
		je		done0
		cmp		al,08				;backspace
		je		backspace0
		mov		[bx],al
		mov		dl,'*'
		mov		ah,02h
		int		21h
		inc		bx
		dec		cl
		jnz		lp0
		jmp		done0
backspace0:
		cmp		cl,maxpl			;如果沒有輸入字符或已經退到頂,則不執行一下代碼
		je		lp0
		mov		dl,08h				;先退格
		mov		ah,02h
		int		21h
		mov		dl,00h				;輸出NUL
		int		21h
		mov		dl,08h				;再退格,達到鍵盤上Backspace的效果
		int		21h
		inc		cl
		dec		bx
		mov		byte ptr [bx],' '
		jmp		lp0
done0:	mov		ch,maxpl
		sub		ch,cl
		mov		pwdlen,ch
		call	scrl
		ret
inpwd	endp
;-------------------------------------------------
isinnew	proc near					;檢查namerec里輸入的是否是new
		cmp		namelen,03
		jne		not0
		lea		bx,namerec
		cmp		byte ptr [bx],'n'
		jne		not0
		inc		bx
		cmp		byte ptr [bx],'e'
		jne		not0
		inc		bx
		cmp		byte ptr [bx],'w'
		jne		not0
		mov		newone,1
		jmp		done2
not0:	mov		newone,0
done2:	ret
isinnew	endp
;-------------------------------------------------
createone	proc near				;創建新賬號
rein:	lea		dx,newname
		mov		ah,09
		int		21h
		lea		dx,namepar			;輸入新的用戶名
		mov		ah,10
		int		21h
		cmp		namelen,0
		jne		continue2
		ret
continue2:
		call	scrl
		
		mov		errcde,02			;用戶測試打開
		call	openf
		cmp		errcde,0			;打開失敗,無須檢查用戶名是否重復
		jnz		continue1
		call	findnam
		mov		id,0			
		call	closef
		cmp		errcde,03			;用戶名重復
		jnz		continue1
		lea		dx,renmsg
		mov		ah,09
		int		21h
		call	scrl
		jmp		rein
continue1:
		mov		errcde,0
		lea		dx,newpwd
		mov		ah,09
		int		21h
		call	inpwd
		call	scrl
		
		call	tranc
		
		mov		errcde,02			;用戶測試打開
		call	openf
		cmp		errcde,0			;打開失敗,嘗試創建新文件
		jz		addone

		mov		errcde,0
		call	createf
		cmp		errcde,0			;創建失敗
		jnz		done4
		call	writef
		jmp		done4

addone:	mov		ah,42h				;把文件指針移到末尾
		mov		al,2				;絕對倒移方式2
		mov		bx,handle
		mov		cx,0				;offset
		mov		dx,0
		int		21h					;將文件指針移到文件尾,返回dx:ax=文件長度
		jc		err
		call	writef
		jmp		done4
		
err:	lea		dx,newmsg
		call	error
done4:	call	closef
		ret
createone	endp
;-------------------------------------------------
tranc	proc near
		mov		al,20h				;blank for storing
		sub		ch,ch
		mov		cl,namelen			;length
		lea		di,namerec
		add		di,cx				;address+length
		neg		cx					;calculate remaining
		add		cx,20				;length
		rep		stosb				;set to blank
		
		mov		al,20h
		sub		ch,ch
		mov		cl,pwdlen
		lea		di,pwdrec
		add		di,cx
		neg		cx
		add		cx,10
		rep		stosb
		ret
tranc	endp
;-------------------------------------------------
login	proc	near
		mov		id,0
		mov		errcde,0			;清楚錯誤碼
		call	openf
		cmp		errcde,0
		jnz		done5
		call	findnam
		cmp		errcde,03			;找到名字
		jnz		done5
		call	checkpwd
		cmp		errcde,0			;密碼正確?
		jnz		done5
		mov		errcde,0
		call	closef
		ret
done5:	mov		errcde,01
		ret
login	endp
;-------------------------------------------------
createf	proc near
		mov		ah,3ch				;request create
		mov		cx,0				;normal attribute
		lea		dx,pathnam
		int		21h
		jc		a1					;error
		mov		handle,ax			;no,save handle
		ret
a1:		lea		dx,crtmsg			;error message
		call	error
		ret
createf	endp
;-------------------------------------------------
showmenu	proc	near
conti2:	mov		row,02
		mov		ax,0600h
		call	scren				;clear screen
		call	curs				;set cursor
		lea		dx,menumsg
		mov		ah,09
		int		21h
		call	scrl
		call	scrl
		mov		dl,'?'
		mov		ah,02
		int		21h
		mov		ah,01
		int		21h
		sub		al,'0'				;ASCII to number
		cmp		al,1
		jz		mod1				;modify password
		cmp		al,2
		jz		list1				;list all users
		lea		dx,gdbmsg
		mov		ah,09
		int		21h
		call	scrl
done7:	ret
mod1:	call	modpwd
		jmp		conti2
list1:	call	lstall
		jmp		conti2
showmenu	endp
;-------------------------------------------------
openf	proc near					;用于測試文件存在而打開時,給errcde賦值2
		mov		ah,3dh				;request create
		mov		al,02				;read and write
		lea		dx,pathnam
		int		21h
		jc		b1					;error
		mov		handle,ax			;no,save handle
		mov		errcde,0
		ret
b1:		cmp		errcde,02			;是測試打開
		jz		b2
		lea		dx,opnmsg			;error message
		call	error
		jmp		b3
b2:		mov		errcde,01
b3:		ret
openf	endp
;-------------------------------------------------
readf	proc near
		mov		ah,3fh				;request read
		mov		bx,handle
		mov		cx,maxnl+maxpl		;for name,password and CR/LF
		lea		dx,buf
		int		21h
		jc		c1					;error no read?
		cmp		ax,0				;end of file?讀取了0字節
		je		c2
		ret
c1:		lea		dx,redmsg
		call	error
		ret
c2:		mov		errcde,04			;標示已經讀到文件末尾
		ret
readf	endp
;-------------------------------------------------
writef	proc near
		cld							;DF=0,增量方向
		lea		si,namerec			;復制namerec到buf
		lea		di,buf
		mov		cx,maxnl
		rep		movsb
		lea		si,pwdrec			;復制pwdrec到buf+maxnl
		lea		di,buf+maxnl
		mov		cx,maxpl
		rep		movsb
		
		mov		ah,40h				;request write
		mov		bx,handle
		mov		cx,maxnl+maxpl		;for buf
		lea		dx,buf
		int		21h
		jc		d1					;valid write?
	
		;mov		namelen,0
		;mov		pwdlen,0
		;lea		di,buf				;清空buf
		;mov		al,' '
		;mov		cx,maxnl+maxpl
		;rep		stosb
		ret
d1:		lea		dx,wrtmsg			;no
		call	error				;call error routine
		ret
writef	endp
;-------------------------------------------------
closef	proc near
		mov		ah,3eh				;request close
		mov		bx,handle
		int		21h
		ret
d2:		lea		dx,clsmsg			;no
		call	error				;call error routine
		ret
closef	endp
;-------------------------------------------------
findnam	proc near
		call	tranc
next1:	inc		id					;用戶序號加一
		call	readf
		cmp		errcde,04			;是否已讀到文件末尾
		jz		f1
		lea		si,buf
		lea		di,namerec
		xor		cx,cx
		mov		cl,maxnl
		repe	cmpsb				;相同時ZF=1,repe繼續執行
		jnz		next1				;CX為0,說明比較到最后都相同
		mov		errcde,03			;找到相同的名字
		jmp		f2
f1:		mov		errcde,0			;未找到相同的名字
f2:		ret
findnam	endp
;-------------------------------------------------
checkpwd	proc near
		mov		errcde,0
		lea		si,buf+maxnl
		lea		di,pwdrec
		xor		cx,cx
		mov		cl,maxpl
		repe	cmpsb
		jnz		done6
		mov		errcde,0
		ret
done6:	mov		errcde,01			;密碼不對
		ret
checkpwd	endp
;-------------------------------------------------
modpwd	proc near
		call	scrl
		lea		dx,newpwd
		mov		ah,09
		int		21h
		call	inpwd
		call	openf
		mov		al,maxnl+maxpl
		mov		cl,id
		dec		cl
		mul		cl					;計算出該用戶記錄在文件中的偏移量
		;add		cl,maxnl			;移動到保存密碼的位置
		mov		bx,handle
		mov		cx,0
		mov		dx,ax
		mov		al,0				;從文件頭開始的絕對位移
		mov		ah,42h
		int		21h
		jc		err4
		cld
		call	tranc
		call	writef
		cmp		errcde,01
		jz		done9
		lea		dx,modmsg
		jmp		gogo
err4:	lea		dx,mermsg	
gogo:	mov		ah,09
		int		21h		
done9:	call	closef
		mov		ah,07
		int		21h
		ret
modpwd	endp
;-------------------------------------------------
lstall	proc near
		call	scrl
		lea		dx,tilmsg
		mov		ah,09
		int		21h
		call	scrl
		call	openf
next3:	call	readf
		cmp		errcde,04			;已到文件末尾
		jz		done8
		mov		ah,40h				;request write
		mov		bx,01				;set handle,01為標準輸出設備
		mov		cx,32				;for length
		lea		dx,buf
		int		21h
		jmp		next3
done8:	call	closef
		mov		ah,07
		int		21h
		ret
lstall	endp
;-------------------------------------------------
scrl	proc near
		cmp		row,18h				;bottom of screen?
		jae		c3					;yes,bypass
		inc		row					;no,add to row
c3:		mov		ax,0601h			;scroll one row
		call	scren
		call	curs				;reset cursor
		ret
scrl	endp
;-------------------------------------------------
scren	proc near				;AX set on entry
		mov		bh,1eh			;set yellow no blue
		mov		cx,0
		mov		dx,184fh
		int		10h				;scroll
		ret
scren	endp
;-------------------------------------------------
curs	proc near
		mov		ah,02
		mov		bh,0
		mov		dh,row			;set cursor
		mov		dl,0
		int		10h
		ret
curs	endp
;-------------------------------------------------
error	proc near			;通過DX傳遞要顯示的信息地址
		mov		ah,09
		int		21h
		mov		errcde,01
		ret
error	endp
;-------------------------------------------------
code	ends
	end	start

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线成人午夜影院| 777色狠狠一区二区三区| 麻豆国产精品777777在线| 亚洲国产乱码最新视频 | 国产69精品久久777的优势| 激情综合网av| 国产精品18久久久久久久久久久久 | 欧美性生活久久| 欧美午夜精品久久久久久超碰| 成人av在线网站| 91麻豆蜜桃一区二区三区| 在线观看欧美日本| 91精品午夜视频| 久久久久九九视频| 亚洲欧洲综合另类在线| 亚洲大尺度视频在线观看| 免费高清在线一区| 国产成人综合在线观看| 色女孩综合影院| 欧美另类videos死尸| 精品日韩欧美一区二区| 国产精品麻豆欧美日韩ww| 樱花影视一区二区| 日韩国产欧美在线观看| 国内成+人亚洲+欧美+综合在线| 成人黄色大片在线观看| 欧美日韩国产影片| 国产精品午夜在线观看| 无吗不卡中文字幕| 国产成人8x视频一区二区| 在线观看成人小视频| 欧美成人a视频| 亚洲精品va在线观看| 国产在线精品免费| 欧美亚洲国产bt| 久久久不卡网国产精品二区| 一区二区三区四区在线| 国产成人午夜精品5599 | 捆绑变态av一区二区三区| 国产999精品久久| 欧美日韩亚洲国产综合| 国产色综合久久| 日本亚洲天堂网| 在线观看日韩高清av| 国产精品二区一区二区aⅴ污介绍| 日日摸夜夜添夜夜添亚洲女人| 国产91精品欧美| 欧美一二三区在线观看| 一二三区精品视频| 成人av在线资源| 国产亚洲综合色| 久久国产精品露脸对白| 欧美猛男超大videosgay| 国产精品福利电影一区二区三区四区 | 亚洲一区二区视频在线| 成人h精品动漫一区二区三区| 日韩欧美精品在线| 亚洲va欧美va天堂v国产综合| 99精品久久免费看蜜臀剧情介绍| 久久久久久毛片| 国产一区二区三区不卡在线观看| 欧美一区二区三区的| 亚洲成人午夜影院| 欧美色视频在线| 一区二区三区波多野结衣在线观看 | 欧美视频在线观看一区二区| 中文字幕一区二区三区四区不卡| 国产成人精品影视| 久久久不卡网国产精品二区| 国产精品亚洲а∨天堂免在线| 欧美www视频| 精品在线播放午夜| 久久九九久久九九| 成人精品鲁一区一区二区| 国产农村妇女精品| 成人动漫中文字幕| 亚洲免费av在线| 欧美吻胸吃奶大尺度电影 | 91在线一区二区三区| 国产欧美日韩在线看| 99国产精品久久久久久久久久久| 日本一区二区免费在线| 成人app网站| 亚洲欧洲精品一区二区精品久久久| 99精品视频在线免费观看| 亚洲精品国产一区二区三区四区在线| 91香蕉视频mp4| 性做久久久久久久免费看| 日韩一区二区免费视频| 国产乱子伦视频一区二区三区| 国产日产欧美一区二区视频| av一二三不卡影片| 一区二区日韩av| 欧美成人综合网站| 成人免费精品视频| 亚洲午夜一区二区三区| 日韩女优av电影在线观看| 福利一区福利二区| 亚洲综合精品自拍| 久久蜜桃香蕉精品一区二区三区| 成人免费va视频| 午夜精品影院在线观看| 精品乱码亚洲一区二区不卡| 99免费精品视频| 久久精品国产精品亚洲红杏| 国产精品视频一二三区| 9191久久久久久久久久久| 国产高清成人在线| 日韩中文字幕亚洲一区二区va在线| 久久亚洲综合av| 欧美日韩精品一区二区| 国产精品羞羞答答xxdd| 五月婷婷综合网| 国产精品久久久久久久浪潮网站| 欧美日韩在线观看一区二区 | 欧美影院精品一区| 国产精品77777| 蜜臀av性久久久久av蜜臀妖精| 国产网红主播福利一区二区| 欧美日韩高清在线| 9i看片成人免费高清| 久久精品国产免费| 天天影视色香欲综合网老头| 亚洲视频在线观看一区| 久久亚洲综合色| 日韩欧美国产小视频| 欧美色区777第一页| 91在线免费看| 国产成人免费高清| 韩国一区二区视频| 美女精品自拍一二三四| 香蕉成人啪国产精品视频综合网| 中文字幕一区二区三区四区不卡| 久久婷婷色综合| 日韩美一区二区三区| 欧美日韩精品电影| 在线观看亚洲精品视频| 91亚洲精品久久久蜜桃| 99久久综合99久久综合网站| 国产成人精品综合在线观看| 国产一区二区三区日韩| 精品午夜久久福利影院| 蜜臀91精品一区二区三区 | 91在线码无精品| 99视频有精品| 99精品一区二区| 色悠悠久久综合| 日本久久一区二区三区| 在线观看国产精品网站| 欧美中文一区二区三区| 欧美午夜片在线观看| 欧美精品丝袜中出| 91精品国产色综合久久ai换脸| 欧美日韩国产天堂| 日韩午夜精品视频| 精品国产污网站| 久久精品亚洲麻豆av一区二区 | 一级中文字幕一区二区| 亚洲大尺度视频在线观看| 天天综合网 天天综合色| 麻豆一区二区在线| 国产综合久久久久影院| 成人免费不卡视频| 日本韩国精品一区二区在线观看| 在线观看亚洲专区| 日韩欧美国产综合一区| 国产日产欧美一区二区三区| 综合久久给合久久狠狠狠97色| 亚洲激情欧美激情| 午夜影院久久久| 激情综合网av| 91日韩在线专区| 欧美一区国产二区| 国产日韩一级二级三级| 亚洲精品视频自拍| 美女免费视频一区二区| 成人av资源站| 欧美精选在线播放| 精品99久久久久久| 亚洲特级片在线| 日本不卡视频在线观看| jvid福利写真一区二区三区| 欧美亚洲国产一卡| 国产网站一区二区三区| 亚洲国产欧美日韩另类综合| 国产九九视频一区二区三区| 日本福利一区二区| 久久这里只有精品视频网| 一区二区三区精品| 国产精品一区二区久久不卡 | 在线免费观看一区| 欧美α欧美αv大片| 专区另类欧美日韩| 久久精品国产**网站演员| 91女神在线视频| 久久精品男人的天堂| 日本欧美在线看| 色婷婷综合视频在线观看| 久久久久国产免费免费| 日韩不卡免费视频|