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

📄 +

📁 用汇编设计的基于文本编辑器
💻
📖 第 1 页 / 共 2 页
字号:
        string manu5
        red_chr
        cmp ah,50h
        je  manu_n2
        cmp ah,48h
        je  manu_e
        cmp ah,1ch
        je  exit 
        jmp manu_hid
exit:
        call backdisplay
     ;   win 0,07h,15,10,17,61
     ;  win 0,24h,14,9,16,60
        mov dh,15
        mov dl,9
        mov bh,0
        mov ah,2
        int 10h
        lea  dx,message4
        mov ah,9     
        int 21h
        mov ah,1
        int 21h
        cmp al,79h                                    
        jnz q
        call quitt
q:      cmp al,6eh
        jz  quit
quit:   win 0,07h,0,0,24,79
        pos_curse 0,0,0
        mov ah,4ch
        int 21h
        ret
menu_show endp

new proc near                        ;新建文件
        pos_get
        push dx
        call backdisplay
     ;   win 0,07h,15,10,17,61
     ;   win 0,24h,14,9,16,60,
        mov dh,8
        mov dl,9
        mov bh,0
        mov ah,2
        int 10h
        lea dx,message1
        mov ah,9
        int 21h
        mov bx,0
all:
        mov ah,1
        int 21h
        cmp al,0dh
        je  alll
        mov path[bx],al
        inc bx
        jmp all
alll:
        win 0,2eh,15,9,17,61 
        pop dx
        pos_curse 0,dh,dl
        lea dx,path
        mov ah,3ch
        mov cx,00
        int 21h
        mov handle,ax
        mov bx,ax
        mov ah,2eh
        int 21h
        win 0,2eh,1,0,23,79
        mov dh,1
        mov dl,0
        mov bh,0 
        mov ah,2
        int 10h
        jmp char_get
new     endp


open_2:jmp open
saveas  proc near                       ;另存为文件                            
        
        call backdisplay
      ;  win 0,07h,15,10,17,61
       ; win 0,24h,14,9,16,60,
        mov dh,8
        mov dl,9
        mov bh,0
        mov ah,2
        int 10h
        lea dx,message2
        mov ah,9
        int 21h
        mov bx,0
bll: 
        mov ah,1
        int 21h
        cmp al,0dh
        je blll
        mov path[bx],al
        inc bx
        jmp bll
blll:
        pos_get
        push dx
        win 0,2eh,1,0,23,79
        call backdisplay
        pop dx
        pos_curse 0,dh,dl
        lea dx,path
        mov ah,3ch
        mov cx,00
        int 21h
        mov handle,ax
        lea dx,buffer
        mov bx,handle
        mov cx,2000
        mov ah,40h
        int 21h
        mov bx,handle
        mov ah,2eh
        int 21h
        call backdisplay 
        jmp char_get
saveas  endp

open proc near                            ;打开文件
        call backdisplay 
      ;  win 0,07h,15,10,17,61    
      ;  win 0,24h,14,9,16,60
        mov dh,8
        mov dl,9
        mov bh,0
        mov ah,2
        int 10h
        lea  dx,message3
        mov ah,9
        int 21h
        mov bx,0
cll: 
        mov ah,1
        int 21h
        cmp al,13
        je  clll
        mov path[bx],al
        inc bx
        jmp cll
clll:
        win 0,2eh,1,0,23,79
        lea dx,path
        mov ah,3dh
        mov al,0
        int 21h
        mov handle,ax
        lea dx,buffer
        mov bx,handle
        mov cx,2000
        mov ah,3fh
        int 21h
        win 0,2eh,1,23,1,79
        mov dh,1
        mov dl,0
        mov bh,0
        mov ah,2
        int 10h
        mov cx,1000
        sub bx,bx
replay:
        mov dl,buffer[bx]
        inc bx
        mov ah,2
        int 21h
        loop replay
        mov bx,handle
        mov ah,2eh
        int 21h
        mov dh,1
        mov dl,0
        mov bh,0
        mov ah,2
        int 10h
        mov cx,10
        mov bx,0
cleapath_3:
        mov bl,0
        mov path[bx],bl
        loop cleapath_3
        jmp char_get
open    endp




save proc near                               ;保存文件
        pos_get
        push dx
        win 0,2eh,1,0,6,10
        call backdisplay
        mov ah,path
        cmp ah,21h
        jl j_3
        jmp j_4
j_3: 
      ;  win 0,07h,15,10,17,61
      ;  win 0,24h,14,9,16,60,
        mov dh,12
        mov dl,9
        mov bh,0
        mov ah,2
        int 10h
        lea dx,message2
        mov ah,9
        int 21h
        mov bx,0
