串与表的处理程序设计.ppt_第1页
串与表的处理程序设计.ppt_第2页
串与表的处理程序设计.ppt_第3页
串与表的处理程序设计.ppt_第4页
串与表的处理程序设计.ppt_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第1、7章字符串和表处理程序设计,7.1字符串操作指令,“字符串”表示存储的连续单词或字节单位。储存在这些储存格中的内容可以是文字或资料。“串行操作”是对这些设备执行相同的操作。例如,可以将数据段从一个存储库传输到另一个存储库。2,(3)标志位DF=0时,通过添加2(字操作)或1(字节操作)增加对SI和DI的修改。DF=1时,SI和DI的修改将更改为减少,即减2或减1。(2) serial operations命令一次只能在字符串的一个单词或单字节单元格中工作,它会自动修改SI和/或DI以指向下一个单词或字节单元格。(1) serial operations instructions使用专用寻

2、址方法。源operations地址由DS:SI提供,目标operations由ES:DI提供。串行操作命令具有以下公共特性:3,1。源字符串由SI指定,因此,如果在程序中执行该命令时明确指定了单词或字节,则可以使用不带操作数的命令LODSB(字节操作)或LODSW(单词操作)替换源字符串。牙齿命令在执行后不影响标志。命令格式:将、LODS源字符串、源字符串中的单词或字节内容发送到AX或AL,并根据DF修改SI。功能:4,2。保存字符串命令。同样,可以将命令替换为不带操作数的命令STOSB或STOSW。牙齿命令不影响标志。STOS意图字串、指令格式:功能:AX或AL的内容以意图字串的字元或位元组

3、为单位传送,并根据DF修改DI。5,3。序列传输指令、MOVS意图字串、来源字串,同样地,您可以使用不含运算元的指令MOVSB或MOVSW来取代指令。命令不影响标志。命令格式:功能:将SI指向的源字符串的单词或字节作为DI指向的目标字符串发送。根据DF修改SI和DI。6,4。不返回字符串比较命令、CMPS源字符串、目标字符串、源字符串的字节或单词减去目标字符串的单词或字节。但是,它会影响标志寄存器。SI和DI也将根据DF进行修改。命令格式:同样,命令可以替换为不带操作数的命令CMPSB或CMPSW。功能:7,5,字符串搜索命令,SCAS目的字符串,查找方法:AX或AL的内容减去目的字符串的单词

4、或字节,然后减去结果反映在标志寄存器中。每次找到DI时,都会根据DF进行修改。在、命令格式:功能:目的字符串中查找AX或AL指定。同样,命令可以替换为不带操作数的命令SCASB或SCASW。8,6、重复前缀命令、REP、重复操作的次数由CLARiiON控制,每次执行串行操作命令时,CLARiiON内容都会减去1,直到CLARiiON内容牙齿为零。命令格式:可以在上述各种命令之前添加REP命令,以便在、多个单词或字节上多次执行相同的操作。9示例:在发出命令之前,REP MOVSB设置为df=0、(si)=0020h、(di)=100h和(CX)=0030h。LOP : MOVAL,SI MOV

5、ES :di,AL IC Sinc Diloop LOP执行命令以将以0020H开头的数据段的30H字节发送到以0100H开头的其他段。相反,如果不使用串行操作命令,则REPE/REPZ重复串行操作命令的条件为(CX)0和ZF=1。这两个命令的执行由标志位ZF控制,LODS、STOS和MOVS控制。另外两个重复前缀命令:REPNE/REPNZ应用字符串操作命令(CX)0和ZF=0,11,7.2。例如,1:在TXTBUF字符串中如果未找到,则将0FFH发送到索引单元。,data segment txt buf db abcdefghijklmnop cunt equ $-txt buf stri

6、ng db g index db?data ends stack 1 segment parastack dw 20h dup(0)stack 1 ends,12,code segment assume cs 3360代码,ds 3360 data,ss 33660目的DI,CX,AL CLD初始化DF=0,增量REPNE SCASB找到文字MOV BL,0FFH JNE END0。条件判断:找不到、ZF=0传输sub di、offset txt buf mov bx、di end 0: mov index、bl mov ah、4ch int 21h code end start、13如果不存

7、在,请设置标志0FFH。牙齿示例是示例1中更常见的示例。14,data segment txt buf db abcdefghijklmnop cunt 1 equ $-txt buf string db ef cunt 2 equ $-string;子字符串长度index db 0f FH data ends stack 1 segment parastack dw 20h dup(0)stack 1 ends,15,比较计数=源字符串长度-子字符串长度1,16,代码段Ss33比较次数MOV SI,OFFSET TXTBUF源字符串主地址MOV AX,SI LOP: LEA DI,STRIN

8、G子字符串主地址MOV CX,CUNT2 CLD REPZ CMPSBJZ MATCH比较:(CX)=0和ZF=1,相等,INC AX旋转;不匹配,比较位置后退一步movsi、axdecbx比较次数jnz lop,17,mov indel,0f FH jmp exit match : subax,offset txt buf位置为0n INC AL。位置为1nmovindex、alexit 3360movah、4ch int 21h code ends end start、18、7.3排序和查询。为了节省数据祖怀时间,通常应将未排序的表排序为已排序的表。排序和查询是编程中经常出现的问题。统计学生的考试成绩,了解部门职员的工作业绩,总结实验结果等。排序是指将不规则的、无序的数据集排序为有序的数据。查找是在数据集中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论