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

📄 textedit.asm

📁 武汉理工大学计算机学院 汇编语言课程设计之乐曲程序源代码
💻 ASM
📖 第 1 页 / 共 2 页
字号:
			        jmp menu_hid
				menu_n2:
			        jmp menu_n1
				new_2:
					jmp new
				save_1:
					call save
				save_2:
					call saveas
				menu_e:
			        win 0,65h,4,1,4,8
			        setcurse 0,4,0
			        string menu4
			        win 0,15h,5,1,5,8
			        setcurse 0,5,0
			        string menu5
			        readchar
			        cmp ah,50h
			        je menu_n2
			        cmp ah,48h
			        je menu_e
			        cmp ah,1ch
			        je exit 
			        jmp menu_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
			        setcurse 0,0,0
			        mov ah,4ch
			        int 21h
			        ret
			menu_show endp
		
			new proc near	;新建文件
			        getcurse
			        push dx
			        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,message1
			        cmp al,0dh
			        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,3eh,15,9,17,61 
			        pop dx
			        setcurse 0,dh,dl
			        lea dx,path
			        mov ah,3ch
			        mov cx,00
			        int 21h
			        mov handle,ax
			        mov bx,ax
			        mov ah,3eh
			        int 21h
			        win 0,3eh,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	;另存为文件
			        win 0,3eh,1,0,6,10
			        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
				bll: 
			        mov ah,1
			        int 21h
			        cmp al,0dh
			        je blll
			        mov path[bx],al
			        inc bx
			        jmp bll
				blll:
			        getcurse
			        push dx
			        win 0,3eh,1,0,23,79
			        call backdisplay
			        pop dx
			        setcurse 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,3eh
			        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,15
			        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,3eh,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,3eh,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,3eh
			        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	;保存文件
			        getcurse
			        push dx
			        win 0,3eh,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,15
			        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,3eh,1,0,23,79
			        pop dx
			        setcurse 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,3eh
			        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
			        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,3eh,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,3eh
			        int 21h
			        call backdisplay 
			        win 0,07h,0,0,24,79
			        mov ah,4ch
			        int 21h
			        ret
			quitt endp
	edit endp 
code ends
	end start

⌨️ 快捷键说明

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