dll: 
        mov ah,1
        int 21h
        cmp al,0dh
        je dlll
        mov path[bx],al
        inc bx
        jmp dll
dlll:
        win 0,2eh,1,0,23,79
        pop dx
        pos_curse 0,dh,dl 
j_4:    lea dx,path
        mov ah,3ch
        mov cx,00
        int 21h
        mov handle,ax
        lea dx,buffer
        mov bx,handle
        mov cx,2000
        mov ah,40h
        int 21h
        mov bx,handle
        mov ah,2eh
        int 21h
        call backdisplay
        jmp char_get
save endp

savedisplay proc near     ;另存为
        push ax
        push bx
        push cx
        push dx
        push ds
        mov ax,0002h             ;隐藏鼠标指针
        int 33h
        mov bx,0d
        mov cx,3840d
loop1:
        mov ax,0b800h             ;指定ds断地址
        mov ds,ax
        mov dl,ds:[bx]
        mov ax,data
        mov ds,ax
        mov bak[bx],dl
        inc bx
        loop loop1
        mov ax,0001h             ;显示鼠标指针
        int 33h
        pop ds
        pop dx
        pop cx
        pop bx
        pop ax
savedisplay endp
backdisplay proc near
        push ax
        push bx
        push cx
        push dx
        push ds
        mov bx,0d
        mov cx,3840d
loop11:
        mov ax,data
        mov ds,ax
        mov dl,bak[bx]
        mov ax,0b800h
        mov ds,ax
        mov ds:[bx],dl
        inc bx
        loop loop11
        pop ds
        pop dx
        pop cx
        pop bx
        pop ax
        ret
backdisplay endp




quitt   proc near                     ;退出
        call backdisplay
      ;  win 0,07h,15,10,17,61
      ;  win 0,24h,14,9,16,60,
        mov dh,15
        mov dl,9
        mov bh,0
        mov ah,2
        int 10h
        lea dx,message2
        mov ah,9
        int 21h
        mov bx,0
qll: 
        mov ah,1
        int 21h
        cmp al,0dh
        je  qlll
        mov path[bx],al
        inc bx
        jmp qll
qlll:
        win 0,07h,15,10,17,61
        win 0,2eh,14,9,16,60
        call backdisplay
        lea dx,path
        mov ah,3ch
        mov cx,00
        int 21h
        mov handle,ax
        lea dx,buffer
        mov bx,handle
        mov cx,2000
        mov ah,40h
        int 21h
        mov bx,handle
        mov ah,2eh
        int 21h
        call backdisplay 
        win 0,07h,0,0,24,79
        mov ah,4ch
        int 21h
        ret
quitt   endp
edit    endp

win2     proc  near                     ;显示状态栏
         push   dx
         push   ax
         win 1,3eh,24,2,24,35
         pos_curse 0,24,2
         mov ah,9
         lea dx,zhuangtai
         int 21h
         pop   ax
         pop   dx
         ret
win2    endp

win3     proc   near
         mov    ah,2ah
         int    21h
         
         mov    bl,10d
         add    al,30h
         mov    [date+10],al
         mov    ax,0
         mov    al,dl
         div    bl
         add    ax,3030h
         mov    [date+12],al
         mov    [date+13],ah
         mov    ax,0
         mov    al,dh
         div    bl
         add    ax,3030h
         mov    [date+15],al
         mov    [date+16],ah
         mov    ax,0
         win  0,3ch,0,62,0,79
         pos_curse  0,0,62
         mov    dx,offset date
         mov    ah,09h
         int    21h
         
         ret
win3     endp  
;行列显示
win4    proc near            
        mov  ah,03h
        mov  bh,0
        int  10h

        mov  bh,100d
        mov  bl,10d
        mov  ax,0
        mov  al,dh
        div  bh
        add  al,30h
        mov  [rowline+4],al
        mov  al,ah
        mov  ah,0
        div  bl
        add  ax,3030h
        mov  [rowline+5],al
        mov  [rowline+6],ah
        mov  ax,0
        mov  al,dl
        div  bh
        add  al,30h
        mov  [rowline+14],al        
        mov  al,ah
        mov  ah,0
        div  bl
        add  ax,3030h
        mov  [rowline+15],al
        mov  [rowline+16],ah
        win   0,5dh,24,60,24,79
        pos_curse 0,24,60
        mov   dx,offset rowline
        mov   ah,09h
        int   21h
        ret
win4    endp        
code    ends                           
        end start                          ;结束

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -