⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 加密.txt

📁 数字加密程序 输入一个字符串
💻 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 + -