汇编:用户登录以及简单数据加密
生活随笔
收集整理的這篇文章主要介紹了
汇编:用户登录以及简单数据加密
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
MASM6.15
;功能 ;1.獲取字符串長度 ;2.簡單的解密.486 ;MACRO類似于C++中的內聯函數CRLF MACRO ;回車換行MOV AH,0EH ;功能號0E:顯示一個字符MOV AL,0DH ;AL為待顯示的ASCII碼INT 10HMOV AL,0AHINT 10H ENDMOUTX MACRO X ;打印一串字符X為參數MOV AH,09HMOV DX,OFFSET XINT 21H ENDMDATA SEGMENT USE16USER DB '11111111$'PASSWD DB '777777$' ;對稱加密后存儲數據INUSER DB 10 DUP(?)INPASSWD DB 10 DUP(?)OUT1 DB 'Enter the username and the password:','$' OUT2 DB 'USERNAME:','$'OUT3 DB 'PASSWORD:','$'OUT4 DB '*','$'OUT5 DB 'ERROR!','$'OUT6 DB 'WELCOME','$'USELEND DB ?PASSWDLEN DB ?TEMPWD DB 10 DUP(?) ;解密后的數據 DATA ENDS;此處輸入數據段代碼 CODE SEGMENT USE16 ASSUME CS:CODE,DS:DATA,ES:DATASTART:MOV AX,DATAMOV DS,AXMOV ES,AX;獲取數據段中用戶名和密碼的位數CALL GETULENCALL GETPLENOUTX OUT1CRLFOUTX OUT2MOV BX,OFFSET INUSERMOV CX,20 ;用戶名最大20個字節 LAST1: MOV AH,01H ;等待從鍵盤輸入一個字符,同時顯示在顯示器屏幕INT 21HMOV BYTE PTR [BX],ALCMP AL,0DHJZ JUMP1INC BXLOOP LAST1 JUMP1: CRLFOUTX OUT3MOV BX,OFFSET INPASSWDMOV CX,20 LAST2: MOV AH,07H ;輸入字符但不顯示在屏幕上 INT 21HMOV BYTE PTR [BX],ALCMP AL,0DHJZ JUMP2INC BXOUTX OUT4LOOP LAST2 JUMP2: CRLF CMP1: MOV SI,OFFSET INUSER MOV DI,OFFSET USER;從內存讀取用戶名長度LEA BX,USELENDMOV CX,[BX]AND CX,00FFHCLDREPE CMPSB ;串比較,直到ZF=0或CX=0JZ CMP2OUTX OUT5JMP EXIT CMP2: ;對密碼區進行解密CALL DISCRYMOV SI,OFFSET INPASSWD MOV DI,OFFSET TEMPWD ;從內存讀取密碼名長度LEA BX,USELENDMOV CX,[BX]SHR CX,8CLDREPE CMPSB ;串比較,直到ZF=0或CX=0JZ SUCCESSOUTX OUT5JMP EXIT SUCCESS:OUTX OUT6 EXIT: MOV AH,4CH INT 21H;解密 DISCRY proc;從內存讀取密碼名長度LEA BX,USELENDMOV CX,[BX]SHR CX,8;把PASSWD里面的東西拷貝進TEMPWDLEA SI,PASSWDLEA DI,TEMPWD DISGO: MOVSBLOOP DISGO;從內存讀取密碼名長度LEA BX,USELENDMOV CX,[BX]SHR CX,8LEA BX,TEMPWD DISC: SUB [BX],CXINC BXLOOP DISCDISCRY ENDP;獲取用戶名字符串長度 GETULEN procMOV AX,0HMOV BL,24HMOV DI,OFFSET USER UL: CMP BYTE PTR[DI],BLJZ GOOUT1INC DIINC AXJMP UL GOOUT1:LEA BX,USELENDMOV BYTE PTR [BX],ALMOV AX,0HMOV BX,0HMOV DI,0HRET GETULEN ENDP;獲取密碼符串長度 GETPLEN procMOV AX,0HMOV BL,24HMOV DI,OFFSET PASSWD PL: CMP BYTE PTR[DI],BLJZ GOOUT2INC DIINC AXJMP PL GOOUT2:LEA BX,PASSWDLENMOV BYTE PTR [BX],ALMOV AX,0HMOV BX,0HMOV DI,0HRET GETPLEN ENDP CODE ENDSEND START總結
以上是生活随笔為你收集整理的汇编:用户登录以及简单数据加密的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言编译器app官网下载,c语言编译器
- 下一篇: html基础电子文档,html基础