加密程序.asm
来自「编写简单的加密程序它把一个文件的所有字母按下列规律进行 换」· 汇编 代码 · 共 126 行
ASM
126 行
.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 + =
减小字号Ctrl + -
显示快捷键?