📄 加密.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 + -