彙編第二次實驗 輸入使用者名稱和密碼,比對是否正確

2021-08-29 17:55:07 字數 1790 閱讀 8439

.486

data segment use16

msg1 db 'please input your username:',0dh,0ah,'$'

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

msg3 db 0dh,0ah,'------welcome!-----',0dh,0ah,'$'

msg4 db 0dh,0ah,'------error!-----',0dh,0ah,'$'

msg5 db 0dh,0ah,'$'

buf1 db 'a'

lll equ $-buf1

buf2 db '123'

mmm equ $-buf2

buf3 db 12

db ?

db 12 dup(?)

buf4 db 12 dup(?)

data ends

code segment use16

assume ds:data,cs:code

beg: mov ax,data

mov ds,ax

mov ah,9 ;提示輸入使用者的使用者名稱

mov dx,offset msg1

int 21h

mov ah,0ah ;接受鍵入使用者的使用者名稱

mov dx,offset buf3

int 21h

mov bx,offset buf1 ;系統中儲存的使用者名稱

mov si,offset buf3+2 ;輸入的使用者名稱

mov cx,lll ;使用者名稱的長度

next:mov al,[bx] ;逐位比較

cmp [si],al

jnz error

inc si

inc bx

loop next

mov ah,9 ;回車換行

mov dx,offset msg5

int 21h

mov ah,9 ;使用者名稱驗證正確,輸入密碼

mov dx,offset msg2

int 21h

mov cx,mmm

mov si,offset buf4 ;等待鍵入區

mov ah,9 ;回車換行

mov dx,offset msg5

int 21h

next1: mov ah,7 ;無回顯的輸入

int 21h

mov [si],al ;al存放按鍵的ascii碼

mov ah,2

mov dx,'*'

int 21h

inc si

loop next1

mov cx,mmm

mov bx,offset buf2 ;系統中儲存的密碼

mov si,offset buf4 ;鍵入的密碼

next2: mov al,[bx]

cmp [si],al

jnz error

inc si

inc bx

loop next2

mov ah,9 ;顯示歡迎介面

mov dx,offset msg3

int 21h

jmp exit

error:mov ah,9

mov dx,offset msg4

int 21h

exit:mov ah,4ch

int 21h

code ends

end beg

南郵彙編第二次實驗

輸入密碼,判斷是否與設定密碼一樣,不一樣繼續輸入,否則彈窗歡迎 datas segment message db password storepassword db 12345678 初始預設密碼 welcome db welcome password db 30 緩衝區首單元應預置允許接受的字元個...

第二次實驗

一 問題及 問題提 乙個數如果恰好等於它的因子之和,這個數就稱為 完數 例如6 1 2 3,再如8的因子和是7 即1 2 4 8不是完數。程式設計找出1000以內的所有完數。答案 6 28 496 檔名稱 作 者 周玉傑 完成日期 2017 年 3月 13 日 版 本 號 dev c 對任務及求解方...

第二次實驗

1 如何進行模式切換 哪兩種模式 答 第一次啟動linux系統會進入命令列模式,會要求輸入使用者名稱,預設的管理員帳號名為root,輸入 root 後回車,提示輸入密碼 密碼是在安裝系統時自己設定的 這樣就以管理員身份登陸了系統。第二種就是如果不想用使用命令列模式,而需要進入圖形介面 在命令列模式下...