一、實(shí)驗(yàn)?zāi)康暮鸵?/h2>
1.掌握循環(huán)程序的編寫以及結(jié)束循環(huán)的方法。
2.掌握DOS、BIOS功能調(diào)用的使用方法。
二、實(shí)驗(yàn)內(nèi)容
用戶登錄驗(yàn)證程序的實(shí)現(xiàn)
程序執(zhí)行后,給出提示操作,請(qǐng)用戶鍵入用戶名和密碼;用戶在鍵入密碼時(shí),程序不回顯鍵入字符;只有當(dāng)用戶鍵入的用戶名,密碼字符串和程序內(nèi)定的字符串相同時(shí),顯示歡迎界面并返回DOS;否則給出提示信息,用戶名或密碼錯(cuò)誤,再次輸入。界面顏色自定(彩色或黑白)
三、實(shí)驗(yàn)環(huán)境(實(shí)驗(yàn)設(shè)備)
XP /WIN7+MASM/TASM/輕松匯編/未來(lái)匯編
四、實(shí)驗(yàn)代碼
.586
DATA SEGMENT USE16
MESG1 DB 'INPUT YOUR USERNAME: $' ;提示字符
MESG2 DB 'INPUT YOUR PASSWORD: $'
ERROR DB '-----USERNAME OR PASSWORD ERROR!----$'
WELCOME DB '---------------WELCOME!-------------$'
_USERNAME DB 'root'
_PASSWORD DB 'root'
_ULEN EQU $-_USERNAME ; 用戶名長(zhǎng)度
_PLEN EQU $-_PASSWORD ; 密碼長(zhǎng)度
USERNAME DB 15 ; 輸入的用戶名
PASSWORD DB 15 DUP(?) ; 輸入的密碼
PLEN DB 0 ; 輸入密碼的長(zhǎng)度
DATA ENDS
CODE SEGMENT USE16
ASSUME CS: CODE, DS: DATA
BEG: MOV AX, DATA
MOV DS, AX
NEXT0: MOV AH, 9 ;09H功能號(hào),顯示DS:DL內(nèi)字符串
MOV DX, OFFSET MESG1
INT 21H
MOV AH, 0AH ;鍵盤輸入字符串并顯示,存在U緩沖區(qū)
MOV DX, OFFSET USERNAME ;用戶輸入字符串起始偏移位置放入DX緩沖區(qū)
INT 21H
MOV AH, 2
MOV DL, 0AH ;換行字符
INT 21H
MOV AH, 9 ;顯示提示字符串
MOV DX, OFFSET MESG2
INT 21H
MOV CX, _PLEN
MOV SI, OFFSET PASSWORD ;把輸入密碼起始偏移地址放入SI
NEXT1: MOV AH, 07H ;無(wú)回顯從鍵盤讀入一個(gè)字符
INT 21H
CMP AL, 0DH ;判斷輸入是否結(jié)束
JE IND
MOV [SI], AL ;將輸入密碼字符放入數(shù)據(jù)區(qū):PWD
MOV AH, 2 ;每輸入一位密碼顯示一個(gè)‘*’
MOV DL, '*'
INT 21H
INC PLEN
INC SI
JMP NEXT1
IND: MOV AH, 2 ;輸出換行
MOV DL, 0AH
INT 21H
MOV BX, OFFSET USERNAME+1 ;[BX]=實(shí)際輸入字符數(shù)
MOV AL, [BX]
CMP AL, _ULEN ;比較用戶名長(zhǎng)度
MOV BX, OFFSET _USERNAME
MOV SI, OFFSET _USERNAME+2
MOV CX, _ULEN ;設(shè)置循環(huán)次數(shù)
NEXT2: MOV AL, [BX]
CMP [SI], AL ;循環(huán)比較用戶名是否正確
INC SI
INC BX
LOOP NEXT2
MOV BX, OFFSET _PASSWORD
MOV SI, OFFSET PASSWORD
MOV CL, PLEN
MOV CH, 0
CMP CX, _PLEN ;比較密碼長(zhǎng)度
JNZ ERR
MOV CX, _PLEN
NEXT3: MOV AL, [BX]
CMP [SI], AL ;循環(huán)比較密碼字符是否正確
JNZ ERR
INC SI
INC BX
LOOP NEXT3
JMP WEL
ERR: MOV AH, 9
MOV DX, OFFSET ERROR ;輸出用戶名或密碼錯(cuò)誤提示
INT 21H
MOV AH, 2
MOV DL, 0AH
INT 21H
JMP NEXT0
WEL: MOV AH, 9 ;輸出登錄成功的提示
MOV DX, OFFSET WELCOME
INT 21H
JMP EXIT
EXIT: MOV AH, 4CH
INT 21H
CODE ENDS
END BEG
五、實(shí)驗(yàn)過(guò)程描述與結(jié)果分析
1、程序執(zhí)行后,給出提示操作,請(qǐng)用戶鍵入用戶名和密碼。
2、用戶在鍵入密碼時(shí),程序不回顯鍵入字符;只有當(dāng)用戶鍵入的用戶名,密碼字符串和程序內(nèi)定的字符串相同時(shí),顯示歡迎界面并返回DOS;
3、否則給出提示信息,用戶名或密碼錯(cuò)誤,再次輸入。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-417043.html
六、實(shí)驗(yàn)小結(jié)(包括問(wèn)題和解決方法、心得體會(huì)、意見(jiàn)與建議等)
1、注意子功能調(diào)用方法的使用
2、變量的命名格式要統(tǒng)一簡(jiǎn)潔
3、程序計(jì)數(shù)器CX的使用文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-417043.html
到了這里,關(guān)于南京郵電大學(xué)匯編語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)二(用戶登錄驗(yàn)證程序的設(shè)計(jì))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!