?? z1.asm
字號(hào):
all:
mov ah,1
int 21h
cmp al,0dh
je alll
mov path[bx],al
inc bx
jmp all
alll:
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,3eh ;關(guān)閉文件
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 ;另存為文件
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
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:
pos_get
push dx
win 0,3eh,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 ; 數(shù)據(jù)緩沖區(qū)地址
mov bx,handle ; 文件代號(hào)
mov cx,2000 ; 字節(jié)數(shù)
mov ah,40h ; 寫(xiě)文件
int 21h
mov bx,handle
mov ah,3eh ; 關(guān)閉文件
int 21h
call backdisplay
jmp char_get
saveas endp
open proc near ;打開(kāi)文件
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 ;置光標(biāo)位置
int 10h
lea dx,message3
mov ah,9
int 21h
mov bx,0
cll:
mov ah,1
int 21h
cmp al,0dh
je clll
mov path[bx],al
inc bx
jmp cll
clll:
win 0,3eh,1,0,23,79
lea dx,path
mov ah,3dh ;打開(kāi)文件
mov al,0 ;訪問(wèn)方式 讀
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 ; 關(guān)閉文件
int 21h
mov dh,1
mov dl,0
mov bh,0
mov ah,2
int 10h
jmp char_get
open endp
save proc near ;保存文件
pos_get
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
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 ; 寫(xiě)文件
int 21h
mov bx,handle
mov ah,3eh ; 關(guān)閉文件
int 21h
call backdisplay
jmp char_get
save endp
menu2_sh proc near
pos_get ;讀光標(biāo)位置
push dx
win 0,06h,2,7,4,17
win 0,65h,1,6,3,16
pos_curse 0,1,6 ;定義光標(biāo)位置
string manu_6
pos_curse 0,2,6
string manu_7
pos_curse 0,3,6
string manu_8
pop dx
dec dl
pos_curse 0,dh,dl
copmare:
pos_curse 0,1,6
win 0,15h,1,7,1,14
string manu_6
red_chr ;讀取字符
cmp ah,1ch
jz manu_n255
cmp ah,50h ;向下
jz manu_c2
cmp ah,48h
jz manu_copy1
jmp manu_hide
manu_hide: ;菜單隱藏
win 0,1eh,1,7,4,17
call backdisplay
jmp char_get
manu_c2:jmp manu_c
manu_n255: ;開(kāi)始定義各個(gè)菜單項(xiàng)
win 0,65h,3,6,3,14
pos_curse 0,3,6
string manu_8
win 0,15h,1,7,1,14
pos_curse 0,1,6
string manu_6
red_chr
cmp ah,48h ;向上
je manu_copy1
cmp al,0dh
jz cut_1
cmp ah,50h
je manu_c
jmp manu_hide
manu_g:
jmp manu_n255
cut_1: jmp cut_2
manu_copy1: win 0,65h,1,6,1,14
pos_curse 0,1,6
string manu_6
jmp manu_copy
manu_cu1:
win 0,65h,2,7,2,14
pos_curse 0,2,6
string manu_7
jmp manu_n255
manu_c: ;第二個(gè)子菜單copy
win 0,65h,1,7,1,14
pos_curse 0,1,6
string manu_6
win 0,15h,2,7,2,14
pos_curse 0,2,6
string manu_7
red_chr
cmp ah,48h
je manu_cu1
cmp al,0dh
jz copy_1
cmp ah,50h
je manu_copy
jmp manu_hide
manu_gg:
jmp manu_g
manu_c1:win 0,65h,3,7,3,14
pos_curse 0,3,6
string manu_8
jmp manu_c
copy_1: ret
manu_copy:
win 0,65h,2,7,2,14
pos_curse 0,2,6
string manu_7
win 0,15h,3,7,3,14
pos_curse 0,3,6
string manu_8
red_chr
cmp al,0dh
jz paste
cmp ah,48h
je manu_c1
cmp ah,50h
je manu_gg
jmp manu_hide
paste: ret
cut_2:
ret
menu2_sh endp
savedisplay proc near ;保存窗口
push ax
push bx
push cx
push dx
push ds
mov ax,0002h ;隱藏鼠標(biāo)光標(biāo)
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 ;顯示鼠標(biāo)光標(biāo)
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 ; 寫(xiě)文件
int 21h
mov bx,handle
mov ah,3eh ; 關(guān)閉文件
int 21h
call backdisplay
win 0,07h,0,0,24,79
mov ah,4ch
int 21h
ret
quitt endp
edit endp
win3 proc near ;顯示日期
mov ah,2ah ;取系統(tǒng)日期
int 21h
mov bl,10d ;DH=月,dl=日
mov ax,0
mov al,dh
div bl
add ax,3030h ;+30h變?yōu)樽址腁SCII
mov [date+6],al
mov [date+7],ah
mov ax,0
mov al,dl
div bl
add ax,3030h
mov [date+9],al
mov [date+10],ah
win 0,1dh,0,67,0,79
pos_curse 0,0,67
mov dx,offset date
mov ah,09h
int 21h
ret
win3 endp
win4 proc near ;顯示行//列
mov ah,03h ;讀光標(biāo)位置
mov bh,0
int 10h
mov bl,100d
mov bh,10d
mov ax,0
mov al,dh
div bl
add al,30h
mov [hanglie+0],al
mov al,ah
mov ah,0
div bh
add ax,3030h
mov [hanglie+1],al
mov [hanglie+2],ah
mov ax,0
mov al,dl
div bl
add al,30h
mov [hanglie+5],al
mov al,ah
mov ah,0
div bh
add ax,3030h
mov [hanglie+6],al
mov [hanglie+7],ah
win 0,1dh,24,60,24,70
pos_curse 0,24,61
mov dx,offset hanglie
mov ah,09h
int 21h
ret
win4 endp
;模塊鼠標(biāo)
;初始化鼠標(biāo)
mouse proc near
MOV AL,00000010B
OUT 21H,AL ;屏蔽鍵盤(pán)中斷
MOV AX,00H ;初始化鼠標(biāo)
INT 33H
CMP AX,0FFFFH ;當(dāng)AX不為FFFF時(shí)初始化失敗結(jié)束
JNZ END_PR
MOV AX,01H
INT 33H ;顯示鼠標(biāo)指針
MOV AX,1AH
MOV BX,16D
MOV CX,32D
MOV DX,128D
INT 33H ;設(shè)置鼠標(biāo)靈敏度初值為BX=8,CX=16,DX=64
MOV AX,1CH
MOV BX,2D
INT 33H ;中斷速率0-關(guān),1-30,2-50,3-100,4-200
;替換鼠標(biāo)中斷程序
MOV AX,SEG MOUSE1
MOV ES,AX
MOV DX,OFFSET MOUSE1
MOV AX,14H
MOV CX,0000000000001010B
INT 33H
END_LOOP:
CMP END_KEY,00H ;結(jié)束程序
JZ END_PR
JMP END_LOOP
END_PR:
MOV AL,00H
OUT 21H,AL
MOV AX,4C00H
INT 21H ;返回DOS
mouse endp
;----------------------------------------------------------------------------------------------------
MOUSE1 PROC NEAR
;保存現(xiàn)場(chǎng)
PUSH AX
PUSH BX
PUSH CX
PUSH DX
;讀取鼠標(biāo)位置
MOV AH,03H ;讀取鼠標(biāo)位置
INT 33H
;恢復(fù)現(xiàn)場(chǎng)
POP DX
POP CX
POP BX
POP AX
ret
MOUSE1 endp
code ends
end start ;結(jié)束
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -