?? 加密.txt
字號:
datas segment
string db 20,?,20 dup(?) ;定義20個字節的緩沖存儲區
input db 0ah,0dh,'Please input one string:$'
output db 0ah,0dh,'The string after encrypting:$'
error db 0ah,0dh,'The string is error!$' ;以上定義信息提示
crlf db 0ah,0dh,'$' ;換行信息
datas ends
code segment
main proc far
assume cs:code,ds:datas
start:
push ds
sub ax,ax
push ax
mov ax,datas
mov ds,ax
lea dx,input
mov ah,9
int 21h
lea dx,string ;輸入字符串
mov ah,10
int 21h
lea si,string+2 ;把字符串首地址+2傳送給si
mov cl,string+1
mov ch,0 ;把字符串的字符個數沖送給cx
process:
cmp string[si],30h
jl err
cmp string[si],39h
jg process1 ;檢查字符是否為數字字符,若是則是合法字符,否則是不合法字符
jmp assurance
process1:
cmp string[si],41h
jl err
cmp string[si],5ah
jg process2 ;檢查字符是否為大寫字母字符,若是則是合法字符,否則是不合法字符
jmp assurance
process2:
cmp string[si],61h
jl err
cmp string[si],7ah
jg err ;檢查字符是否為小寫字母字符,若是則是合法字符,否則是不合法字符
assurance:
inc si
loop process
;以上的process過程檢查字符串中是否有不合法字符,若有則跳轉到err,否則執行下面的加密操作
lea dx,crlf
mov ah,9
int 21h
lea dx,output
mov ah,9
int 21h
lea si,string+1 ;把檢查后的字符串首地址+1傳送給si
mov cl,string[si]
mov ch,0 ;把字符串的字符個數沖送給cx
lea si,string+2 ;把檢查后的字符串首地址+2傳送給si
encrypt:
cmp string[si],60h
jg encrypt1 ;字符是小寫字母,則跳轉到encrypt1
cmp string[si],40h
jg encrypt2 ;字符是大寫字母,則跳轉到encrypt2
jmp encrypt3 ;字符是數字,則跳轉到encrypt3
encrypt1:
add string[si],5 ;加5進行加密
jmp display
encrypt2:
add string[si],4 ;加5進行加密
jmp display
encrypt3:
add string[si],3 ;加5進行加密
display:
cmp string[si],7ah
jg correct1 ;加密后字符大于'z',則跳轉到correct1
cmp string[si],61h
jge print ;加密后字符為小寫字母且不大于'z',則跳轉到print
cmp string[si],5ah
jg correct1 ;加密后字符大于'Z',則跳轉到correct1
cmp string[si],41h
jge print ;加密后字符為小寫字母且不大于'Z',則跳轉到print
cmp string[si],39h
jg correct2 ;加密后字符大于'9',則跳轉到correct2
jmp print ;加密后字符為數字且不大于'9',則跳轉到print
correct1:
sub string[si],1ah
jmp print
correct2:
sub string[si],0ah ;對加密后不正常的字符進行校正
print:
mov dl,string[si]
mov ah,02h
int 21h ;逐個輸出加密后的字符
inc si
loop encrypt
jmp exit
err:
lea dx,crlf
mov ah,9
int 21h
lea dx,error
mov ah,9
int 21h ;輸出錯誤信息
exit:
ret
main endp
code ends
end start
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -