编辑: 学冬欧巴么么哒 | 2019-07-17 |
等待按键操作 int 21h jmp again start endp file proc mov bl,filename+1 ;
用户输入文件名的长度送bl mov bh,0 mov [bx+filename+2],bh ;
文件名后加0,构成文件名字串 mov ah,3dh ;
打开文件 lea dx,filename+2 mov al,2 ;
al=2,读写打开 int 21h jc err1 ;
打开不成功,报错 mov haddle,ax mov bx,haddle lea dx,buffer mov cx,1024 mov ah,3fh int 21h;
把文件内容读入缓存 jc err2 ;
读取失败,报错 mov len,ax ;
读取成功,保存实际读入字数 clear 00,00,24h,79h scursor 00,00 lea dx,buffer call disp jmp exit err1:lea dx,error1 call disp jmp exit err2:lea dx,error2 call disp jmp exit exit:ret file endp compare proc ;
比较子程序 mov cl,schword+1 ;
schword 需要查找的单词,cl中存放的是单词的长度 xor ch,ch mov ax,0h ;
ax用于记录schword在文件中出现的次数 mov si,0H ;
si为缓存buffer的数组下标,buffer中为文件内容 dec si mov di,2h ;
di为schword的下标 mov bx,0;
用来记录比较次数 compares: inc si sub si,bx ;
schword中第一个字母与文件的比较 mov dl,buffer[si] cmp dl,24h je print cmp dl,schword[di] jne compared inc bx cmp cx,bx jz ad compareu: inc di inc bx inc si ;
schword中其它字母与文件的比较 mov dl,buffer[si] cmp dl,24h je print cmp dl,schword[di] jne compared cmp cx,bx jz ad jmp compareu ad: inc ax jmp compared compared: mov bx,0 mov di,2h jmp compares print:统计结束 mov foundcount,ax ret compare endp dpoz proc ;
字符串的删除 push ax push cx push bx push dx xor cx,cx mov cl,schword+1 mov dx,0 dec dx anz: mov bx,pos dec cx inc dx sub bx,dx go1: mov al,buffer[bx+1] mov buffer[bx],al inc bx cmp al,24h jnz go1 cmp cx,0 ja anz mov bx,pos sub bx,dx mov pos,bx ;
记录位置 pop dx pop bx pop cx pop ax call posz ret dpoz endp posz proc ;
字符串的插入 push ax push cx push bx push dx push si push di push bp xor cx,cx mov si,2h mov bp,0h mov di,len mov bx,pos inc bx mov ax,di mov dx,bx an: mov ch,rpword[si] go2: mov cl,buffer[di] mov buffer[di+1],cl dec di push cx mov cx,bx dec cx cmp di,cx pop cx jae go2 mov buffer[bx-1],ch inc bp inc bx push cx xor cx,cx mov cx,bp cmp cl,rpword+1 pop cx jb anp jbe over2 anp: inc dx inc si mov bx,dx inc ax mov di,ax jmp an over2: pop bp pop di pop si pop dx pop bx pop cx pop ax ret posz endp 运行结果 把文档中的内容显示到屏幕上 图5 文件中的内容 2,字符串查找 图6 字符串的查找 图7 显示查找处数 3,字符串替换 图8 字符串替换 4,显示替换以后的内容 图9 显示替换以后的内容
三、课程设计结论 通过本次实验我懂得了汇编语言直接面向机器硬件,合理的使用它可以提高程序的效率,使用汇编编程不应该过于在意界面的华丽,而应该注重于算法的实现
四、参考文献 [1] 马力妮 .
80x86汇编语言程序设计 . 机械工业出版社 [2] 李心广 . 汇编语言与计算机系统组成 . 机械工业出版社 [3] 温冬婵 . IBM-PC汇编语言程序设计 . 清华大学出版社