📄 加密程序.asm
字号:
.model small
convert macro strptr:req,num:req
local again,over,next
push ax
push bx
push cx
push dx
mov bx,strptr
mov cx,num
again:
mov al,[bx]
cmp al,'a'
jb next
cmp al,'z'
ja over
sub al,'a'-1
mov dl,'{'
sub dl,al
mov [bx],dl
next:
cmp al,'A'
jb over
cmp al,'Z'
ja over
sub al,'A'-1
mov dl,'['
sub dl,al
mov [bx],dl
over:
inc bx
loop again
pop dx
pop cx
pop bx
pop ax
endm
.data
oldf db 35,?,35 dup(?),0
newf db 35 dup(?),0
buff db 128 dup(?)
input_msg db "please enter the direction and filename",10,13,'$'
fail_msg db "file not found",10,13,'$'
ending_msg db "encrypt successfully",10,13,'$'
.code
.startup
again:
mov ah,09h
lea dx,input_msg
int 21h
mov ah,0ah
lea dx,oldf
int 21h
mov bl,oldf+1
cmp bl,0
jz over
xor bh,bh
mov oldf[bx+2],0
mov dx,offset oldf+2
mov al,0h
mov ah,3dh
int 21h
jc fail
push ax
mov cx,bx
inc cx
lea si,oldf+2
mov ax,ds
mov es,ax
lea di,newf
cld
rep movsb
mov al,newf[bx-1]
inc al
mov newf[bx-1],al
mov ah,5bh
mov cx,0h
lea dx,newf
int 21h
jc fail
mov si,ax
pop bx
jmp read
fail:
lea dx,fail_msg
mov ah,9h
int 21h
jmp again
read:
lea dx,buff
mov cx,128
mov ah,3fh
int 21h
cmp ax,0
jz close
jc close
push bx
mov dx,offset buff
mov cx,ax
convert dx,cx
mov bx,si
mov ah,40h
int 21h
pop bx
jmp read
close:
mov ah,3eh
int 21h
mov ah,41h
lea dx,oldf+2
int 21h
mov bx,si
mov ah,3eh
int 21h
mov ah,56h
lea dx,newf
lea di,oldf+2
int 21h
lea dx,ending_msg
mov ah,9
int 21h
jmp again
over:
.exit 0
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -