📄 数据加密.asm
字号:
key=179
data segment
buf1 db 20
db ?
db 20 dup (0)
inf_1 db 0ah,0dh,'enter the plain text: $'
inf_2 db 0ah,0dh,'cipher text: $'
inf_3 db 0ah,0dh,'decrypted : $'
inf_4 db 0dh,0ah,'Do you want to decrypt?(Y/N) $'
data ends
stack segment
db 100 dup (?)
stack ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
lea dx,inf_1
mov ah,09h
int 21h
lea dx,buf1
mov ah,0ah
int 21h
mov cl,buf1+1
mov ch,0
mov si,2
K1: xor buf1[si],key
inc si
loop K1
lea dx,inf_2
mov ah,09h
int 21h
mov bl,'$'
mov [si],bl
lea dx,buf1
add dx,2
mov ah,09h
int 21h
lea dx,inf_4
mov ah,09h
int 21h
mov ax,0100H ;调用中断21H的01功能,接受一个字符输入并回显
int 21h
cmp al,'n' ;判断输入字符是否为y或Y,如果是,则继续执行,否则退出
jz exit
cmp al,'N'
jz exit
mov ah,07h
int 21h
mov cl,buf1+1
mov ch,0
mov si,2
K2: xor buf1[si],key
inc si
loop K2
lea dx,inf_3
mov ah,09h
int 21h
mov bl,'$'
mov [si],bl
lea dx,buf1
add dx,2
mov ah,09h
int 21h
exit:
mov ah,07h
int 21h
mov ah,4ch
int 21h
code ends
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -