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

📄 insertdictionary.asm

📁 字典排序单词表中插入单词汇编语言文件操作和字符串操作
💻 ASM
字号:
stack segment para
      dw  100h dup(?)              ;This program works with a file located 'words.txt'
stack ends

data  segment para
fname  db 'words.txt'           
handle dw  ?
words  db  1024*10 dup(?)
len    dw  ?
len_p  dw  ?
err    db  'Open file error!Please create a file named"words.txt"$'
wd      db  4 dup(?)
data  ends

code  segment para
      assume cs:code,ds:data,ss:stack

main  proc  
      mov   ax,data             
      mov   ds,ax

      call  d_read
      call  keyin                  
      call  search                 ;search and insert tagert word
      call  insert
      call  d_write                ;write down and close file
      jmp   exit

d_read:

mov dx,offset fname
mov cx,0
mov ah,3dh
mov al,02h
int 21h
jc  error
mov handle,ax

mov bx,ax
mov ah,3fh
mov cx,10240
mov dx,offset words
int 21h
jc  error
mov len,ax

ret

keyin:

mov ah,01h
int 21h
mov wd,al
int 21h
mov wd+1,al
int 21h
mov wd+2,al
int 21h
mov wd+3,al

ret


search:

mov cx,0
mov dl,wd
mov dh,wd+1
mov bl,wd+2
mov bh,wd+3
mov si,offset words

lp0:


cmp cx,len
jz  lp3

cmp dl,[si]
jnc lp1
jc  lp2
cmp dh,[si+1]
jnc lp1
jc  lp2
cmp bl,[si+2]
jnc lp1
jc  lp2
cmp bh,[si+3]
jnc lp1
jc  lp2

inc cx
inc cx
inc cx
inc cx
mov len_p,cx

jmp lp3

lp1:

inc cx
inc cx
inc cx
inc cx
inc si
inc si
inc si
inc si
jmp lp0

lp2:

mov len_p,cx

lp3:
ret


insert:

mov bx,len_p
mov dx,len
mov cx,dx
sub cx,bx

mov si,offset words
add si,dx


kl:
mov ax,[si]
mov [si+4],ax
dec si

loop kl

mov al,wd
mov [si],al
mov al,wd+1
mov [si+1],al
mov al,wd+2
mov [si+2],al
mov al,wd+3
mov [si+3],al

ret

d_write:


mov cx,len
add cx,4
mov dx,offset words
mov bx,handle
mov ah,40h
int 21h

mov bx,handle
mov ah,3eh
int 21h

ret

error:

mov dx,offset err
mov ah,09h
int 21h

exit:

mov ax,4c00h     
int 21h

MAIN    ENDP
code    ENDS
        END     MAIN

⌨️ 快捷键说明

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