微機實驗 登入介面

2021-10-01 06:24:49 字數 4202 閱讀 3867

程式執行後,提示使用者輸入賬號和密碼,賬號回顯,密碼不回顯,只有賬號和密碼與程式內定的一致時,才提示登陸成功,登入成功後跳轉至歡迎介面。將賬號和密碼先儲存到記憶體中,當使用者輸入賬號或密碼時,使用cmp指令與記憶體中的資料進行比較。比較難的部分是退格鍵,我是這樣實現的,先判斷使用者按下的字元,若為退格鍵,則將游標左移一格,同時用int 21h的2號子功能輸出空格,游標又右移了一格,此時再將游標左移一格即可。

datas segment use16

tip db 'please input your accout:'

tiplen equ $-tip

tip1 db 'please input your password:'

tiplen1 equ $-tip1

buf db '2333' ;使用者名稱

buflen equ $-buf

pass db '1234' ;密碼

passlen equ $-pass

num db 4 dup(?) ;儲存使用者賬號輸入

num1 db 4 dup(?) ;儲存使用者密碼輸入

info1 db 'success$'

info2 db 'failure$'

wel db 'welcome'

welnum equ $-wel

spa dw ' ' ;暫存cx和dx暫存器的值,防止因使用指令而破壞原有暫存器的值

col db 0 ;記錄行數,用於自動換行

datas ends

codes segment use16

assume cs:codes,ds:datas,es:datas

start:

mov ax,datas

mov ds,ax

mov es,ax

aga:;提示請輸入賬號

mov ax,1301h

mov bh,0

mov bl,01001111b

mov cx,tiplen

mov dh,byte ptr[col] ;自動換行

mov dl,0

mov bp,offset tip

int 10h

;loop迴圈輸入4次,因為賬號內定字元為4個

mov bx,offset num

mov cx,4

ii: mov ah,7

int 21h

cmp al,8

jz back

mov byte ptr[bx],al

mov ah,2

mov dl,al

int 21h

inc bx

loop ii

jmp row

;實現退格功能(賬號部分)

back:

cmp cx,4

jz ii

mov spa,cx

;游標mov ah,3

mov bh,0

int 10h

mov ah,2

sub dl,1

;mov dh,dh

;mov dl,dl

mov bh,0

int 10h ;至此,游標左退一格

mov ah,2

mov dl,' '

int 21h ;在游標位置處輸出空格,游標右移一格

mov ah,3

mov bh,0

int 10h

mov ah,2

sub dl,1

;mov dh,dh

;mov dl,dl

mov bh,0

int 10h ;游標左退一格

dec bx

mov cx,spa

inc cx

jmp ii

row:

;輸出換行

mov ah,2

mov dl,0dh

int 21h

mov ah,2

mov dl,0ah

int 21h

;比較字串(賬號)

mov cx, buflen

mov si, offset num ;使用者輸入

mov di, offset buf ;目標

cldrepe cmpsb

jnz fail

jmp succ

;輸出賬號錯誤資訊,重新輸入賬號

fail:

mov ah,9

mov dx, offset info2

int 21h

add byte ptr[col],2

jmp aga

succ:

;賬號成功

mov dx, offset info1

mov ah,9

int 21h

add byte ptr[col],2

jmp mima

mima:

;提示請輸入密碼

mov ax,1301h

mov bh,0

mov bl,01001111b

mov cx,tiplen1

mov dh,byte ptr[col]

mov dl,0

mov bp,offset tip1

int 10h

;迴圈輸入密碼4次,因為內定密碼字元數是4個

mov bx,offset num1

mov cx,4

ii1:

mov ah,7

int 21h

cmp al,8

jz back1

mov byte ptr[bx],al

mov ah,2

mov dl,'*'

int 21h

inc bx

loop ii1

jmp row1

;實現退格功能(密碼部分)

back1:

cmp cx,4

jz ii1

mov spa,cx

;游標mov ah,3

mov bh,0

int 10h

mov ah,2

sub dl,1

;mov dh,dh

;mov dl,dl

mov bh,0

int 10h ;至此,游標左退一格

mov ah,2

mov dl,' '

int 21h ;在游標位置處輸出空格,游標右移一格

mov ah,3

mov bh,0

int 10h

mov ah,2 ;2號功能鍵有3個入口引數

sub dl,1

;mov dh,dh

;mov dl,dl

mov bh,0

int 10h ;游標左退一格

dec bx

mov cx,spa

inc cx

jmp ii1

;輸出換行

row1:

mov ah,2

mov dl,0dh

int 21h

mov ah,2

mov dl,0ah

int 21h

;比較字串(密碼)

mov cx, passlen

mov si, offset num1 ;使用者輸入

mov di, offset pass ;目標

cldrepe cmpsb

jnz fail1

jmp succ1

;密碼錯誤,提示重新輸入

fail1:

mov ah,9

mov dx, offset info2

int 21h

add byte ptr[col],2

jmp mima

succ1:

;清屏mov ax,0003h

int 10h

;密碼成功,進入歡迎介面

mov ax,1301h

mov bh,0

mov bl,01001111b

mov cx,welnum

mov dh,12

mov dl,(80-welnum)/2

mov bp,offset wel

int 10h

mov ah,4ch

int 21h

codes ends

end start

華工微機與介面實驗 分支和迴圈程式設計實驗

一,實驗內容 設計一資料塊間的搬移程式 設計思想 程式要求把記憶體中一資料區 稱為源資料塊 傳送到另一存貯區 稱為目的資料塊 源資料塊和目的資料塊在存貯中可能有三種情況。對於兩個資料塊分離的情況,資料的傳送從資料塊的首址開始,或者從資料塊的末址開始均可,但對於有部分重疊的情況,則要加以分析,否則重疊...

南郵微機介面彙編實驗2

第二次實驗,名稱 使用者登陸驗證程式的設計 實驗要求 1 執行程式後,介面首先出現自己的學號,例如 b18060701 2 在學號下方輸入登入密碼,密碼長度不超過30個字元。密碼內容不能顯示在螢幕上,要求用字元 替代。3 驗證輸入密碼與事先設定的密碼是否相同,如果密碼正確,給出提示 ok 程式結束 ...

微機顯示程式實驗

今天要交的微機實驗報告分享。顯示程式實驗 一,實驗目的 1.掌握在pc機上以十六進製制形式顯示資料的方法。2.掌握部分dos功能呼叫使用方法。二,實驗裝置 pc微機一台 三,實驗內容 一般來說,有很多程式需要顯示輸出提示執行的狀況和結果,有的還需要將資料區中的內容顯示在螢幕上。本實驗要求將指定資料區...