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

📄 kcsj3.asm

📁 我用汇编语言编写的程序 能够实现文件的复制删除读出显示等功能
💻 ASM
字号:
include kcsj.mac
.model small
.386
.stack 200h
public prog3
.data
menu db 30 dup(' '),'1.Creat document',0ah,0dh
     db 30 dup(' '),'2.Find by name',0ah,0dh
     db 30 dup(' '),'3.Display Table',0ah,0dh
     db 30 dup(' '),'4.The end',0ah,0dh
     db 30 dup(' '),'Please select one(1~4):','$'
ask1 db 0ah,0dh,'Input file name:$'
ask2 db 0ah,0dh,'Input Name:$'
ask3 db 0ah,0dh,'Input Telephone number:$'
ask4 db 0ah,0dh,'who to find?$'
ask5 db 0ah,0dh,'Continue or not?(Y/y):$'
buff db 15,?,15 dup(' '),0ah,0dh
sta db 15 dup(' '),0ah,0dh  ;存电话
leng db 30 dup(0)
endcode db 0         ;错误标志码
end1 db 0            ;结束标志码
er1 db 0ah,0dh,'Can not creat file!$'
er2 db 0ah,0dh,'Can not write file!$'
code1 dw ?           ;存放文件代号
out1 db 0ah,0dh,'not find!$'
showfind db 0ah,0dh,'NAME           TELE$'
fname db 15,?,15 dup(' ')   ;存放文件名
crlf db 0ah,0dh,'$'
row db 0            ;行号
temp db 17 dup(?)  ;读文件的缓冲区
fl db 0         ;fl=1时写入17个字节
sig db 0

.code
prog3 proc far
    init   ;初始化
    call mainshow  ;显示主界面
 L1:mov ah,1
    int 21h
    sub al,30h
    cmp al,1
    je rot1
    cmp al,2
    je rot2
    cmp al,3
    je rot3
    jmp ext
rot1:call creat
     call mainshow
     jmp L1
rot2:call find
     call mainshow
     jmp L1
rot3:call show
     call mainshow
     jmp L1
ext:ret
prog3 endp

mainshow proc near
scroll 0
cursor 10,0
strdisp menu
ret
mainshow endp

in_name proc near   ;输入字符串
push bx
lea dx,buff
mov ah,0ah
int 21h
mov al,buff+1
add dx,2
pop bx
ret
in_name endp

fwrt proc near      ;写到文件中
mov bx,code1 
mov cx,15
cmp fl,1
jnz pas
mov cx,17
pas:
mov ah,40h
int 21h
jnc quit
mov endcode,1
quit:ret
fwrt endp

filename proc near  ;输入文件名
lea dx,fname
mov ah,0ah
int 21h  
lea bx,fname+2
mov ah,0
mov al,fname+1
add bx,ax
mov byte ptr [bx],0     
add dx,2
ret
filename endp

creat proc near  ;创建通讯录
scroll 0
cursor 0,0
strdisp ask1
call filename
mov ah,3ch
mov cx,0
int 21h
jc error1
mov bx,ax
mov code1,ax
lea si,leng
scroll 0
cursor 0,0
again:
strdisp ask2
call strin
cmp end1,1
jz iot
mov fl,1
strdisp ask3
call strin
mov fl,0
jmp again
error1:strdisp er1
       ret
iot:mov end1,0
    mov ah,3eh
    int 21h
    ret
creat endp

strin proc near  ;不足15字节用空格填充
call in_name
cmp al,0
jz ut
mov ah,0
mov cx,ax
mov [si],al
mov al,20h
lea di,buff+2
add di,cx
neg cx
add cx,15
rep stosb
call fwrt
cmp endcode,1
je error2
inc si
ret
error2:strdisp er2
ut:mov end1,1
     ret
strin endp

find proc near  ;查找电话号码
scroll 0
cursor 0,0 
lp1:call fopen        
    strdisp ask4
    call in_name
    mov ah,0
    mov cx,ax
    mov [si],al
    mov al,20h
    lea di,buff+2
    add di,cx
    neg cx
    add cx,15
    rep stosb
    call fread
    mov sig,0
    strdisp ask5
    mov ah,1
    int 21h
    cmp al,'Y'
    je lp1
    cmp al,'y'
    je lp1
    ret
find endp

fopen proc near  ;打开文件
lea dx,fname+2
mov ah,3dh
mov al,0
int 21h
ret
fopen endp 

fread proc near ;读取记录后查找并显示结果
mov cx,15
mov al,20h
lea di,sta
rep stosb
lea bp,leng
ag:
mov cl,[bp]
cmp cl,0
jz notfind
mov ah,3fh
lea dx,sta
mov bx,code1
mov cx,15
int 21h
lea di,buff+2
mov si,dx
mov cx,15
repe cmpsb
jcxz findit
r3:
mov ah,3fh
lea dx,sta
mov bx,code1
mov cx,17
int 21h
add bp,2
mov cx,15
mov al,20h
lea di,sta
rep stosb
jmp ag
findit:strdisp showfind
     strdisp crlf
     mov ah,40h
     lea dx,sta
     mov cx,15
     mov bx,1
     int 21h       ;显示姓名
     mov bx,code1
     mov ah,3fh
     lea dx,sta
     mov cx,17
     int 21h
     mov ah,40h
     mov bx,1
     int 21h       ;显示电话
     jmp ln
notfind:mov sig,1
  ln:mov bx,code1        
     mov ah,3eh
     int 21h             ;关闭文件
     cmp sig,0
     jz r0
     strdisp out1
     mov cx,7
     int 21h
  r0:ret
fread endp

show proc near     ;报表显示 
scroll 0
cursor 0,0
call fopen
strdisp showfind
strdisp crlf
lp:
mov ah,3fh
lea dx,sta
mov bx,code1
mov cx,15
int 21h
cmp ax,0
je et0
mov ah,40h
mov bx,1
int 21h
mov ah,3fh
lea dx,temp
mov bx,code1
mov cx,17
int 21h
mov ah,40h
mov bx,1
int 21h
jmp lp
et0:mov ah,3eh
    int 21h
    mov ah,7
    int 21h
    ret
end prog3

⌨️ 快捷键说明

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