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

📄 加密程序.asm

📁 编写简单的加密程序它把一个文件的所有字母按下列规律进行 换
💻 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 + -